【发布时间】:2013-08-21 14:23:05
【问题描述】:
我需要使用 Nginx 作为 SSL 代理,根据子域将流量转发到不同的后端。
我似乎到处都应该定义多个“服务器{”部分,但这不适用于 SSL。这样做我将始终在第一个虚拟主机中处理 SSL,因为在您处理 https 流量之前,服务器名称是未知的。
场景:
- 一个 IP 地址
- 一个 SSL 通配符通配符
-
需要访问的多个后端,如下所示:
https://one.mysite.com/ -> http://localhost:8080 https://two.mysite.com/ -> http://localhost:8090
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;
}
}
有没有人用 Nginx 做到这一点?任何帮助/替代方案,链接,将不胜感激。
【问题讨论】:
标签: ssl https nginx proxy wildcard-subdomain