如果位置不是pypiserver的“/”,则Nginx反向代理会失败

时间:2018-04-20 12:16:13

标签: python nginx nginx-location nginx-reverse-proxy pypiserver

我正在尝试使用pypiserver运行自定义PyPI服务器。

我尝试修改自述文件中的示例 <com.smok.maps.fab.FloatingActionButton android:id="@+id/list" android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/ikona2" android:tint="@color/green" app:layout_anchor="@id/mapview" app:layout_anchorGravity="bottom|left|end" /> 文件,以便使用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_passmypi.com/mylocation相同”。我弄错了吗?或者问题与mypi.com:8080/本身有关吗?

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

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

1 个答案:

答案 0 :(得分:0)

proxy_pass的位置区块只是通过路径不变,除非你rewrite

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

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