zoukankan      html  css  js  c++  java
  • 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
  • 相关阅读:
    【计算机网络】WebSocket实现原理分析
    【计算机网络】如何让Ajax通信过程携带Cookie呢?
    【计算机网络】HTTPS协议的传输细节及过程分析
    【计算机网络】UDP基础知识总结
    前端知识体系-NodeJS相关】NodeJS基础知识全面总结
    【前端知识体系-NodeJS相关】对NodeJS模块机制的理解
    【前端知识体系-NodeJS相关】对于EventLoop(事件轮询)机制你到底了解多少?
    【前端知识体系-JS相关】你真的了解JavaScript编译解析的流程吗?
    【前端知识体系-NodeJS相关】浅谈NodeJS中间件
    linux安装electron
  • 原文地址:https://www.cnblogs.com/zyx-blog/p/15021387.html
Copyright © 2011-2022 走看看