Nginx配置同域名下多个Vue项目

时间:2021-07-16
本文章向大家介绍Nginx配置同域名下多个Vue项目,主要包括Nginx配置同域名下多个Vue项目使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

Nginx配置同域名下多个Vue项目

开始捣鼓nginx配置,我采用的是分文件的方式捣鼓的:

首先nginx.conf文件中include所有的配置进来:

http {
    sendfile on;
    tcp_nopush on;
    tcp_nodelay on;
    keepalive_timeout 65;
    types_hash_max_size 2048;
    include /etc/nginx/mime.types;
    default_type application/octet-stream;
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2; 
    ssl_prefer_server_ciphers on;
    access_log /var/log/nginx/access.log;
    error_log /var/log/nginx/error.log;
    gzip on;
    gzip_disable "msie6";
    
  
    include /etc/nginx/conf.d/*.conf; #这一句将conf.d目录下的所有conf配置文件引入
}

然后在conf.d目录下创建每个项目对应的nginx配置文件

1、通过多端口实现

这个其实很简单,通个域名不同端口进入不同项目,只需要nginx监听对应的端口然后指定对应的目录就好,代码如下

对于项目一我们希望通过默认域名进入,即绑定80端口:

####项目一nginx配置文件    

server {

        #访问端口(页面访问端口)
        listen 80;
        server_name xxx;

        error_page 500 502 503 504 /50x.html;
            location = /50x.html {
            root html;
        }

        location / {
            # 前端工程根目录
            root /x/x/x/x/dist;
            index index.html;
        }
        
        location /** {
            # 前端工程根目录
            root /x/x/x/x/dist;
            index index.html;
        }

        #没有跨域需求可以不配
        #代理路径 地址是以spi开头的 ‘/api开头的都走这个代理’
        # 将前端访问的后台端口变更为‘前台id:前台端口/api/xxx/xxx’
        
        location /api {

            #正则表达式匹配路径

            rewrite  ^/api/(.*)$ /$1 break;

            include  uwsgi_params;

            #后端端口(后端最终访问的端口)

            proxy_pass   http://x.x.x.x:8081 ;

        }
        location @router {
        rewrite ^.*$ /index.html last;
        }
    }

项目二,希望通过8081进入,即域名.com:8081这样的方式访问,代码如下

server {

        #访问端口(页面访问端口)
        listen 8081;
        server_name localhost;

        error_page 500 502 503 504 /50x.html;
            location = /50x.html {
            root html;
        }

        location / {
            # 前端工程根目录
            root /x/x/x/x/dist;
            index index.html;
        }
        
        location /** {
            # 前端工程根目录
            root /x/x/x/x/dist;
            index index.html;
        }

        #没有跨域需求可以不配
        #代理路径 地址是以spi开头的 ‘/api开头的都走这个代理’
        # 将前端访问的后台端口变更为‘前台id:前台端口/api/xxx/xxx’
        location /api {

            #正则表达式匹配路径

            rewrite  ^/api/(.*)$ /$1 break;

            include  uwsgi_params;

            #后端端口(后端最终访问的端口)

            proxy_pass   http://x.x.x.x:8081 ;

        }
        location @router {
        rewrite ^.*$ /index.html last;
        }
    }

二、同端口同域名不同目录方式访问不同项目
因为公众号的授权回调是验证域名的,端口号不起作用,所以现在一个校园商城有三个vue项目,分别是:公众号前台、后台管理系统网页端、配送员配送系统。

首先对于一个域名默认路径访问的是公众号前台项目,通过二级目录定位到配送系统,我们如下配置,:

server {

        #访问端口(页面访问端口)
        listen 80;
        server_name senfancollege.com;
        #root /usr/local/www/;
        error_page 500 502 503 504 /50x.html;
            location = /50x.html {
            root html;
        }
    ##项目一,同过域名直接访问
        location / {
            #前端工程根目录
            alias /x/x/x/x/dist/;
            index index.html;
        }
    ##项目二,同过域名.com/YYY访问
        location /YYY {
            # 前端工程根目录
            alias  /x/x/x/x/dist/;
            try_files $uri $uri/ @router;
            index index.html;
        }
        # 没有跨域需求可以不配
        #代理路径 地址是以spi开头的 ‘/api开头的都走这个代理’
        # 将前端访问的后台端口变更为‘前台id:前台端口/api/xxx/xxx’
        location /api {

            #正则表达式匹配路径

            rewrite  ^/api/(.*)$ /$1 break;

            include  uwsgi_params;

            #后端端口(后端最终访问的端口)

            proxy_pass   http://x.x.x.x:8081 ;

        }
        location @router {
        rewrite ^.*$ /index.html last;
        }
    }

这里我没有分配置文件,感兴趣的同学可以试试

附上nignx重新加载配置文件命令

nginx -s reload

原文地址:https://www.cnblogs.com/zyx-blog/p/15021387.html