Nginx代理_传递到https

4ktjp1zp  于 2023-03-29  发布在  Nginx
关注(0)|答案(3)|浏览(191)

我们有:Ubuntu 16.04
nginx1.10.3
我是新的nginx和需要帮助代理_传递到https.
例如,我们在互联网上有客户端,他们称之为URL。

https://testapp.mobios.example.com

我想通过这个流量到我的服务器与ip地址192.168.0.10.在这个服务器上我有ssl启用监听端口9443.
我们想使用nginx作为reverse_proxy。我的nginx配置如下。

server {  
  listen 443;
  servername testapp.mobios.example.com;

  location / {
    proxy_pass https://192.168.0.10:9443;
}
}

如果客户端尝试用https://testapp.mobios.example.com连接ssl服务器,他们什么也得不到。
我需要的只是将https传递给https。SNI在这里有问题吗?
有什么想法吗?请帮助ayyoladi

70gysomp

70gysomp1#

server {
    listen 80;
    server_name website.domain.com;
    return 301 https://$server_name$request_uri;
}

server {
        listen 443 ssl;
        listen [::]:443 ssl;
        server_name website.domain.com;

       #Size archive        client_max_body_size 50M;

        ssl_certificate          /etc/letsencrypt/live/mydomain/fullchain.pem;
        ssl_certificate_key      /etc/letsencrypt/live/mydomain/privkey.pem;
        ssl_trusted_certificate  /etc/letsencrypt/live/mydomain/chain.pem;

       location / {
               proxy_set_header   X-Forwarded-For $remote_addr;
               proxy_set_header   Host $http_host;
   1   ===>    proxy_pass         https://website5.domain.ru;
[ OR ]
   2   ===>    proxy_pass         http://192.65.87.4:8020;
       }

}
5vf7fwbs

5vf7fwbs2#

不完全相同,但类似的问题把我带到了这里。
HTTPS负载均衡:

Client <- HTTPS -> (decrypt) Load balancer (encrypt) <- HTTPS -> Server

总的来说,thisisayush answer(http://reinout.vanrees.org/weblog/2017/05/02/https-behind-proxy.html)非常好,它部分解决了我的问题,但添加负载平衡使它更难谷歌。
当你创建上游列表时,你必须记住添加一个443端口。
不工作:

upstream myapp2 {
  server 10.0.1.1;
}

工作:

upstream myapp2 {
  server 10.0.1.1:443;
}

即使你在locationhttps协议中使用(我希望默认指向443):

location / {
  proxy_pass https://myapp2;
}

完整示例:

http {
  upstream myapp2 {
    server 10.0.1.1:443;
  }

  server {
    listen 443;

    ssl_certificate     /etc/nginx/cert.crt;
    ssl_certificate_key /etc/nginx/cert.key;

    ssl on;

    location / {
      proxy_pass https://myapp2;
    }
  }
}

答案是基于我最终在thisisayush评论的帮助下找到的文档:
https://docs.nginx.com/nginx/admin-guide/security-controls/securing-http-traffic-upstream/#complete-example

iezvtpos

iezvtpos3#

我曾经为我的客户做过一次。你所做的是在Nginx中启用并安装SSL,而不是在被代理的服务器上。

相关问题