有时我们同一个服务器可能要部署多个项目,因为每个项目启动都会有不一样的端口号,所以怎么让项目启动起来不用带端口号,这块怎么代理,以及把所有项目的配置文件放在同一个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 {
...
}