我正在尝试使用PyPI运行自定义佩皮瑟弗服务器。
我试图修改自述文件中的示例nginx.conf文件,以便使用/mylocation而不是/,最后得到以下结果:
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:8080,pypiserver的默认欢迎页面就会弹出。如果我尝试连接到https://mypi.com/mylocation,它会将我重定向到https://mypi.com/simple/并抛出一个404错误。我认为location + proxy_pass的组合基本上是一种表达“连接到mypi.com/mylocation与mypi.com:8080/相同”的方式。我搞错了吗?还是问题与pypiserver本身有关?
如果有帮助,我将使用Raspberry Pi提供以下程序的版本:
发布于 2018-04-21 10:42:46
一个带有proxy_pass的位置块只是不改变地通过路径,除非您rewrite它。
对于您的情况,在proxy_pass语句之后添加以下重写规则。
rewrite ^/mylocation/?(.*)$ /$1 break;
https://stackoverflow.com/questions/49941466
复制相似问题