小弟新人一个,想问问,多个域名如果解析到同一台主机的不同端口?

我是在阿里云的个人服务器,手里有两个域名 aaa.com和bbb.com。


centOS 7 + nginx




然后aaa.com我是写在nginx.conf的配置文件里,监听的是80端口,指向项目a




bbb.com是写在bbb.conf的配置文件里,监听82端口,指向项目b




但是为什么这两个域名打开的都是项目a的内容,bbb.com这个域名要加上82的端口号才能正确访问到项目b。




现在我的疑问就是,bbb.com这个域名的配置文件该如何做才可以不加上端口号就能正确访问到项目b的内容
自己在百度上查的,说是bbb.com的配置文件加上

location / {
    proxy_pass http://ip+端口号
}

可是并不可以啊,具体应该要怎么做才可以,来这边求教各位大佬,这里贴上我两个项目的配置文件

图片说明
图片说明

4个回答

图片说明
文不重要,看图↑↑↑↑

kelvin5gc
kelvin5gc 大佬在上,受小弟一拜
5 个月之前 回复

NGINX的配置

server {
    listen 80;
    server_name www.aaa.com;

    # 其他配置继续添加

    location ~ /(\w+) {
        # 其他配置继续添加
        proxy_http_version 1.1;

        proxy_set_header Host $http_host;
        proxy_redirect off;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Scheme $scheme;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_pass http://localhost:8000;
        expires -1;
    }
}

server {
    listen 80;
    server_name www.bbb.com;

    # 其他配置继续添加即可

    location ~ /(\w+) {
        # 其他配置继续添加
        proxy_http_version 1.1;
        proxy_set_header Host $http_host;
        proxy_redirect off;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Scheme $scheme;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_pass http://localhost:8500;
        expires -1;
    }
}

两个域名www.aaa.com和www.bbb.com,都指向你的服务器

server_name就会解析到你的域名,符合了后面会走反向代理部分,就是proxy_pass,这里面指定你的本地服务的端口即可

总结下来,就是2个关键,一个是server_name,通过监听端口,以及请求来的域名确定走哪个server。另一个是proxy_pass,代理到本地的哪个端口

简单点
1. 把你现在两个配置listen都改成80
2. server_name换成你的域名,就是解析的域名
3. 在proxy_pass中指向你提供服务的ip:port

希望对你有所帮助。

域名没有你说的解析端口的功能,它只能解析ip
你需要在一个服务器上放多个网站,使用多个域名访问,这个可以通过配置主机头区分
如果你的多个网站还是多个服务器或者多个端口的,但是统一希望用域名不带端口(也就是默认80端口)访问,这个可以用ngnix反向代理

kelvin5gc
kelvin5gc 第一个配置文件就是监听80端口的,这一个我应该是不用考虑了,就是第二个域名的配置文件应该如何做反向代理的配置
5 个月之前 回复
kelvin5gc
kelvin5gc 我两个配置文件搜是监听的80端口,因为看百度上面的都是监听80端口,然后根据servername做proxypass的设置
5 个月之前 回复
caozhy
贵阳老马马善福专业维修游泳池堵漏防水工程 回复kelvin5gc: 你具体报什么错,duplicate default server for 0.0.0.0:80这个是端口冲突造成的,你看看有没有别的程序在监听80端口
5 个月之前 回复
kelvin5gc
kelvin5gc 具体要怎么配置,请问能不能提供什么教程之类的?我百度上找的都没用啊。。。
5 个月之前 回复
caozhy
贵阳老马马善福专业维修游泳池堵漏防水工程 你的反向代理如果监听80,那么你的web服务器就要用不同的端口,不能也是80
5 个月之前 回复
kelvin5gc
kelvin5gc 反向代理是不是都是监听80端口,然后根据server name的不同做不同的proxy_pass的处理?我就是这样做的可是重启失败,报错
5 个月之前 回复
kelvin5gc
kelvin5gc 我有找百度的做了反向代理的配置,bbb.com的server块和aaa.com的一样,也监听80端口,我在重启的时候报了这个错误 a duplicate default server for 0.0.0.0:80 in..... 的错误
5 个月之前 回复

如果你是小白的话,建议你安装一个免费版的宝塔面板,可视化操作界面,多个域名都可以映射到你的服务器IP,然后你在宝塔面板里添加不同域名的网站内容,就可以了,非常方便,如果采纳,请给积分。

kelvin5gc
kelvin5gc 我有了解过宝塔,但是看有人说安装完宝塔之后和服务器里的其他文件起了冲突,所以宝塔的选项我不采纳。。
5 个月之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!