Nginx单项目多子模块部署
背景:有时候我们需要在一个项目下部署多个子应用模块,让看起来就像是同一个系统一样,比如:
主应用:http://localhost:3000
子应用:http://localhost:3000/admin
server {
listen 3000;
server_name localhost;
location / {
root /var/www/mainApp; ###配置主应用的文件夹
index index.html index.htm;
try_files $uri $uri/ /index.html;
}
location /admin { ###配置子应用入口
alias /var/www/adminApp; ###配置子应用的文件夹
index index.html index.htm;
try_files $uri $uri/ /admin/index.html;
}
}
Nginx增加子配置文件
背景:有时候我们不想污染nginx.conf主配置文件,这样会使默认配置文件看起来臃肿不利于维护,我们可以按项目增加单独的子配置文件,步骤如下:
1.新增子配置
新增目录: /www/server/nginx/conf.d
新增子配置文件: /www/server/nginx/conf.d/halo.conf
2.编辑子配置文件
upstream halo {
server 127.0.0.1:10601;
}
server {
listen 80;
listen [::]:80;
server_name www.xxx.com;
client_max_body_size 1024m;
location / {
proxy_pass http://halo;
proxy_set_header HOST $host;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
3. 主配置文件引入子配置
向nginx.conf的http配置内写入以下代码:
注意:include前后顺序影响nginx的代理功能
include /www/server/nginx/conf.d/*.conf;
Nginx配置SPA应用
前端SPA应用发布到服务端后,访问主页正常,但是url中增加其他路由后提示404,这时需要通过Nginx将访问重定向到index.html页面,需要在站点Nginx新增如下配置:
location / {
try_files $uri $uri/ /index.html;
}
评论