使用nginx实现一个端口和ip访问多个vue前端

10,331次阅读
没有评论

共计 1686 个字符,预计需要花费 5 分钟才能阅读完成。

前言:由于安全组要求,前端页面只开放一个端口,但是项目有多个前端,此前一直使用的是一个前端使用单独一个端口进行访问,现在需要调整。

需要实现:这里以 80 端口为例,两个前端分别是:project1,project2。

例如:访问项目 1:192.168.1.10:80/project1

访问项目 2:192.168.1.10:80/project2

需要的配置:1、nginx 配置;2、vue 前端代码修改

1、nginx 配置

server {
        listen       80;
        server_name  localhost;
        charset utf-8;
        
        # 配置默认访问前端
        location / {
            root /usr/local/html/project1/dist/;
            index index.html index.htm;
            try_files $uri $uri/ /index.html;
        }
        
        # 项目 2 前端
        location /project2{
            alias /usr/local/html/project2/dist/;
            index index.html;
            try_files $uri $uri/ /project2/index.html;
        }

        # 项目 1 前端
        location /project1{
            alias /usr/local/html/project1/dist/;
            index index.html;
            try_files $uri $uri/ /project1/index.html;
        }

        # 项目 1 -api 接口地址代理
        location /project1-prod-api/ {if ($request_method = OPTIONS) {
               add_header Access-Control-Allow-Origin *;
               add_header Access-Control-Allow-Methods GET,POST,PUT,DELETE,OPTIONS;
               add_header Access-Control-Allow-Headers *;
               return 200;
            }
            proxy_redirect off;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_buffer_size 128k;
            proxy_buffers 32 32k;
            proxy_busy_buffers_size 128k;

            proxy_pass http://192.168.1.10:8080/;
        }

        # 项目 2 -api 接口地址代理
        location /project2-prod-api/ {if ($request_method = OPTIONS) {
               add_header Access-Control-Allow-Origin *;
               add_header Access-Control-Allow-Methods GET,POST,PUT,DELETE,OPTIONS;
               add_header Access-Control-Allow-Headers *;
               return 200;
            }
            proxy_redirect off;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_buffer_size 128k;
            proxy_buffers 32 32k;
            proxy_busy_buffers_size 128k;

            proxy_pass http://192.168.1.10:8081/;
        }
}

2、vue 前端代码修改

两个项目的 vue 代码均要修改

修改文件:在项目根目录:.env.production

# 页面标题
VUE_APP_TITLE = 某某平台

# 生产环境配置
ENV = 'production'

# 生产环境
VUE_APP_BASE_API = '/project1-prod-api'

在项目根目录:vue.config.js

修改 publicPath 参数

使用 nginx 实现一个端口和 ip 访问多个 vue 前端

3、验证修改

重新打包构建 vue 前端代码,修改 nginx 配置,并重启 nginx,防火墙允许 nginx 配置的端口。

 

原文地址: 使用 nginx 实现一个端口和 ip 访问多个 vue 前端

    正文完
     0
    Yojack
    版权声明:本篇文章由 Yojack 于2024-10-07发表,共计1686字。
    转载说明:
    1 本网站名称:优杰开发笔记
    2 本站永久网址:https://yojack.cn
    3 本网站的文章部分内容可能来源于网络,仅供大家学习与参考,如有侵权,请联系站长进行删除处理。
    4 本站一切资源不代表本站立场,并不代表本站赞同其观点和对其真实性负责。
    5 本站所有内容均可转载及分享, 但请注明出处
    6 我们始终尊重原创作者的版权,所有文章在发布时,均尽可能注明出处与作者。
    7 站长邮箱:laylwenl@gmail.com
    评论(没有评论)