我有两个在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}}。任何帮助将不胜感激!
答案 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