通过nginx将本地主机web服务redirect到https

我试图通过安全的nginxredirectWeb服务化石scm。 但是我不知道什么是正确的设置以及如何检查错误日志。

我希望通过这个设置我可以使用

https://test.example.com/fossil/a/b/c 

代替

 http://test.example.com:8888/a/b/c 

错误消息显示“找不到页面”。

这是我的nginx设置文件。

 upstream fossil_server { server localhost:8888 fail_timeout=0 } server { listen 80; server_name test.example.com; return 301 https://$server_name$request_uri; } server { listen 443 default ssl; server_name test.example.com; ssl_certificate /etc/ssl/server.crt; ssl_certificate_key /etc/ssl/server.key; ssl_session_cache builtin:1000 shared:SSL:10m; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_ciphers 'AES128+EECDH:AES128+EDH:!aNULL'; ssl_prefer_server_ciphers on; ssl_session_cache shared:SSL:10m; add_header Strict-Transport-Security max-age=63072000; add_header X-Frame-Options DENY; add_header X-Content-Type-Options nosniff; location / { ... } location ^~ /fossil/ { proxy_pass http://fossil_server; } } 

您当前的configuration将https://test.example.com/fossil/a/b/c映射到上游/fossil/a/b/c 。 为了剥离领先/fossil你需要添加尾随/ 。 尝试:

 location ^~ /fossil/ { proxy_pass http://fossil_server/; } 

详情请参阅此文件 。