简单的线上环境搭建教程

前言

首先,我觉得任何技术和知识都有被记录的必要。其次,前一段时间看视频,主播开玩笑的说一个mysql安装一天,我竟然莫名觉得扎心了,毕竟当年我是自学的,别说mysql的安装了,有时候版本的差异都能让我卡住好几天。
虽然现在大多数技能已经get,再学习新东西也有了一定的思维能力和调错方式,甚至百度中能搜出大多数问题的解决方案。但是今天从一个什么都没有的服务器到搭建环境,部署jar包,反向代理允许访问。这一个过程拆分下来也都是基础的知识,可是我还是想记录下来。更多的是想要献给一如我当年那般没有人教,一个人磕磕绊绊学习的小伙伴吧。

线上环境需要什么?

这个其实很重要,我今天部署的东西比较简单,项目用到的技术栈也没什么。spring boot写的后台。用到了mysql数据库。还有redis做了简单的缓存。还有因为有后台所以要把ip+端口换成域名,这里用的是nginx。另外我个人习惯所有的mysql操作都用navicat。当然了,我是个白嫖党,所以这里的安装的破解版的。整理一下:

  1. jdk必不可少,我用的1.8
  2. 刚刚都说了用的mysql,用的是5.5版本。mysql下载安装。
  3. mysql的伴生产物:navicat破解版很重要。我这里有个经常使用的是navicat11.虽然版本比较老但是够用了,而且破解很方便。
  4. redis简单的用到了,不过我这次部署的服务器也是windows系统,所以也简单的不得了。
  5. nginx的反向代理。这个就没沙说的了,总不能直接暴露ip端口了。

然后就是一步一步操作了。因为需要很多安装包啥的,所以我把这些资料都传到qq群里,群号130031711,有需要的小伙伴可以加群自己找群文件。反正我个人是不到一小时都搭建完了并且项目跑起来了。下面一步一步走。

java环境jdk

这个怎么说呢,听说现在去oracle官网下载还要注册的,反正我n久没下载了,以前有个u盘,里面有现成的,复制粘贴到本地就可以安装了。现在觉得u盘麻烦,就存到qq群里了。直接下载到本地双击,一步步按照要求往下,就安装完成了。
如果是从群里下载,下载完就是图中框起来的样子,双击按照要求来就行了。最后打开cmd,输入 java -version 。如果能弹出版本号说明jdk安装没问题了。
安装完成记得要配置环境变量,我简单的说一下:

  1. 我的电脑(此电脑)->右键属性->高级系统设置->环境变量。
  2. 系统变量中新建->名称是 JAVA_HOME 值是jdk的安装目录


    JAVA_HOME
  3. 在变量名是path的属性中编辑:最末尾加上%JAVA_HOME%\bin;
    这里有点区别,如果是windows10的话弹出来的编辑框特别人性化,一条是一条的,所以不用后面的分号“;”。但是如果不是这样的话最后面的分号千万别忘记。
mysql数据库的下载和安装

说实话开发的话我一般都使用mysql5.5.其实现在市面上这个版本也是用的最多的一个。毕竟很多8以上容易出bug而且很多东西不兼容。当然也有可能是公司环境就这样。反正我这里用的就是5.5版本。
其实这些东西很多官网都是国外的,我以前也有曾经下载mysql下了一天的历史。加上个人习惯,所以还是习惯于安装包下载后保存起来。和jdk一样传到了qq群里。


mysql的配置文件

其实mysql这个包解压到本地就没啥大事了,如图是解压后的目录。

  1. 网上好多说创建data文件夹,但是我这边这个解压后是有的,所以不用再创建了。
  2. 创建一个my.ini文件,文件里的内容大概如下:
[mysql]

# 设置mysql客户端默认字符集
default-character-set=utf8 

[mysqld]

#设置3306端口
port = 3306 

# 设置mysql的安装目录
basedir=C:\MySQL Server 5.5\MySQL Server 5.5

# 设置mysql数据库的数据的存放目录
datadir=C:\MySQL Server 5.5\MySQL Server 5.5\data

# 允许最大连接数
max_connections=200

# 服务端使用的字符集默认为8比特编码的latin1字符集
character-set-server=utf8

# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB{\rtf1}

