设置nginx支持自定义域名

2023-12-20

我有一个 Django Web 应用程序托管在一个虚拟机上,该虚拟机以基于 Debian 的 Ubuntu 作为操作系统,以 nginx 反向代理 + Gunicorn 作为 Web 服务器。

此 Web 应用程序的 DNS 是myapp.cloudapp.net。我也有一个 ccTLDmydomain.pk我需要配置为此 Web 应用程序的自定义域名。

我原来的注册商只支持名称服务器。因此,我在 dns.he.net(一个免费的 DNS 托管提供商)上创建了一个帐户来托管我的名称服务器,并为我的计算机设置 CName。

我的问题是,一旦我将 CName 设置为指向我的 Web 应用程序的 DNS,在浏览器中输入 mydomain.pk 只会显示一个通用的Welcome to ngnix!页。鉴于,输入myapp.cloudapp.net (or myapp.cloudapp.net:80)在浏览器中正确打开 Web 应用程序。为什么设置 CName 不起作用?

我已经与 dns.he.net 的支持人员交谈过 - 我被告知我的 CName 设置正确,并且我的 nginx 配置可能存在一些问题。

例如,这是我的etc/nginx/sites-available/myproject file:

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 中不需要它,除非您想根据收到的主机名提供不同的内容。

如果删除该行,nginx 将应答通过正确端口(本例中为 80)到达服务器的任何请求,并附带myapp.cloudapp.net or mydomain.pk in the Host header.

这假设 /etc/nginx/sites-enabled 中没有其他配置可以捕获请求。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

设置nginx支持自定义域名 的相关文章

随机推荐