[解释] 我的 nginx 目录就是原生的,内部包含了一个 html 文件夹,为了省事,我直接使用这个,当然你也可以指定其他的目录,但是目前还请和我一样的配置,后面可以自己定制化。
现在我们开始配置在 conf 文件夹下的 nginx.conf 文件
我是直接在原始文件上修改的,而修改的配置都是在 http 模块中,所以其他的不需要的代码我直接用 ... 代替。
# ...
# 反向代理
http {
include mime.types;
default_type application/octet-stream;
#log_format main '$remote_addr - $remote_user [$time_local] "$request" '
# '$status $body_bytes_sent "$http_referer" '
# '"$http_user_agent" "$http_x_forwarded_for"';
sendfile on;
keepalive_timeout 65;
client_max_body_size 20M;
client_body_buffer_size 10M;
large_client_header_buffers 4 128k;
# 这里可以做集群
upstream p1_server {
server localhost:8081;
}
# 这里可以做集群
upstream p2_server {
server localhost:8082;
}
server {
listen 8080;
server_name localhost;
charset utf-8;
proxy_connect_timeout 180;
proxy_send_timeout 180;
proxy_read_timeout 180;
proxy_set_header Host $host;
proxy_set_header X-Forwarder-For $remote_addr;
root html; # 这里指定刚刚我们的文件夹
# 总的项目路由,我偷懒直接写在了同一个文件
# 如果有很多可以在配置多个 conf 文件,使用 include 关联进来
location / {
try_files $uri $uri/ /index.html; # 这里可以理解指定到 html 文件夹下的 index.html
}
# project1
# 这里就是刚刚我们在 vue 项目中 config/index.js 的配置 build.assetsPublicPath,
# 也是 vue 项目中配置的 router 中的 base
location ^~ /project1 {
try_files $uri $uri/ /project1/index.html; # 这里可以理解指定到 html 文件夹下 project1 文件夹 的 index.html
}
# project2
# 这里是项目二的配置
location ^~ /project2 { #
try_files $uri $uri/ /project2/index.html; # 这里可以理解指定到 html 文件夹下 project2 文件夹 的 index.html
}
# 这里是 project1 配置需要调用的接口
location /api/pro1 { # 这里就是在 vue 项目中 prod.env.js 的配置 BASE_API
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://p1_server; # 此处的 p1_server 对应的上面的配置 upstream p1_server {},这里可以做集群,我用不到,就简单配置了
}
# 这里是 project1 配置需要调用的接口
location /api/pro2 { # 这里就是在 vue 项目中 prod.env.js 的配置 BASE_API
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://p2_server; # 此处的 p2_server 对应的上面的配置 upstream p2_server {},这里可以做集群,我用不到,就简单配置了
}
# ...
}
# ...
}








