Rik*_*iko 5 django nginx gunicorn
现在我在一个域中有一个 Django 项目。我想在一个域下提供三个 Django 项目,以 / 分隔。例如:www.domain.com/firstone/、www.domain.com/secondone/ 等。如何配置 nGinx 在一个域下提供多个 Django 项目?在这种情况下如何配置静态文件服务?
我当前的 nGinx 配置是:
server {
listen 80;
listen [::]:80;
server_name domain.com www.domain.com;
return 301 https://$server_name$request_uri;
}
server {
listen 443 ssl;
server_name domain.com www.domain.com;
ssl_certificate /etc/nginx/ssl/Certificate.crt;
ssl_certificate_key /etc/nginx/ssl/Certificate.key;
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 5m;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;
root /home/admin/web/project;
location /static {
alias /home/admin/web/project/static;
}
location /media {
alias /home/admin/web/project/media;
}
location /assets {
alias /home/admin/web/project/assets;
}
location / {
proxy_pass_header Server;
proxy_set_header Host $http_host;
proxy_redirect off;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Scheme $scheme;
proxy_set_header X-Forwarded-Proto https;
proxy_connect_timeout 75s;
proxy_read_timeout 300s;
proxy_pass http://127.0.0.1:8000/;
client_max_body_size 100M;
}
# Proxies
# location /first {
# proxy_pass http://127.0.0.1:8001/;
# }
#
# location /second {
# proxy_pass http://127.0.0.1:8002/;
# }
error_page 500 502 503 504 /media/50x.html;
Run Code Online (Sandbox Code Playgroud)
您必须在不同的端口上运行项目,例如 8000 上的 firsrone 和 8001 上的 secondaryone。然后在 nginx conf 中,location /
您必须编写location /firstone/
并代理将其传递到端口 8000,然后为第二个端口编写location /secondone/
与代理相同的位置对象将其传递到端口 8001。
对于静态文件和媒体,您必须将它们作为 /firstone/static 提供,对于 secondaryone 也是如此。另一种方法是为两个项目指定相同的 MEDIA_ROOT 和 STATIC_ROOT。
归档时间: |
|
查看次数: |
3399 次 |
最近记录: |