nginx 对于 https 和 http 总是以 http 方式结束

nginx 对于 https 和 http 总是以 http 方式结束

这是我第一次尝试设置 nginx 反向代理。我想要的是有一个在端口 44801 上运行 http 的 Subversion 服务器。

现在我想使用 nginx 监听 80 端口并转发,同时也监听 443,执行 ssl 终止,然后转发。

这是我的配置文件:

server {
        # Port 80 only on local network
        listen       80;
        server_name  freundx;

        location /svn {
                proxy_set_header Host $host;
                proxy_set_header X-Real-IP $remote_addr;
                proxy_pass   http://freundx:44801/svn;
        }
}


server {
        # ssl is local and external
        listen       443 ssl;
        server_name  freundx some.domain.com;

        ssl_certificate     /etc/niginx/ssl/mycert.crt;
        ssl_certificate_key /etc/niginx/ssl/mycert.key;
        ssl_protocols       TLSv1 TLSv1.1 TLSv1.2;
        ssl_ciphers         HIGH:!aNULL:!MD5;

        location /svn {
                proxy_set_header Host $host;
                proxy_set_header X-Real-IP $remote_addr;
                proxy_pass      http://freundx:44801/svn;
        }
}

例如,当我打开https://freundx/svn,发生以下情况:

  1. 浏览器(正确地)请求 https 上的凭证
  2. 浏览器第二次要求输入凭证,现在是 http
  3. 现在我在 http

肯定配置中缺少了某些东西。但是缺少什么呢?;-)

答案1

如果有人也遇到了这个问题,请提供信息。我是 nginx 新手,创建了几个配置文件,其中一些文件使用了相同的 serve_name。这不起作用,server_name 应该只使用一次。所以我现在每个子域都有一个配置。

相关内容