Nginx 同端口多域名配置多站点问题

本文介绍在Nginx中配置多个域名时遇到的问题及解决方案,重点在于如何正确设置default_server,确保所有请求都能被适当处理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

之前碰到过这问题,也在网上找了好多,答案都一样在nginx的配置中配置两个server,但是其中有一个域名会解析不出来,好尴尬,在这里记录一下碰到这个问题该怎么解决

 

nginx 下 conf 目录文件 nginx.conf 文件,如果有多个 server 的话,一定要 确保设置其中一个为 default_server, 这样如果 nginx 按照 server_name 匹配不到合适的 server 时,可以把请求转发给默认的 server 处理。

配置这个只需要在 nginx 的配置中配置两个 server 就可以了。这两个 server 监听同一个端口,但是 server_name 不同。如下:


# 代码是网站拷贝的, 适当的修改了一点, 只要形式一样就可以了

server {
    listen      80 ;
    server_name xxxx.com;
    root        D:/test/webroot/test/;
    index       index.html index.htm;

    location / {
            allow  all;
    }
}
server {
    listen      80 ;
    server_name www.123.com;
    root        D:/test/webroot/apache/;
    index       index.html index.htm;

    location / {
            allow  all;
    }
}
# [关键点]
# 单文件多站点配置, 如果不配置其中一个为 default_server 则失败
# 多文件多站点配置, 也是一样, 将server放置不同的文件 然后 include vhost/*.conf 进来
server {   
    listen      80 default_server;
    server_name localhost;
    root        D:/test/webroot/nginx/;
    index       index.html index.htm;

    location / {
            allow  all;
    }
}
nginx可以通过配置端口多域名来实现多站点访问,具体实现方法如下: 1. 配置多个虚拟主机 nginx支持配置多个虚拟主机,即通过配置多个server块来实现多个站点的访问。每个server块可以对应一个域名或IP地址,也可以配置端口,从而实现多个站点的访问。 例如,配置两个站点,一个使用域名example.com,另一个使用域名hello.com,并且两个站点的端口分别为80和8080,可以使用以下配置: ``` http { server { listen 80; server_name example.com; // 配置站点1的相关参数 } server { listen 8080; server_name hello.com; // 配置站点2的相关参数 } } ``` 2. 配置反向代理 如果需要多个站点共享同一个端口,可以使用反向代理的方式来实现。nginx可以配置一个server块作为反向代理服务器,将不的站点请求分发到不的后端服务器上。 例如,配置两个站点,一个使用域名example.com,另一个使用域名hello.com,并且两个站点共享端口80,可以使用以下配置: ``` http { server { listen 80; server_name example.com; location / { proxy_pass http://localhost:8001; // 配置反向代理 } } server { listen 80; server_name hello.com; location / { proxy_pass http://localhost:8002; // 配置反向代理 } } } ``` 以上两种方法都可以实现nginx配置端口多域名访问,具体选择哪种方法取决于实际需求和部署环境。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

努力搬砖1122

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

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

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

打赏作者

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

抵扣说明:

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

余额充值