使用同一个nginx同时启动两个项目
本地调试两个项目的时候,最开始使用两个配置文件切来切去的,太麻烦,遂有了用同一个服务启动两个项目的办法,百度了一下没有比较好的例子,贴在这里,以供查阅
worker_processes 2;
events {
worker_connections 1024; # 最大连接数
multi_accept on;
}
http {
include mime.types; #文件扩展名与文件类型映射表
default_type application/octet-stream;
sendfile on; # 开启文件上传
keepalive_timeout 180s; # 连接超时时间
upstream test { # 配置后台转发地址 test 是自定义的服务名
server 127.0.0.1:8213;
}
server {
listen 8084; # 指定前端服务1的监听地址
server_name localhost;
client_max_body_size 500m;
location / {
root html-mdp; # 服务1的前端文件存放的地址
if (!-e $request_filename) {
rewrite ^/(.*) /index.html last;
break;
}
index index.html; # 指定默认访问的页面
}
location ~ ^/aaa/ { # 设置代理前缀为 aaa 的所有请求到 proxy_pass 所配置的地址
proxy_set_header Host $host;
proxy_pass http://test;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header REMOTE-HOST $remote_addr;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
upstream test2{ # 设置第二个后台服务地址
server 127.0.0.1:8280;
}
server { # 第二个前端服务
listen 8086;
server_name localhost;
client_max_body_size 500m;
location / {
root html-test2; # 第二个服务的html文件地址
if (!-e $request_filename) {
rewrite ^/(.*) /index.html last;
break;
}
index index.html;
}
location ~ ^/bbb/ { # 第二个服务的代理配置 代理前缀为 test2 的请求
proxy_set_header Host $host;
proxy_pass http://test2;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header REMOTE-HOST $remote_addr;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
}