Nginx 既提供静态文件服务,又反向代理 gunicorn 服务器

Nginx 既提供静态文件服务,又反向代理 gunicorn 服务器

大家好,我想为我的服务器创建一个 nginx 配置。我现在想为 localhost 提供测试服务。所以我在 myWebsite.conf 文件中进行了设置,然后通过以下方式将其包含在 nginx.conf 文件中include /path/to/myWebsite.conf

我想让我的服务器以这种方式进行块处理,以便当 url 为 localhost:8080 时以及当 url 为 localhost:8080/services 时它可以提供静态 index.html、css 文件和 js 文件。我希望 nginx 反向代理已启动并正在运行并为我的 falcon 应用程序(后端 python 框架)提供服务的 gunicord 服务器

我构建服务器块的方式如下

server {
  listen 8080;
  server_name localhost;
  index index.html

  location ~ / {
    root /path/to/var/www/mySite (where I have only my index.html page)
  }

  location ~ /services {
    proxy_pass http://127.0.0.1:8000; (gunicorn server running)
  }

  add_header Cache-Control no-cache; (no cache for testing reasons)
}

我得到的结果是服务器只提供 index.html 服务,没有其他服务。当我输入 localhost:8080/services 时,我无法访问我的 python 程序上的 api 方法。你能帮我看看我应该更改哪一部分才能让它播放吗?或者我尝试这样做的方式完全错了?

答案1

在应有的位置添加一些尾随斜杠,并且可能去掉波浪号,~因为它们与常规表达式匹配有关。

尝试这样做:

server {
  listen 8080;
  server_name localhost;
  index index.html

  location / {
    root /path/to/var/www/mySite; # (where I have only my index.html page)
  }

  location /services/ {
    proxy_pass http://127.0.0.1:8000/; #(gunicorn server running)

    proxy_set_header Host $http_host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Forwarded-Proto $scheme;
  }

  add_header Cache-Control no-cache; #(no cache for testing reasons)
}

相关内容