这是基于windows环境搭的。其实和linux环境搭建,差不多,发这篇文章是想让自己明白配置的原理。也是想让自己的项目彻底实现前后端分离。
下面是一个标准的springboot的项目,前端所有静态文件 我放在static里面,接下来我把剪切出来,
彻底把他消失在springboot里面,
剪切完毕,我把static放在nginx.exe 同级目录下,
打开conf文件里面的,编辑nginx.conf文件
我先把server_name 改成127.0.01;(80端口只能让nginx占用)然后修改 location
location /{ root d:/ngnix/nginx-1.18.0/static; index index.html index.htm; }root: 路径填写当前绝对路径下的static
这个时候重新启动nginx . 命令: nginx -s reload (每次编辑完nginx.conf 都要执行该命令)
如果没启动nginx ,直接启动nginx就行。
这个时候输入 127.0.0.1 就进入页面,这个时候访问的static下的index.html页面
然后 我启动后台服务,端口6326。设置context-path : /test
这个时候我想调这个项目的端口6326怎么办,我在location下 额外 新增一个location/test
location /test{
proxy_pass http://127.0.0.1:6326; #1m~Ym~G~Lm~Z~D端m~O1m~Wm~T1m~H~P项m~[1m~Tm~Z~Dm~S?25h
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-Port $server_port;
}
然后index.js的请求路径
解释下我的意思,我在页面请求路径是test开头,是因为我想请求后台服务,必须以test开头才能请求 这个没毛病这个时候当我请求以test开头的路径,会把我index.js 的url 覆盖成
127.0.0.1:6326/test/people_context, 也就是说表面代码是/test/people_context ,实际请求变成了
127.0.0.1:6326/test/people_context
为什么呢。。因为当你请求test开头的路径,刚好映射到 你配置的 location /test{}, 然后他会默认把test前面的location 替换你配置的 http://127.0.0.1:6326,
调一下提交功能,
如果我要实现负载均衡,我在linux下部署了一个项目,在本地起了一个项目,配置如下:
linux启动项目成功,(忽略命令,命令是我自己制作的)
第一次调提交 提示linux 说明我调到了linux下的服务
第二次调到了windows ,实现负载均衡
,
网友评论