1 前端vue项目打包部署:

1.1 vue项目打包

前端项目用vscode进行开发,项目整体目录如下

前后端不分离用nginx 前后端分离部署_nginx

在config目录下的配置文件中配置好后端服务器的ip地址和端口;

在终端输入npm run build,系统会自动生成一个dist的文件夹,这就是打包后所需的项目文件;

把dist文件夹放在linux服务器上,路径要与nginx配置的路径一致。

1.2 安装并配置nginx

(1)下载nginx安装包:

wget http://nginx.org/download/nginx-1.21.4.tar.gz

(2)解压缩:

tar -zvxf nginx-1.21.4.tar.gz

(3)修改nginx配置:

vi /data/soft/nginx-1.21.4/conf/nginx.conf

nginx.config具体内容如下:

#user  nobody;
worker_processes  1;  #nginx进程数,建议按照cpu数目来指定,一般为它的倍数。

events {
    worker_connections  1024;  #单个后台worker process进程的最大并发链接数  
}


http {
    include       mime.types;   #设定mime类型,类型由mime.type文件定义  
    default_type  application/octet-stream;

    #sendfile 指令指定 nginx 是否调用 sendfile 函数(zero copy 方式)来输出文件,
    #对于普通应用,必须设为 on,
    #如果用来进行下载等应用磁盘IO重负载应用,可设置为 off,
    #以平衡磁盘与网络I/O处理速度,降低系统的uptime
    sendfile  on;
    keepalive_timeout  65;  #用于设置客户端连接保持活动的超时时间,在超过这个时间之后服务器会关闭该链接。
    
    server {
        listen       9999;  #server全局快配置监听和服务
        server_name  192.168.20.188;  #说明该服务器的ip,server_name可直接注释掉

        location / {    #localtion块,配置自己的代理(这里是代理前端页面的路径)
            root   /data/front;   #站点根目录,可以是相对路径,也可以使绝对路径
            index  index.html index.htm; #默认主页
            add_header Cache-Contro no-store;
            add_header Access-Control-Allow-Origin *;
        }
        
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }

        location /api/ {     #这里是转发后端接口的路径
                    proxy_connect_timeout 600;  #默认主页
                    proxy_read_timeout 600;
                    proxy_send_timeout 600;

                    # 后端的Web服务器可以通过X-Forwarded-For获取用户真实IP
                    proxy_set_header Host $http_host;
                    proxy_set_header X-Real-IP $remote_addr;
                    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                    proxy_set_header X-Forwarded-Proto $scheme;

                    #反向代理配置
                    proxy_pass http://127.0.0.1:10020/gz-master/;  
        }
    }
}

如果当前用http://192.168.20.188:9999/api/getName进行访问,则会被代理到

http://127.0.0.1:10020/gz-master/getName这个url上。

注意:如果proxy_pass配置的地址漏了最后的 “ / ”,则会被代理到http://192.168.20.188:9999/gz-mastergetName,此时就会访问失败。

(4)启动nginx服务器:

cd /data/soft/nginx-1.21.4/sbin
./nginx

注意:./表示执行当前目录下的nginx文件,并且只能用于执行拥有执行权限的文件。

(5)查看运行状态(可查看nginx的进程号):

ps -ef | grep nginx

执行ps -ef命令显示内容如下:

前后端不分离用nginx 前后端分离部署_nginx_02

显示内容说明:

 

前后端不分离用nginx 前后端分离部署_前后端不分离用nginx_03

扩展:nginx其余常用命令

1)停止nginx

./nginx –s stop

2)修改配置后重启nginx服务器

./nginx -s reload

3)检查配置文件是否正确

./nginx –t

4)强制停止Nginx服务器

kill -9 进程号

2 后端部署

2.1 后端jar包部署

前提:jdk环境已部署

后端打包的jar放置在Linux服务器的/data/project上,在该目录下创建保存日志的文件。

cd /data/project
rz  #回车,选择本地上传的文件点确定上传文件

启动程序,存放日志的不同操作:

(1)存放在默认的日志文件内

touch nohup.out                     #创建文件nohup.out保存日志
nohup java -jar GzMaster.jar &      #启动程序,日志默认写到nohup.out文件
tail -f nohup.out                   #查看日志

(2)存放在指定的日志文件内

touch output.log                                    #创建文件output.log保存日志
nohup java -jar GzMaster.jar >> output.log 2>&1 &   #启动程序,日志写到指定的output.log文件中
tail -f output.log                                  #查看日志

退出查看日志使用 :Ctrl+Z

扩展:

查看当前所有启动的java程序:(可查看进程号)

jps -l

强制停止java程序:

kill -9 进程号

通过进程号查看项目所在绝对路径:

ll /proc/进程号

前后端不分离用nginx 前后端分离部署_前后端不分离用nginx_04

2.2 后端war包部署

前提:jdk环境已部署

(1)下载apache-tomcat-8.0.50.tar.gz放在服务器上,解压tomcat

tar -zxvf apache-tomcat-8.0.50.tar.gz

(2)把war包放在Tomcat的webapps目录下

rz  #系统会弹出本地文件选择框,选择war包,点击确定上传

(3)启动Tomcat服务(执行Tomcat的bin目录下的startup.sh)

bash startup.sh

(4)进入到Tomcat下的logs目录,动态查看日志文件,退出查看日志使用 :Ctrl+Z

tail -f catalina.out

扩展:

查看运行状态

ps -ef|grep tomcat   #可查看该tomcat的进程号和所在绝对路径

强制停止java程序:

kill -9 进程号

3 常用命令扩展

(1)根据字符串查询日志中关键词出现的位置(显示该关键字前10行和后10行相关日志)

cat -n output.log | grep-n -B10 -A10 关键字

(2)查看某段时间内的日志:sed -n '/开始时间/,/结束时间/p' 日志文件

sed -n '/2021-01-01 12:00:00/,/2021-01-01 17:00:00/p' output.log | grep 关键字

(3)下载jar或war到本地

sz GzMaster.jar

可在本地用java反编译工具(jd-gui.exe或luyten.exe)来查看文件的源码。

(4)备份文件(比如备份之前的jar包)

mv GzMaster.jar GzMaster.jar20220128   #修改GzMaster.jar的文件名

(5)强制删除文件及其子目录(比如删除GzMaster.jar20220128文件)

rm -rf GzMaster.jar20220128

(6)查看服务器ip

ifconfig

 (7)清空nohup.out文件内容,不用rm文件,也不需要关闭服务

echo '' > nohup.out

(8)切换到超级用户权限

su - root