我在我的服务器上配置了gunicorn来运行我的django-backend。 它工作得很好,但看起来很糟糕。我可以看到我的后端,但它只在HTML中。没有像以前那样的css等。所以我要去:
mysite.com:9000
(我选择此端口用于我的gunicorn配置)
我读过我必须用nginx配置我的django。所以我已经安装了它并告诉我的django项目以下(在settings.py中):
STATIC_ROOT = os.path.join(BASE_DIR, "static/")
之后我要去我的服务器上建立项目的文件夹。我正在激活我的venv并执行以下命令。
python manage.py collectstatic
它在我的项目中创建一个包含所有必要文件的静态文件夹。
问题是使用nginx进行配置。我真的需要它在mysite:9000 不是在mysite:900 /静态或其他东西。我不知道如何配置它。 这就是我尝试过的。
cd /etc/nginx/sites-available/
sudo nano test
server {
server_name mysite.com;
access_log off;
location /static/ {
alias /path/to/myproject/static/;
}
location / {
proxy_pass http://127.0.0.1:9000;
proxy_set_header X-Forwarded-Host $server_name;
proxy_set_header X-Real-IP $remote_addr;
add_header P3P 'CP="ALL DSP COR PSAa PSDa OUR NOR ONL UNI COM NAV"';
}
}
比我去了
cd /etc/nginx/sites-enabled
并执行以下命令并重新启动nginx。
sudo ln -s ../sites-available/myproject
答案 0 :(得分:1)
您似乎要访问错误的网址。您已将gunicorn配置为在端口9000上运行,但nginx在默认Web端口上作为反向代理运行,这就是它的全部要点。你应该去mysite.com; nginx会将Django应用程序代理为:9000并直接提供资产。
答案 1 :(得分:-1)
使用collectstatic
的配置将通过django提供静态文件,因此在http://:9000 / static。
在不同端口上提供文件的最有效方法是直接通过nginx。你可以在nginx.conf中有多个server
指令,每个指令都有自己的listen
指令。
请参阅https://serverfault.com/questions/242679/how-to-run-multiple-nginx-instances-on-different-port
中的答案