其实这里可以设置的东西不少,不过精简的话,我甚至见过就三行设置的,看个人吧,简单实用的话上面是够了的。
其中注意basedir还有datadir是要根据你的安装目录写的。需要注意的是这个mysql.ini和my.ini有一个就行了。我上传的这个安装包里就有了my.ini。
理论上讲,如果下载我上传的这个包,只需要改动下my.ini中两个输出路径就ok了的。
然后下载成功,配置文件改完后,我个人习惯还是设置成系统环境变量,毕竟比每次都到bin目录下方便的多,接下来mysql的环境变量:
直接找到环境变量中的path,编辑,追加。和上面说的一样,如果是一串的记得最后的分号,如果不是直接输入到mysql的bin目录就行了,如下是我这边的:

C:\Program Files\MySQL Server 5.5\MySQL Server 5.5\bin

然后下载完毕,配置文件改完了,环境变量也配置完了,用管理员身份打开cmd。
个人习惯操作是先移除,可以省略很多莫名其妙的问题。具体命令如下:

  1. mysqld --remove(先移除一遍,纯粹为了方便,成功不成功都无所谓)
  2. mysqld --install(安装,如果完全按照上面教程来肯定是成功的。返回Service successfully installed说明你安装成功)
  3. net start mysql(启动服务,一般到这如果是启动成功就说明成功了。)
    需要注意的是在第三步容易报错系统找不到指定文件,那就说明你my.ini或者mysql.ini中的输出地址错误了,去改了就好了。
    改完之后记得重新启动cmd控制台。不然控制台不会更新会一直报这个错。

其实上面的三步就已经是mysql安装完成了。初始密码一般是没有的,可以用mysql -u root -p 登录一下试试。我这边确定安装完成就去下载navicat了。

破解版navicat

这个怎么说呢,其实我也不想白嫖的,但是真的穷我也没办法。所以用的是破解版。网上很多破解版教程,很多麻烦的很,又是断网,又是下载补丁的。我用的这个是navicat for mysql 11 版本。当然了我之前闲着的时候也看了,现在网上流传的比较多的破解版一般就是11,12。反正11的功能够我用了。老规矩,下载压缩包,然后安装,破解,我一步步说。
安装包下载解压后如下:


navicat解压后
  1. 点击绿色的那个navicat安装,按照要求一步步来,记得最终项目安装到哪里了。
  2. 点击第二个PatchNavicat.exe然后选择第一步安装到的路径,点击navicat.exe。会出现破解成功的字样。
    需要注意的是第二个点进去要选择安装的那个程序,而不是这个未安装的。附上个截图。


    破解截图

    至此,可以打开navicat使用啦,记得不要自动升级就行。
    正好我们可以连接本地测试下之前下载安装的mysql。
    我的话是直接把开发环境中的数据库转存sql文件,直接在服务器的数据库中运行了,反正数据不多,就这样把数据库这块搞定啦!

redis安装使用

这个是很有意思的。redis在windows系统中的安装使用更简单,但是redis官网建议不要用windows环境使用redis。不管这些了,直接上干货。同样我把包上传到群里了。windows系统的redis还是3点几版本,linux已经6点多了。简直是个孤儿。不过这个不影响使用。


redis解压后

其实到这里就完事了,只要双击redis.server.exe就能启动redis了。
不过这里有两种情况:

  • 有的可以启动成功,那么直接挂着就行(窗口不能关)。
  • 有的人会闪退,这里有说法是内存不足,反正如果遇到这种情况那么cmd到这个页面启动运行也行。


    cmd启动redis

    其实我这里就是一个最简单的配置,好多redis的详细配置也是在配置文件里改的,比如改密码啊,比如换端口啊,比如更改默认数据库之类的啊(redis默认16个数据库,默认用第0个)下图是改密码的一张图


    image.png

    至此,java的环境就搭建完毕了。我现有的jar是spring boot打包的,直接粘贴过来,控制台启动就没问题了。而且也测试了接口,证明jar是没问题了的。
    接下来只要把nginx反向代理弄完,用域名代替ip+端口,前端的项目包导入进来能访问就ok啦。
nginx配置

