美文网首页java学习之路
简单的线上环境搭建教程

简单的线上环境搭建教程

作者: 唯有努力不欺人丶 | 来源:发表于2020-10-20 20:33 被阅读0次

    前言

    首先,我觉得任何技术和知识都有被记录的必要。其次,前一段时间看视频,主播开玩笑的说一个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; # 针对非首层代理,一直传下去      
        }
        }
        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,欢迎各位踊跃加入!另外祝大家工作顺顺利利!

    相关文章

      网友评论

        本文标题:简单的线上环境搭建教程

        本文链接:https://www.haomeiwen.com/subject/sqjdmktx.html