首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如果位置不是pypiserver `/`,则Nginx反向代理失败

如果位置不是pypiserver `/`,则Nginx反向代理失败
EN

Stack Overflow用户
提问于 2018-04-20 12:16:12
回答 1查看 726关注 0票数 0

我正在尝试使用PyPI运行自定义佩皮瑟弗服务器。

我试图修改自述文件中的示例nginx.conf文件,以便使用/mylocation而不是/,最后得到以下结果:

代码语言:javascript
复制
server {
    server_name mypi.com;
    listen 443 ssl;
    ssl_certificate /cert/path;
    ssl_certificate_key /key/path;
    include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
    ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot

    location /mylocation {
        auth_basic            "Howdy!";
        auth_basic_user_file  /path/to/pwd;

        proxy_set_header    Host $host:$server_port;
        proxy_set_header    X-Forwarded-Proto $scheme;
        proxy_set_header    X-Real-IP $remote_addr;
        proxy_pass        127.0.0.1:8080/;
    }
}

如果我(通过浏览器)直接连接到http://mypi.com:8080pypiserver的默认欢迎页面就会弹出。如果我尝试连接到https://mypi.com/mylocation,它会将我重定向到https://mypi.com/simple/并抛出一个404错误。我认为location + proxy_pass的组合基本上是一种表达“连接到mypi.com/mylocationmypi.com:8080/相同”的方式。我搞错了吗?还是问题与pypiserver本身有关?

如果有帮助,我将使用Raspberry Pi提供以下程序的版本:

  • nginx:1.12.2
  • pypiserver:1.2.1
  • python:3.6.5
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-04-21 10:42:46

一个带有proxy_pass的位置块只是不改变地通过路径,除非您rewrite它。

对于您的情况,在proxy_pass语句之后添加以下重写规则。

rewrite ^/mylocation/?(.*)$ /$1 break;

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49941466

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档