Nginx同一端口部署多个前后端分离的vue项目
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Nginx同一端口部署多个前后端分离的vue项目相关的知识,希望对你有一定的参考价值。
要用nginx容器部署多个前端项目可以采用监听端口,和基于location配置两种方法,
我的nginx是使用docker部署的,启动的时候没有开多余的端口,所以采用location配置
一个server下根据根路径不同分别代理访问不同项目。
下面操练起来,问:把大象放冰箱?总共需要几步:三步!
第一步:Nginx 相关位置代码
worker_processes 1;
events
worker_connections 1024;
http
client_max_body_size 100m;
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
server
listen 80;
server_name localhost;
charset utf-8;
#项目一,同过ip:80直接访问
location /
root /home/ruoyi-ui/dist; #dist文件的位置(根据自己dist包放置的位置决定)
try_files $uri $uri/ /index.html;
index index.html index.htm;
#项目二,同过ip:80/project直接访问
location /project
alias /home/zero/dist/;#注意第二个项目路径是alias不是root,通常最佳实际是配置一个项目的根root,其他的文件夹则使用alias,毕竟alias更加灵活
try_files $uri $uri/ /project/index.html;
index index.html;
#第一个项目(前后端分离)反向代理来解决跨域问题
location /prod-api/
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header REMOTE-HOST $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
#后端服务端口地址:
proxy_pass http://10.10.11.79:8080/;
#第二个项目(前后端分离)反向代理来解决跨域问题,要与第二个项目vue里面跨域的配置一致,没有跨域问题可以不配置
location /zero-api/
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header REMOTE-HOST $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
#后端服务端口地址:
proxy_pass http://10.10.11.79:8083/;
error_page 500 502 503 504 /50x.html;
location = /50x.html
root html;
访问的时候是ip:端口号/+你配置的路径:第一个路径时候/,第二个路径是/project
主要是两个地方:
1.第二个local 后面/project 这个名字要与vue项目中
index.js ,vue.config.js配置里面的名称要一样
2.跨域的问题第四个local中location /zero-api/ 这个名字要与vue项目中vue.config.js文件中的跨域那个地方的配置要一致。
第二步:Vue 项目配置文件设置
1.修改index.js
修改路由,在src目录下找到reouter目录,添加base属性:
base: /project,
这个地方的名字需要与 nginx.conf 中第二个项目location的/后面的路径名称一致。
2. 修改vue.config.js
修改根目录下的vue.config.js的publicPath路径:
module.exports =
publicPath: "/project",
这个地方的名字需要与 nginx.conf 中第二个项目location的/后面的路径名称一致。
3. 处理前后端分离跨域问题
没有跨域需求可以不配,现在都是前后端分离了,用nginx分别代理前端和后端微服务,解决跨越问题。修改vue.config.js:
devServer:
port: 80, //本地项目端口
proxy:
"/zero-api": // 这个意思是:原先以 /zero-api 开头的请求
target: http://10.10.11.79:8083, // 凡是以 /zero-api 开头的请求,通通请求这个服务器
changeOrigin: true, // 允许跨域
,
/zero-api 要与nginx 里面那个反向代理里面那个zero-api一致。
第三步:部署
修改nginx配置文件nginx.conf,
把第二个vue项目打包放到目录中/home/zero/dist,重启nginx。
Linux部署前后端分离项目(SpringBoot+Vue)Nginx部署
title: Linux部署前后端分离项目(SpringBoot+Vue)【Nginx部署】
date: 2022-04-26 17:27:50
categories: Linux
tags:
- Linux
- SpringBoot
- Vue
- Nginx
需求引入
题外话:这种标题网上一搜全是,我为啥还写这篇文章,一是作为笔记,二是可能不同人遇到的问题不一样,处理方案也不同,我多发一篇,就帮助读这篇文章的你多一种部署成功的情况。
这个时候最多的是部署毕设吧,今天有朋友问我,我就整理成一篇文章供大家参考。
需求很简单,就是想把自己写的前后端分离的项目部署到Linux服务器上,我们要准备啥,首先就是前后端分离的一个项目,其次一个安装好nginx和jdk的服务器,我相信你也都有了,才看到这篇文章的,来吧,跟着开始。
Linux安装jdk可以看我的这篇文章:学妹跑过来抱着我的胳膊让我帮她在Linux上装jdk【手把手教学】
步骤
1、对前端项目的baseURL进行修改
82是你想在服务器那个端口访问这个项目,自己根据情况更改,XXXX是自己的服务器ip
加个api是为了后面在nginx处理,随便写,不一样非
以上是关于Nginx同一端口部署多个前后端分离的vue项目的主要内容,如果未能解决你的问题,请参考以下文章
Linux部署前后端分离项目(SpringBoot+Vue)Nginx部署
Linux部署前后端分离项目(SpringBoot+Vue)Nginx部署