0

我正在尝试使用pypiserver运行自定义 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:

  • nginx:1.12.2
  • pypiserver:1.2.1
  • 蟒蛇:3.6.5
4

1 回答 1

1

除非您这样做,否则位置块proxy_pass只会通过路径不变rewrite

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

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

于 2018-04-21T10:42:46.040 回答