4

我在这个网站和类似的网站上找到了几个部分答案,但我不知道如何把它们放在一起,或者答案就在那里,我无法识别它:-/

我想要达到的目标:

我有一个在 LAN 中运行的 http 服务(我已经适当地设置了 dnsmasq):

http://subdomain1.domain.com:1234/

我想将其公开为互联网(外部 DNS 也可以正常工作):

https://subdomain2.domain.com:443/

由 nginx 处理用户身份验证。

我还想(必须?)保持浏览器中可见的 URL 不变。

我已经尝试了几种从类似问题中发现的组合,但我似乎无法理解。

这是我最后一次尝试:

ssl_certificate /var/www/domain.com/domain_com.crt;
ssl_certificate_key /var/www/domain.com/domain_com.key;

server {
        listen   443 default_server;
        server_name subdomain1.domain.com;

        location / {
                auth_basic "Restricted";
                auth_basic_user_file /var/www/domain.com/domain.com.passwords;

                proxy_pass              http://subdomain1.domain.com:1234/;
                proxy_set_header        Host    $http_host;
                # proxy_set_header        X-Real-IP       $remote_addr;
                # proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
                proxy_redirect          https://subdomain2.domain.com/       http://subdomain1.domain.me:1234/;
        }
}

我得到的是:“错误 107(net::ERR_SSL_PROTOCOL_ERROR):SSL 协议错误。”


更新:

我想我找到了解决方案,但仍将不胜感激。这一个还重写了http访问以通过https。

ssl_certificate /var/www/domain.com/domain_com.crt;
ssl_certificate_key /var/www/domain.com/domain_com.key;

server {
        listen   80;
        server_name subdomain1.domain.com;
        rewrite ^ https://$server_name$request_uri? permanent;
}

server {
        listen   443;
        ssl on;
        server_name subdomain1.domain.com;

        location / {
                auth_basic "Restricted";
                auth_basic_user_file /var/www/domain.com/domain.com.passwords;

                proxy_pass              http://subdomain2.domain.com:1234/;
                proxy_set_header        Host    $host;
                proxy_set_header        X-Real-IP       $remote_addr;
                proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
                proxy_set_header        X-Forwarded-Proto       $scheme;
                add_header              Front-End-Https         on;
                proxy_redirect          off;
        }
}
4

0 回答 0