nginx - 使用 namecheap 在 nginx 上配置子域

标签 nginx configuration dns subdomain

我使用 namecheap 购买了一个域名,为简单起见,我们将其称为 example.com。
我在基于 Debian 的 VPS 上运行 nginx。

我想设置以下配置

  • (www).example.com 指向:到 var/www/blog
  • (www).static.example.com : 指向
    var/www/static

  • 但是,我无法使用 nginx 配置子域,或者我需要使用 Namecheaps 控制面板来做些什么?

    这是我在 Namecheap 上的配置:
  • @ 111.111.111.111 记录类型:A TTL:1800
  • www example.com 记录类型:Cname/Alias TTL:1800

  • 没有配置子域,我应该在这里配置子域吗!?

    这是我的 nginx 配置:
    server {
        root /var/www/blog;
        index index.html index.htm;
        server_name localhost example.com www.example.com;
        location / {
        index index.html index.htm;
       }
    }
    
    server {
        root /var/www/static;
        index index.html index.htm;
        server_name static.example.com www.static.example.com;
        location / {
        index index.html index.htm;
    }
    

    但是,这会导致以下情况:
  • www.example.com 指向正确的目的地
  • random.example.com 指向 www.example.com(我不希望这种情况发生,它应该返回 404)
  • static.example.com 给了我一个错误 400。如果我查看我的日志,它找不到文件/var/www/blog/static/index.html,而实际上我希望它指向/var/www/静态/index.html
  • 最佳答案

    您必须记住,设置 DNS 和配置 nginx 是完全不同的任务。

    我喜欢设置 DNS 的方式是做一个 CNAME来自 www和其他子域返回到原始域,如果它们在逻辑上相同,并且托管在同一台服务器上。 (但是,从技术上讲,这是不正确的,因为这意味着您指定所有域都有 MX 记录,以及 TXT/SPF 记录表明它们可以用于邮件。但没有人真正关心,因此,只要您没有将 TLD 本身作为 CNAME ,事情就应该没问题。)

    您没有看到 404来自 random.example.com因为第一个 server成为您的默认服务器。为避免这种情况,您可能需要额外的 server 带有 listen 的上下文指令具有 default_server参数,这里可以无条件return 404;对于所有请求。

    你最后的原因server上下文可能无法正常工作可能是由于缺少 listen指示。拥有相同的 listen 通常会有所帮助。所有服务器之间的指令。

    关于nginx - 使用 namecheap 在 nginx 上配置子域,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23975817/

    相关文章:

    java - 如何强制嵌入式 Tomcat 查找 struts.xml 文件?

    c++ - 如何在静态库中提供默认的 YAML 配置值?

    dns - 为CDN选择域名时,有什么需要注意的吗?

    django - 使用 Daphne 和 Nginx 部署 django channel 时遇到问题

    php - 使用PHP在服务器上播放音频

    c# - ConfigurationManager.GetSection 和 Configuration.GetSection 有什么区别?

    ssl - HTTPS 的 DNS 记录? NSONE、Namecheap、Hostmonster

    apache - 将域名关联到 Apache 中的目录

    nginx - gevent 会加速 pymongo 连接吗

    php - Nginx PHP 因大文件上传(超过 6 GB)而失败