如何使用Nginx反向代理设置Django

时间:2019-01-19 21:31:16

标签: django nginx

我有一个Django项目,该项目已在127.0.0.1:8888与开发服务器一起运行。我正在尝试使其通过Nginx在我的vps上运行,因此可以在example.com/djangoApp上看到它。

这是我的nginx.conf:

server {
    server_name example.com;
            location /otherLocation/ {
                    proxy_pass http://127.0.0.1:10000;
            }

            location /djangoApp/ {
                     proxy_pass http://127.0.0.1:8888;
            }

当我导航至example.com/djangoApp时,它将引发错误:“使用djangoApp.urls中定义的URLconf,Django依次尝试了这些URL模式: /管理员 当前路径djangoApp /与任何这些都不匹配。“

我可以修改settings.py中的根URL来减轻这种情况吗?

2 个答案:

答案 0 :(得分:0)

我通过添加到nginx.conf中来解决此问题:

location /djangoApp {
    rewrite  ^/djangoApp/(.*) /$1 break;
    proxy_pass http://127.0.0.1:8888;
}

感谢this SO exchange

答案 1 :(得分:0)

        server {
               server_name example.com;
                location /otherLocation/ {
                       proxy_pass http://127.0.0.1:10000/;
                }

                location /djangoApp/ {
                       proxy_pass http://127.0.0.1:8888/;
                }
         }

以上应该可以工作。您缺少 proxy_pass 网址末尾的“/”

或者,你可以这样做

         server {
               server_name example.com;
                location /otherLocation {
                       proxy_pass http://127.0.0.1:10000;
                }

                location /djangoApp {
                       proxy_pass http://127.0.0.1:8888;
                }
         }