有没有办法在两个 nginxserver {}
块之间共享配置指令?我想避免重复规则,因为我的站点的 HTTPS 和 HTTP 内容使用完全相同的配置。
目前是这样的:
server {
listen 80;
...
}
server {
listen 443;
ssl on; # etc.
...
}
我可以做类似的事情吗:
server {
listen 80, 443;
...
if(port == 443) {
ssl on; #etc
}
}
答案1
答案2
为了澄清接受的答案,你需要省略
SSL on;
对于 0.8.21 之后的 nginx 版本,你只需要以下内容
listen 443 ssl;
参考:
答案3
我不知道您所建议的方法,但肯定有一种简单且可维护的方法。
将常见的服务器设置移到单独的文件中,即“serverFoo.conf”,然后将include
其放在单独的server {}
块中,如下所示:
server {
listen 80;
include serverFoo.conf;
}
server {
listen 443 ssl;
include serverFoo.conf;
}
答案4
只需补充一下 Igor/Jauder 的帖子,如果您正在监听特定的 IP,您可以使用:
listen xxx.xxx.xxx.xxx;
listen xxx.xxx.xxx.xxx:443 default ssl;