gpt4 book ai didi

django - 在同一域下使用 Nginx 和 Gunicorn 为多个 Django 应用程序提供服务

转载 作者:行者123 更新时间:2023-12-02 05:14:42 25 4
gpt4 key购买 nike

现在我在一个域中有一个 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;

最佳答案

您必须在不同的端口上运行项目,例如 8000 上的 firsrone 和 8001 上的 secondaryone。然后在 nginx conf 中,您必须编写 location/firstone/ 代替 location/ ,代理将其传递到端口 8000,然后为第二个编写相同的位置对象,如下所示location/secondone/ 和代理将其传递到端口 8001。

对于静态文件和媒体,您必须将它们作为/firstone/static 提供,对于 secondaryone 也是如此。另一种方法是为两个项目指定相同的 MEDIA_ROOT 和 STATIC_ROOT。

关于django - 在同一域下使用 Nginx 和 Gunicorn 为多个 Django 应用程序提供服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53247115/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com