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

本文介绍了如何利用Nginx的代理转发功能,实现在同一台服务器上多个服务共享80端口,并通过不同域名进行区分。详细配置了Nginx的server块,分别针对a.com和b.com设置代理,使得a.com请求转发到8080端口的服务,b.com请求转发到8081端口的服务。同时,还展示了如何设置默认域名,确保未明确指定域名时的请求处理。
摘要由CSDN通过智能技术生成

随着服务器性能的提升和业务的需求,一台服务器上往往会同时有多个服务,这些服务都希望监听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; # 转发
    }
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

游鱼_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值