设置nginx支持自定义域名

5
我有一个Django Web应用程序,它托管在Debian-based Ubuntu操作系统的VM上,并使用nginx反向代理+gunicorn作为Web服务器。
这个Web应用程序的DNS是myapp.cloudapp.net。我还有一个ccTLD mydomain.pk,我需要将其配置为此Web应用程序的自定义域名。
我的原始注册机构只支持名称服务器。因此,我在dns.he.net(一个免费的DNS托管提供商)上创建了一个帐户来托管我的名称服务器,并设置了我的机器的CName。
我的问题是,一旦我设置了CName指向我的Web应用程序的DNS,输入浏览器中的mydomain.pk只会显示一个通用的“欢迎来到ngnix!”页面。而输入myapp.cloudapp.net(或myapp.cloudapp.net:80)在浏览器中正确打开Web应用程序。为什么设置CName不起作用?
我已经与dns.he.net的支持人员交谈过-他们告诉我我的CName已正确设置,并且可能存在我的nginx配置问题。
例如,这是我的etc/nginx/sites-available/myproject文件:
server {
    listen 80;
    server_name myapp.cloudapp.net;
    charset utf-8;
    underscores_in_headers on;
    location = /favicon.ico { access_log off; log_not_found off; }

    location /static/ {

        root /home/myuser/projectpk/project;
    }

    location /static/admin {

        root /home/myuser/.virtualenvs/projectpk/local/lib/python2.7/site-packages/django/contrib/admin/static/;
    }

    location / {
        proxy_pass_request_headers on;
        proxy_buffering on;
        include proxy_params;
        proxy_pass          http://unix:/home/myuser/projectpk/project/project.sock;
    }


    error_page 500 502 503 504 /500.html;
    location = /500.html {
        root /home/myuser/projectpk/project/templates/;
    }
}

你可以删除 server_name 这一行,在 Nginx 中它不是必需的,除非你想根据接收到的主机名提供不同的内容。如果你删除了这一行,在适当的端口(本例中为 80)接收到的任何请求都将被 Nginx 响应。 - tato
@tato:好的,我会这样做,但是由于myapp.cloudapp.net可以正常工作,当我设置CName时,server_name行如何干扰转发?或者你并不是这个意思? - Hassan Baig
1个回答

3
删除server_name行,除非您想根据接收到的主机名提供不同的内容,否则在nginx中不需要该行。
如果删除该行,则nginx将响应到达服务器端口(在此情况下为80)的任何请求,并带有myapp.cloudapp.netmydomain.pkHost标头中。
这假设在/etc/nginx/sites-enabled中没有其他配置可以捕获请求。

啊,不好了,这个更改现在甚至在 myapp.cloudapp.net 上也给我一个通用的 Welcome to nginx! 页面。 - Hassan Baig
你在 /etc/nginx/sites-enabled 目录下有其他的配置文件吗?可能是它在处理请求。尝试移除其他的配置文件。 - tato
我那边还有另一个文件是“default”,那可能就是罪魁祸首了。等我回复你,稍等一下。 - Hassan Baig
请删除此内容(它可能是一个指向 sites-available 的链接,可以安全删除)或将其移动到其他位置。 - tato
为了完整起见:sites-available 文件夹仍然有 default 文件。如果我让它保留,会有影响吗? - Hassan Baig
显示剩余2条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接