📜  nginx:[警告]“ssl”指令已弃用,使用“listen ... ssl”指令 i (1)

📅  最后修改于: 2023-12-03 15:17:52.577000             🧑  作者: Mango

NGINX: SSL指令已废弃,采用"listen ... ssl"指令

介绍

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 ... 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配置。