django - 使用proxy_pass的nginx位置路径

标签 django nginx proxy gunicorn

我遇到以下问题,我正在尝试在运行Nginx的VPS上放置带有gunicorn服务器的Django应用。我的nginx配置看起来像这样:

upstream app_name {
    server unix:/path/to/socket/file.sock fail_timeout=10;
}

server {

   listen 80 default_server;
   listen[::]:80 default_server ipv6only=on;
   root /webapps/;
   server_name my_hostname.com;

   location / {
      proxy_set_header Host $http_host;
}

   location /appname/ {
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
      proxy_set_header Host $http_host;
      proxy_redirect off;

      proxy_pass http://app_name;

}

}

但是,当我导航到my_server.com/appname/时,我不断收到404错误。我还是Nginx的新手,有人可以向我指出如何设置/appname/路径的proxy_pass的正确方向吗?我应该指出,当/appname/的位置替换为/时,django应用程序运行良好。

最佳答案

您只需要在proxy_pass后面加上一个斜杠:

proxy_pass http://app_name/;

它可以帮助您减少“appname”前缀,因此配置如下所示:
upstream app_name {
    server unix:/path/to/socket/file.sock fail_timeout=10;
}

server {

   listen 80 default_server;
   listen[::]:80 default_server ipv6only=on;
   root /webapps/;
   server_name my_hostname.com;

   location /appname/ {
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
      proxy_set_header Host $http_host;
      proxy_redirect off;

      proxy_pass http://app_name/;

}

关于django - 使用proxy_pass的nginx位置路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25475021/

相关文章:

c# - Visual Studio 社区代理

django - 处理django信号后如何显示模板/重定向到模板?

Django,删除文本区域中模板值的初始空间

django - 选择模型数据库的最后3个条目

node.js - 如何更改谷歌计算中的权限以便 Node 可以写入文件?

Java 系统属性重置 http.proxyHost 和 ProxyPort

Django-Oscar - fork 嵌套应用程序

php - 下载 zip 文件 "Failed network error"(PHP/NGINX)

php - 使用 Nginx 设置 Laravel

java - 如何使用selenium,java下载文件