• 前后端分离项目Nginx部署


    前后端分离项目Nginx部署

    一、在Linux先安装好Java和Nginx

    1.安装Java

    下载好Java安装包,解压

    [root@jiang java]# ll
    total 187328
    drwxr-xr-x 7   10  143      4096 Dec 16  2018 jdk1.8.0_201
    -rw-r--r-- 1 root root 191817140 Dec 19  2018 jdk-8u201-linux-x64.tar.gz
    [root@jiang java]# tar -zxvf jdk-8u201-linux-x64.tar.gz
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    配置环境变量

    vim /etc/profile 在尾处添加

    export JAVA_HOME=/opt/software/java/jdk1.8.0_201
    export JRE_HOME=${JAVA_HOME}/jre
    export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
    export PATH=${JAVA_HOME}/bin:$PATH
    
    • 1
    • 2
    • 3
    • 4

    使环境变量生效 source /etc/profile

    检查版本

    [root@jiang java]# java -version
    java version "1.8.0_201"
    Java(TM) SE Runtime Environment (build 1.8.0_201-b09)
    Java HotSpot(TM) 64-Bit Server VM (build 25.201-b09, mixed mode)
    [root@jiang java]#
    
    • 1
    • 2
    • 3
    • 4
    • 5
    2.安装Nginx

    进入nginx官网下载页面,下载Linux所需的压缩包文件。

    nginx-1.20.1.tar.gz

    在安装nginx之前需要安装pcre,gcc,openssl,zlib。因为nginx依赖这些环境。

    yum install pcre pcre-devel gcc openssl openssl-devel zlib zlib-devel
    
    • 1

    上传nginx压缩包到linux,解压。

    tar -zxvf nginx-1.20.1.tar.gz
    
    • 1

    进入解压缩目录,执行./configure。

    cd nginx-1.20.1/
    
    ./configure
    
    • 1
    • 2
    • 3

    执行make

    make
    
    • 1

    执行make install

    make install
    
    • 1

    nginx已完成安装,默认安装目录为 /usr/local/nginx

    进入安装位置的sbin目录,使用./nginx启动nginx

    cd /usr/local/nginx/sbin
    
    ./nginx
    
    • 1
    • 2
    • 3
    用浏览器访问安装nginx所在机器的ip地址可以看到nginx欢迎页面,表示安装成功。

    二、启动springboot后端项目和配置vue前后台两个前端项目

    1、启动springboot后端项目

    springboot后端项目打成jar包,上传到Linux。

    nohup java -jar xxx.jar  > /opt/software/blog/data/logs/logs_out.log  2>&1 & 
    
    • 1
    2、vue前后台两个前端项目配置打包与部署

    前台项目配置vue.config.js

    module.exports = {
        transpileDependencies: ["vuetify"],
        publicPath:'/blog',		// 配置公共路径,方便Nginx代理
        devServer: {
            port: 9090,
            proxy: {
                "/api": {
                    target: "http://localhost:8081",	// 访问后台地址
                    changeOrigin: true,
                    pathRewrite: {
                        "^/api": ""
                    }
                }
            },
            disableHostCheck: true
        },
        productionSourceMap: false,
        css: {
            extract: true,
            sourceMap: false
        }
    };
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22

    router下的index.js文件配置(部分)

    ....
    const router = new VueRouter({
      mode: "history",
      // base: process.env.BASE_URL,
      base:"/blog",	// 配置公共路径,方便Nginx代理
      routes
    });
    
    export default router;
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    打包后,将dist文件放到Nginx的/html/front/目录下(没有front目录就创建)

    后台项目配置vue.config.js

    module.exports = {
        publicPath:'/admin',	// 配置公共路径,方便Nginx代理
        productionSourceMap: false,
        devServer: {
            port: 9000,
            proxy: {
                "/api": {
                    target: "http://127.0.0.1:8081",
                    changeOrigin: true,
                    pathRewrite: {
                        "^/api": ""
                    }
                }
            },
            disableHostCheck: true
        },
        chainWebpack: config => {
            config.resolve.alias.set("@", resolve("src"));
        }
    };
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20

    router下的index.js文件配置(部分)

    const createRouter = () =>
      new VueRouter({
        mode: "history",
        base:"/admin",	// 配置公共路径,方便Nginx代理
        routes: routes
      });
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    打包后,将dist文件放到Nginx的/html/admin/目录下(没有admin目录就创建)

    三、Nginx的nginx.conf配置

    server {
            listen       9000;	# 监听9000端口
            server_name  localhost;
    
            #charset koi8-r;
    
            #access_log  logs/host.access.log  main;
    
            location /blog {	# 带/blog的路由跳转到前台
                alias   /usr/local/nginx/html/front/dist;
                index  index.html index.htm;
                try_files $uri $uri/ /index.html;
            }
    
            location /admin {	# 带/admin的路由跳转到后台
                alias  /usr/local/nginx/html/admin/dist;
                index  index.html index.htm;
                try_files $uri $uri/ /index.html;
            }
            
    		error_page   500 502 503 504  /50x.html;
            location = /50x.html {
                root   html;
            }
    
            # proxy the PHP scripts to Apache listening on 127.0.0.1:80
            #	后台获取数据接口,带api的,截取掉后再进行请求
            location ~* ^/(api) {
                rewrite ^/api/(.*)$ /$1 break;
                proxy_pass   http://127.0.0.1:8081;
            }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32

    重启Nginx

    [root@jiang nginx]# ./sbin/nginx -s reload
    
    • 1
  • 相关阅读:
    使用 ESP32 设计和控制四足蜘蛛机器人之硬件结构设计篇
    SQL server解决乱码问题
    django 任务管理-apscheduler
    4个宝宝晚上不建议出门的原因,你知道吗?
    THREE.JS 3D模型服务器报404问题(VUE fbx文件在本地能显示 服务器上不显示报404)
    MyBatis入门学习二(配置文件、mapper文件、动态SQL)
    使用Mindspore推理会出现内存泄漏问题
    基于CNN-BiLSTM与三支决策的入侵检测方法
    springmvc基于springboot 的音乐播放系统 _7sdu8
    【RuoYi-Vue-Plus】学习笔记 44 - XSS 过滤器以及 @Xss 注解简单分析
  • 原文地址:https://blog.csdn.net/Joker_Jiang3/article/details/125608323