通过 nginx 将 localhost web 服务重定向到 https

通过 nginx 将 localhost web 服务重定向到 https

我正在尝试通过安全 nginx 重定向 Web 服务fossil-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;
  }
}

答案1

您当前的配置正在映射https://test.example.com/fossil/a/b/c到上游/fossil/a/b/c。为了去掉前导,/fossil您需要添加尾随/。尝试:

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

这个文件了解详情。

相关内容