nginx配置多个域名使用同一个端口

随着服务器性能的提升和业务的需求,一台服务器上往往会同时有多个服务,这些服务都希望监听80端口,比如有a.com和b.com。这时候我们可以使用nginx的代理转发功能帮我们实现共用80端口的需求。 先在两个空闲的端口上分别部署项目(非80,假设是8080和8081)nginx配置如下: # a项目配置nginx server { listen 8080; root /usr/share/nginx/html; #这里是默认路径,生产中代码存放路径:root /web/vue-base-demo/dist/; index index.html; location / {} } # b项目配置nginx server { listen 8081; root /usr/share/nginx/html; #这里是默认路径,生产中代码存放路径:root /web/react-base-demo/build; index index.html; location / {} } 紧接着如果已经做好域名解析,希望a.com打开a项目,b.com打开b项目。我们需要再做两个代理,如下: # nginx 80端口配置 (监听a二级域名) server { listen 80; server_name a.com; location / { proxy_pass http://localhost:8080; # 转发 } } # nginx 80端口配置 (监听b二级域名) server { listen 80; server_name b.com; location / { proxy_pass http://localhost:8081; # 转发 } nginx如果检测到a.com的请求,将原样转发请求到本机的8080端口,如果检测到的是b.com请求,也会将请求转发到8081端口。 测试:浏览器输入http://a.com或http://b.com即可。 如果还有其它的想让谁做为默认的为80端口,后listen 80 后加上default_server; 就好 server { listen 80 default_server; server_name b.com; location / { proxy_pass http://localhost:8081; # 转发 }