You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Debian VPS单IP环境下配置NGINX默认域名的问题求助

单IP Debian VPS上配置NGINX多域名及默认IP跳转方案

嘿,我来帮你搞定这个单IP下多域名的NGINX配置问题,核心是让访问服务器IP时自动跳转到你指定的默认域名。咱们一步步来:

核心逻辑先搞懂

NGINX处理多域名请求时,会优先选择默认服务器块响应未匹配到具体域名的请求(比如直接输入IP)。咱们有两种方式指定默认服务器:要么把目标配置放在所有server块最前面,要么直接在listen指令里加default_server参数(更稳妥,不受配置顺序影响)。

第一步:调整默认域名的服务器块配置

假设你要把holdingdomain.com设为默认域名,打开它的配置文件/etc/nginx/sites-available/holdingdomain,修改listen部分并补充IP跳转规则:

server {
    # 标记为默认服务器,处理所有未匹配到具体域名的请求
    listen 80 default_server;
    listen [::]:80 default_server;

    root /var/www/holdingdomain/html;
    index index.html index.htm;

    server_name holdingdomain.com www.holdingdomain.com;

    location / {
        try_files $uri $uri/ =404;
    }
}

# 单独处理IP访问的跳转(推荐添加,让输入IP直接跳转到默认域名)
server {
    listen 80;
    listen [::]:80;
    server_name {VPS IP ADDRESS HERE}; # 替换成你的实际VPS IP
    # 301永久重定向到你的默认域名,保留原请求路径
    return 301 https://www.holdingdomain.com$request_uri;
}

第二步:配置第二个域名的服务器块

比如你的第二个域名是yourseconddomain.com,编辑它的配置文件/etc/nginx/sites-available/yourseconddomain:

server {
    listen 80;
    listen [::]:80;

    root /var/www/yourseconddomain/html;
    index index.html index.htm;

    server_name yourseconddomain.com www.yourseconddomain.com;

    location / {
        try_files $uri $uri/ =404;
    }
}

第三步:启用配置并验证

  1. 先把两个配置文件软链接到启用目录(如果还没做):
sudo ln -s /etc/nginx/sites-available/holdingdomain /etc/nginx/sites-enabled/
sudo ln -s /etc/nginx/sites-available/yourseconddomain /etc/nginx/sites-enabled/
  1. 检查NGINX配置语法是否正确:
sudo nginx -t
  1. 如果提示test is successful,就重启NGINX生效:
sudo systemctl restart nginx

常见问题排查

  • 要是访问IP还没跳转,先看/var/log/nginx/error.log找报错信息,确认配置有没有语法问题。
  • 确保两个域名都已经正确解析到你的VPS IP(可以用nslookup yourdomain.com验证)。
  • 如果用了HTTPS,记得在443端口的listen指令里也加上default_server,配置逻辑和80端口一致。

内容的提问来源于stack exchange,提问作者Sylv99

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 07:06:57