NGINX代理详解,多文件NGINX配置,多个项目部署NGINX配置拆分成多个单独的文件

it2026-04-06  2

有时我们同一个服务器可能要部署多个项目,因为每个项目启动都会有不一样的端口号,所以怎么让项目启动起来不用带端口号,这块怎么代理,以及把所有项目的配置文件放在同一个nginx.conf中可能会有点乱,怎么分类管理,处理成一个文件管理一个项目,然后集合起来,下面来说说实现方法:

先说说nginx.conf下都有那些常用的东西或者结构:
events { worker_connections 1024; } http { include mime.types; default_type application/octet-stream; sendfile on; #tcp_nopush on; keepalive_timeout 65; upstream nodenuxtpc { server 127.0.0.1:3000; #nuxt项目 监听端口 } upstream nodenuxt { server 127.0.0.1:3001; #nuxt项目 监听端口 } server { listen 80; # 代理后的端口号 server_name bbp.baid.com; # 项目启动的域名代理(bbp.baid.com可以是你项目中配的域名,也可以这儿自己命名,这个是代理后的域名,如果这个是你项目中配置的域名,那这个域名也就是你的本地hosts带端口号的地址) location / { # ‘/’即是首页代理 proxy_pass http://nodenuxtpc; (这一步是真正的代理,也就是把你本地启动的host地址做代理,也就是nodenuxtpc下这个本地启动的地址) } #配置请求中的域名代理('/wap_app/xinwen/list') location /wap_app { # '/wap_app' 请求地址的前一路径做代理 proxy_pass http://192.168.8008.99:4567; #代理到这个这个服务器,代理完后的完整路径应该为'http://192.168.8008.99:4567/wap_app/xinwen/list' } location /bd-m { proxy_pass http://image.bdimg.com; proxy_set_header Host image.bdimg.com; } } server { listen 80; server_name xxx.xx.com; location / { ...... } } ...... }
所以一个nginx.conf包含:1个events、1个http、1个http下有多个upstream和多个server(upstream和server为一一对应关系),1个server下有多个location
1. 多项目不带端口号启动配置

80为默认端口,把所有项目的端口号只需代理成80即可

2.每个项目拆分一个conf,然后集成

直接上代码: nginx.conf

events { worker_connections 1024; } http { include mime.types; default_type application/octet-stream; sendfile on; #tcp_nopush on; keepalive_timeout 65; clude host_conf/*.con # 全部导进来 }

host_conf文件下: a.conf

upstream nodenuxt { server 127.0.0.1:8001; #nuxt项目 监听端口 } server { .... }

b.conf

upstream nodenuxt { server 127.0.0.1:8002; #nuxt项目 监听端口 } server { ... }

c.conf

upstream nodenuxt { server 127.0.0.1:8003; #nuxt项目 监听端口 } server { ... }
最新回复(0)