【发布时间】:2014-10-01 16:30:52
【问题描述】:
我在两个端口上运行 nginx,一个用于 HTTPS,另一个用于 HTTP,但在所有其他方面都相同(即location 指令等)。我想避免两次编写相同的规则。
有没有办法在 nginx 配置文件中将我的规则写入某种块中,然后将它们包含在我的 server 指令中?
【问题讨论】:
标签: nginx
我在两个端口上运行 nginx,一个用于 HTTPS,另一个用于 HTTP,但在所有其他方面都相同(即location 指令等)。我想避免两次编写相同的规则。
有没有办法在 nginx 配置文件中将我的规则写入某种块中,然后将它们包含在我的 server 指令中?
【问题讨论】:
标签: nginx
是的,您可以在配置中包含额外的文件,请参阅docs 和下面的示例:
server {
listen 80;
include location_directives.conf
}
server {
ssl on;
listen 443 default spdy ssl;
include location_directives.conf
}
附:顺便说一句,最好使用 return 301 从 http 重定向到 https,而不是为两个服务器块定义规则
server {
listen 80;
return 301 https://$host$request_uri;
}
【讨论】: