有没有办法在两个 nginxserver {}
块之间共享配置指令?我想避免重复规则,因为我网站的 HTTPS 和 HTTP 内容使用完全相同的配置提供。
目前,它是这样的:
server {
listen 80;
...
}
server {
listen 443;
ssl on; # etc.
...
}
我可以按照以下方式做一些事情:
server {
listen 80, 443;
...
if(port == 443) {
ssl on; #etc
}
}
您可以将其组合成一个服务器块,如下所示:
官方方法
为了澄清接受的答案,您需要省略
对于 0.8.21 之后的 nginx 版本,您只需要以下内容
参考:
Nginx Docs - 配置单个 HTTP/HTTPS 服务器
我不知道像您建议的方式,但肯定有一种简单且可维护的方式。
将公共服务器设置移动到一个单独的文件中,即“serverFoo.conf”,然后
include
将它放在单独的server {}
块中,如下所示:扩展已经有用的答案,这是一个更完整的示例:
只是添加到 Igor/Jauder 的帖子中,如果您正在收听特定 IP,您可以使用: