📅  最后修改于: 2023-12-03 15:17:52.577000             🧑  作者: Mango
NGINX是一个非常流行的Web服务器软件,常用于反向代理、负载均衡等。同时,它也支持SSL加密协议,提供安全的HTTP通信。
在早些版本的NGINX中,我们可以使用"ssl"指令来配置SSL相关设置。然而,从现在起,"ssl"指令已经被官方废弃,改用更为简洁的"listen ... ssl"指令。
"ssl"指令为NGINX提供了大量的可配置选项,但同时也增加了配置文件的复杂度和维护难度。例如,要启用HTTPS通信,需要配置类似以下的内容:
server {
listen 443 ssl;
server_name example.com;
ssl_certificate /path/to/cert;
ssl_certificate_key /path/to/key;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 10m;
location / {
proxy_pass http://backend;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}
这里,我们使用了"ssl"指令来在443端口上启用SSL,并且配置了证书、加密协议、缓存等相关设置。
但是,从维护和易用性角度来看,这样的配置并不是最优的。因此,NGINX团队在近期的版本中废弃了"ssl"指令,改用更简洁的"listen ... ssl"指令,让配置文件更加清晰、易于维护。
"listen ... ssl"指令的语法如下:
listen [address]:port [parameters] ssl [parameters];
其中,address为服务器IP地址,可以省略;port为端口号,必须指定;parameters为可选参数。
例如,使用"listen ... ssl"指令来配置HTTPS服务器可以这样做:
server {
listen 443 ssl;
server_name example.com;
ssl_certificate /path/to/cert;
ssl_certificate_key /path/to/key;
location / {
proxy_pass http://backend;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}
可以看到,与"ssl"指令相比,我们只需要在"listen"指令后增加"ssl"关键字即可。其他的SSL相关设置,都可以直接在"server"块中进行配置。
"ssl"指令从NGINX中删除之后,我们需要使用更简洁的"listen ... ssl"指令来配置HTTPS服务器。这样可以让配置文件更加清晰、易于维护。如果你正在使用旧版本的NGINX,请尽快升级到最新版本,并使用"listen ... ssl"指令来进行SSL配置。