这个其实就比较简单了,我对nginx也仅仅是能使用的地步,所以就是简单用用。(nginx使用前有个域名算是标配,所以不用说了)
老规矩,压缩包上传到qq群文件里了。然后下载下来解压。分三步操作。

  1. 解压后打开conf文件,里面有个nginx.conf。是咱们要做配置的主要文件。另外有个证书文件和秘钥文件一般也存在conf中cert文件中(这是一对文件。分key和pem)。


    文件介绍
  2. 证书自己存进去就行了,证书名字记得复制,要在配置文件里面用。重点是配置文件如何写。下面是我的配置文件,贴出来大家可以参考下:
#user  nobody;
worker_processes  4;

#error_log  logs/error.log;
#error_log  logs/error.log  notice;
error_log  logs/error.log  debug;

#pid        logs/nginx.pid;
# worker_processes  4;    #处理器个数

events {
    worker_connections  1024;
}


http {
    include       mime.types;
    default_type  application/octet-stream;

    #nginx优化----------------------
    #隐藏版本号
    server_tokens on;
 
    #优化服务器域名的散列表大小 
    server_names_hash_bucket_size 64;
    server_names_hash_max_size 2048;
    #开启高效文件传输模式
    sendfile on;
    #减少网络报文段数量
    #tcp_nopush on;
    #提高I/O性能
    tcp_nodelay on;
    #连接超时 时间定义 默认秒 默认65秒
    keepalive_timeout 60;
    #读取客户端请求头数据的超时时间 默认秒 默认60秒
    client_header_timeout 15;
    #读取客户端请求主体的超时时间 默认秒 默认60秒
    client_body_timeout 15;    
    #响应客户端的超时时间 默认秒 默认60秒
    send_timeout 25;
    #上传文件的大小限制  默认1m
    client_max_body_size 8m;
    #gzip  on;
    # 很重要的虚拟主机配置
    # HTTPS server

    #如果有多个设置多个server
    server {
    listen 443 ssl;   #SSL协议访问端口号为443。此处如未添加ssl,可能会造成Nginx无法启动。
    server_name apis.lsj.cn;  #将localhost修改为您证书绑定的域名,例如:www.example.com。我这里apis.lsj.cn是域名
    root html;
    index index.html index.htm;
    ssl_certificate cert/4649643_apis.lsj.cn.pem;   #这个文件放在conf/cert
    ssl_certificate_key cert/4649643_apis.lsj.cn.key;   #这个文件放在conf/cert    
    ssl_session_timeout 5m;
    ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;  #使用此加密套件。
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;   #使用该协议进行配置。
    ssl_prefer_server_ciphers on;
    location / {
      proxy_pass   http://127.0.0.1:9999;  #这里用域名 等同于http://127.0.0.1:9999
      proxy_set_header X-Real-IP $remote_addr;
      proxy_set_header X-Real-IP $http_x_real_ip; # 针对非首层代理,一直传下去   
      root html/monitor;   #这里的html是项目的登录页,也就是我们想用apis.lsj.cn/monitor这个地址访问时进入到的页面
     #html是与conf同级的一个文件夹。里面monitor是我们这个项目的首页和static源码。如果只有一个的话放在根目录也ok
     index index.html index.htm;     
    }
    }
    server {
        listen       80;
        server_name  localhost;
    location /sys-lsj/ {
            proxy_pass   http://127.0.0.1:9999/sys-lsj/;    #这里用域名/sys-lsj/等同于http://127.0.0.1:9999/sys-lsj/
        }
        #error_page  404              /404.html;

        # redirect server error pages to the static page /50x.html
        #
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }            
    }
}

其中要配置的就是server。如果是多个就配置多个server。反正这个就这样了,有问题的欢迎问我。
至此,这个线上环境就差不多完事了。这篇笔记就记到这里。附上一个群里资料的截图:

群资料

这篇笔记就记到这里,如果稍微帮到你了记得点个喜欢点个关注。顺便打个广告:java技术交流群130031711,欢迎各位踊跃加入!另外祝大家工作顺顺利利!

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 206,839评论 6 482
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 88,543评论 2 382
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 153,116评论 0 344
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 55,371评论 1 279
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 64,384评论 5 374
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,111评论 1 285
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,416评论 3 400
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,053评论 0 259
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,558评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,007评论 2 325
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,117评论 1 334
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,756评论 4 324
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,324评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,315评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,539评论 1 262
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,578评论 2 355
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,877评论 2 345