如何让 nginx 从不同的端口提供 django admin css 文件

Posted

技术标签:

【中文标题】如何让 nginx 从不同的端口提供 django admin css 文件【英文标题】:How to get nginx to serve django admin css files from different port 【发布时间】:2018-10-07 05:49:18 【问题描述】:

所以我知道有人问过这个问题,但我不确定我的初始设置是否正确。

我正在运行 nginx 来为我的 angular 5 文件提供服务。我让 daphne 为我的频道和 django 代码提供服务。但我不确定如何从 django admin 获取我的静态文件。

nginx 正在监听 80 端口,daphne 在 8080 端口监听。所以要让我的管理员访问http://whatever:8080/admin。管理界面在那里,但它不加载 css 文件。

如何更改我的 nginx 以使其从另一个端口加载静态文件?

这是我的 nginx-conf 的样子

server 
    listen 80 default_server;
    listen [::]:80 default_server;

    root /var/www/whatever;

    index index.html index.htm index.nginx-debian.html;

    server_name localhost;

    access_log /home/ubuntu/.../logs/nginx-access.log;
    error_log  /home/ubuntu/.../logs/nginx-error.log;

    location / 
            try_files $uri $uri/ /index.html;
    

    location /static/ 
            proxy_pass              http://127.0.0.1:8080;
            proxy_set_header        Host             $host;
            proxy_set_header        X-Real-IP        $remote_addr;
            proxy_set_header        X-Forwarded-For  $proxy_add_x_forwarded_for;
            proxy_redirect off;
            alias /home/ubuntu/.../static/;
    

我确定最后一行是不对的,甚至是最后一个位置块。

有什么想法吗?

【问题讨论】:

【参考方案1】:

所以我不确定这是否是最好的解决方案,但它现在可以工作,安装了 whitenoise 并为我的管理员提供静态文件......

【讨论】:

以上是关于如何让 nginx 从不同的端口提供 django admin css 文件的主要内容,如果未能解决你的问题,请参考以下文章

单页应用 Nginx Django Python 和端口转发

如何使用 Nginx 位置为在不同端口上运行的两个后端应用程序提供服务?

如何让 nginx 为多个虚拟主机做 SSL 透传?

使用 Spring Boot 从不同端口提供 REST API 和静态内容

如何为 django 使用 nginx 虚拟服务器 + fcgi?

一台机器多服务部署nginx配置