Gunicorn服务器的Nginx子域配置

时间:2019-04-30 10:33:49

标签: nginx server configuration subdomain gunicorn

我有两个在DigitalOcean Droplet上运行的服务器。一个是与Gunicorn一起使用的Django / Wagtail应用程序(用作无头CMS),另一个是SSR Nuxt.js应用程序(前端)。使用以下nginx配置,我已经在example.com上提供了Nuxt应用程序(运行良好),现在,我试图在子域cms.example.com上提供我的Django / Wagtail应用程序。 (我已经修改了本地主机文件,因此域example.com可以正常工作)

/etc/nginx/sites-available/default

server {
    listen 80;
    listen [::]:80;
    server_name example.com;

    location / {
        proxy_pass http://localhost:3000;
            proxy_http_version 1.1;
            proxy_set_header Upgrade $http_upgrade;
            proxy_set_header Connection 'upgrade';
            proxy_set_header Host $host;
            proxy_cache_bypass $http_upgrade;
    }
}

server {
    listen 80;
    listen [::]:80;
    server_name cms.example.com;

    location / {
        include proxy_params;
        proxy_pass http://unix:/home/thomas/daweb/cms/cms.sock;
    }
}

/etc/nginx/proxy_params

proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;

curl --unix-socket /home/thomas/daweb/cms/cms.sock cms.example.com的结果是默认Wagtail登录页面的html,没有错误。

但是,导航到cms.example.com只会给我一个连接错误。如果我将二者互换,则可以在example.com看到Wagtail界面,因此我知道它们都可以使用。但是,我似乎无法弄清楚如何配置子域,因此我很难理解nginx文档。同样,有关配置子域的类似问题通常也涉及使静态文件可用,而不是监听活动端口。

麻烦的另外一层是,Wagtail CMS可在其服务器根目录的/admin处访问,因此我想将该页面显示在cms.example.com上,而不必导航至{{ 1}}。任何帮助将不胜感激!

1 个答案:

答案 0 :(得分:0)

检查/ etc / nginx / proxy_params中包含的内容。我希望这样的事情:

proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;

另外,要确保Gunicorn正常工作,请尝试:

curl --unix-socket /home/thomas/daweb/cms/cms.sock cms.example.com