Nginx部署多个前后端分类项目(根据请求路径配置访问不同的前端页面)

4 篇文章 0 订阅
1 篇文章 0 订阅

一、情景说明

1.1 说明
  • 当一个项目分为前端页面和后端管理页面时,需要根据请求路径区分访问不同的页面时,则需要配置Nginx进行转发
  • 也相当于,Nginx配置同一个域名端口,根据不同的请求路径来实现访问不同的页面的功能
  • 实现如下效果:
    • 访问www.xxx.top到展示页面
    • 访问www.xxx.top/admin到后端管理页面

注意: 该配置只做了前后端分离项目的测试。单体项目未做测试,有兴趣的码友们可自行套用!

1.2 实现效果

展示页面(www.xxx.top):
展示页面

后端管理页面(www.xxx.top/admin):
后端管理页面

二、准备材料

2.1 材料说明
  • 页面展示的前端文件(如:bussweb)
  • 后端管理页面的前端文件(如:bussui)
  • Nginx服务器
  • 后端服务(Jar包

三、配置路径参数

3.1 说明

www.xxx.topbussweb项目不用修改,正常配置即可
www.xxx.top/adminbussui需要修改配置信息

3.2 配置router.js文件

src/router/index.js文件中
增加一行base: 'admin', 如下所示

export default new Router({
  base: 'admin',
  mode: 'history', // 去掉url中的#
  scrollBehavior: () => ({ y: 0 }),
  routes: constantRoutes
})

router.js

3.3 配置vue.config.js文件

vue.config.js文件中
修改publicPath: "/admin/", 如下所示:

vue.config.js

3.4 配置注销访问的地址(navbar组件中)

如果点击注销时提示404,则需要在navbar组件中配置注销后跳转到的页面地址,如图所示:

navbar

四、配置Nginx

4.1 上传前端静态文件到服务器
  • bussweb和bussui前端文件上传到服务器中,如图所示:
    dist
4.2 配置nginx.conf文件
  • www.xxx.top部署的前端文件是bussweb
  • www.xxx.top/admin部署的前端文件是bussui

www.xxx.top路径使用root,www.xxx.top/admin路径使用alias即可

4.3 配置方案1

在一个server中进行配置,该server中需要配置以下四个功能(‘展示页面,展示页面后端服务 —> www.xxx.top’,‘后端管理页面,后端管理页面后端服务 —> www.xxx.top/admin’)
配置信息如下:

    server {
        listen       80;
        server_name  localhost;

		# 展示页面的静态文件(前端文件bussweb)
		location / {
			root   /home/application/distDir/lib/bussweb;
			index  index.html index.htm;
			try_files $uri $uri/ /index.html;
		}
		
		# 展示页面的后端服务
		location /dev/ {
			proxy_pass http://localhost:8080/; # 后端服务
		}
		
		# 后端管理页面静态文件(前端文件bussui)
		location /admin {
			alias   /home/application/distDir/lib/bussui;
			index  index.html index.htm;
			try_files $uri $uri/ /index.html;
		}
		
		# 后端管理页面的后端服务
		location /ui/ {
			proxy_pass http://localhost:8080/; # 后端服务
		}
		
    }
4.4 配置方案2(/admin 代理转发)

在一个server中进行配置(该server中再次调用另一个server),该server中需要配置以下三个功能(‘展示页面,展示页面后端服务 —> www.xxx.top’,‘后端展示页面及服务的代理转发-转发到两一个server中 —> www.xxx.top/admin’)
配置信息如下:

    # server1
    server {
        listen       80;
        server_name  localhost;

		# 展示页面的静态文件(前端文件bussweb)
		location / {
			root   /home/application/distDir/lib/bussweb;
			index  index.html index.htm;
			try_files $uri $uri/ /index.html;
		}
		
		# 展示页面的后端服务
		location /dev/ {
			proxy_pass http://localhost:8080/; # 后端服务
		}
		
		# 代理到后端管理的服务中
		location /admin/ {
        	proxy_pass http://localhost:81/; # 对应到下面server2中
		    proxy_set_header Host $host;
			proxy_set_header X-Real-IP $remote_addr;
			proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
		}
		
    }
    
    #server2
    server {
        listen       81;
        server_name  localhost;

		# 后端管理页面静态文件(前端文件bussui)
		location / {
			root   /home/application/distDir/lib/bussui;
			index  index.html index.htm;
			try_files $uri $uri/ /index.html;
		}
		
		# 后端管理页面的后端服务
		location /ui/ {
			proxy_pass http://localhost:8080/; # 后端服务
		}
    }
  • 27
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

醒省行

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值