我在EBS上运行了一个节点应用程序,我想强制执行https。我使用以下命令重写了nginx配置文件
server_name www.mydomain.com;
if ($http_x_forwarded_proto != "https") {
rewrite ^(.*)$ https://$server_name$REQUEST_URI permanent;
}
这很好但我有一个dev.mydomain.com的独立开发域,我希望通过http而不是https连接到它。
是否有一个nginx前缀变量可以访问... ...
server_name www.mydomain.com;
if ($http_x_forwarded_proto != "https" && $uri_prefix == 'www') {
rewrite ^(.*)$ https://$server_name$REQUEST_URI permanent;
}
答案 0 :(得分:0)
Nginx不允许多个或嵌套的if语句
你可以试试这个配置,但......它不是那么优雅 `
if ($http_x_forwarded_proto != "https") {
set $myvar http;
}
if ($host ~ ^www) {
set $myvar "${myvar}www";
}
if ($myvar = 'httpwww') {
rewrite ^(.*)$ https://$server_name$REQUEST_URI permanent;
}
`