nginx 并重定向到清漆

nginx and redirect to varnish

我的 nginx 配置如下:

server {
        listen *:443 ssl;
        server_name  ~^(.*\.)?domain.com$;

server {
        listen *:443 ssl;
        server_name  ~^(.*\.)?test.domain.com$;

问题是 domain.com 工作正常但测试。domain.com 不行。将其重定向到 domain.com

如果我只是这样做:

server_name www.domain.com$ domain.com$;

server_name 测试。domain.com$;

然后我总是遇到 SSL 问题

有什么解决办法吗?

只是猜测。将第一个服务器块与第二个服务器块交换。所以 test 没有被你的第一个服务器块吃掉。或者确保您的第一个服务器块不会像这样吃掉 testserver_name ~^(.*?[^t]?[^e]?[^s]?[^t]\.)?domain.com$;。或者像这样更好:server_name ~^(.*(?<!test)\.)?domain.com$;(负面回顾 - 由 Nginx 支持???) 完全未经测试 - 但也许你明白了。

确保您 - 在您的正则表达式中 - 使用反斜杠 \. 或方括号 [.] 转义所有点 . 以使它们真正成为点字符。否则你也服务于 test-domain-com,例如你不想要的。

如果您不将其标记为正则表达式 ~,我不确定是否可以在 server_name 中使用正则表达式美元 $