Nginx开启IPv6端口监听
一、场景:
在IPv6的改造过程中,使用Nginx进行IPv6反向代理IPv4的业务系统。
二、 NginX配置
# 定义一个服务器块,监听7777端口,并启用SSL(HTTPS)支持
server {
# 监听所有IPv4和IPv6的7777端口
listen 7777 ssl;
listen [::]:7777;
# 设置只能通过域名访问
server_name www.7777.com;
# 指定证书文件路径,用于加密连接
ssl_certificate /home/nginx-executable/key/7777__7777.com.pem;
# 指定私钥文件路径,与证书配合使用
ssl_certificate_key /home/nginx-executable/key/7777__7777.com.key;
# 配置SSL会话缓存大小为1MB
ssl_session_cache shared:SSL:1m;
# 设置SSL会话超时时间为10分钟
ssl_session_timeout 10m;
# 定义使用的SSL加密套件列表,这里是自定义的一组加密算法
ssl_ciphers ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP;
# 只允许使用TLSv1.2版本的协议
ssl_protocols TLSv1.2;
# 指定优先使用服务器指定的密码套件而非客户端提供的
ssl_prefer_server_ciphers on;
# (注释掉的rewrite规则将所有请求重定向到http://www.7777.com)
# rewrite ^/(.*) http://www.7777.com/$1 permanent;
# 主要处理location,所有非特定匹配的请求都将代理到后端服务器
location / {
# 设置反向代理到17.17.17.17主机的777端口
proxy_pass http://17.17.17.17:777/;
# 使用HTTP/1.1版本进行代理
proxy_http_version 1.1;
# 设置Upgrade头信息以支持Websocket等升级协议
proxy_set_header Upgrade $http_upgrade;
# 设置Connection头信息为upgrade,以保持长连接
proxy_set_header Connection "upgrade";
}
# 当访问资源不存在时显示404页面
error_page 404 /404.html;
# 对应状态码为40x的错误页指向静态文件40x.html
location = /40x.html { }
# 当出现500、502、503、504错误时显示50x页面
error_page 500 502 503 504 /50x.html;
# 对应状态码为50x的错误页指向静态文件50x.html
location = /50x.html { }
}