小编Ang*_*ira的帖子

使用https时基于主机的nginx代理

我需要使用Nginx作为SSL代理,它根据子域将流量转发到不同的后端.

我似乎无处不在,我应该定义多个"服务器{"部分,但这对SSL不起作用.这样做我将始终在第一个虚拟主机中处理SSL,因为在处理https流量之前,服务器名称是未知的.

场景:

  • 一个IP地址
  • 一个SSL通配符通配符
  • 需要访问的多个后端如下所示:

    https://one.mysite.com/ -> http://localhost:8080
    https://two.mysite.com/ -> http://localhost:8090
    
    Run Code Online (Sandbox Code Playgroud)

Nginx说"如果"是邪恶的:http://wiki.nginx.org/IfIsEvil,但我还能做些什么?

我试过这个,但它不起作用,我得到500错误但错误日志中没有任何内容.

    server {
    listen 443;
    server_name *.mysite.com;

    ssl on;
    ssl_certificate ssl/mysite.com.crt;
    ssl_certificate_key ssl/mysite.com.key;

    location / {
        if ($server_name ~ "one.mysite.com") {
            proxy_pass http://localhost:8080;
        }
        if ($server_name ~ "two.mysite.com") {
            proxy_pass http://localhost:8090;
        }
    }
Run Code Online (Sandbox Code Playgroud)

有没有人设法用Nginx完成这个任务?任何帮助/替代方案,链接,将不胜感激.

ssl https proxy wildcard-subdomain nginx

16
推荐指数
1
解决办法
2万
查看次数

标签 统计

https ×1

nginx ×1

proxy ×1

ssl ×1

wildcard-subdomain ×1