内容 / 指南 / Nginx + SSL

Nginx 反向代理服务器 自动 HTTPS

万事前的一款Nginx:你的节点应用,一款API,一款仪表板,一款游戏面板. 添加自我更新的免费Let's Encrypt证书,并连接无痛的WebSockets.

1. 首先是DNS

创建记录 : app.example.com → YOUR_SERVER_IP。等待几分钟,从服务器检查:

getent hosts app.example.com

certbot 在您服务器的DNS指向前不会签发证书 。

2. 安装 Nginx并打开防火墙

apt update && apt install -y nginx certbot python3-certbot-nginx
ufw allow 80/tcp
ufw allow 443/tcp

3. 反向代理配置

cat > /etc/nginx/sites-available/app <<'EOF'
server {
    listen 80;
    server_name app.example.com;

    location / {
        proxy_pass http://127.0.0.1:3000;
        proxy_http_version 1.1;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
        proxy_read_timeout 300s;
    }
}
EOF
ln -s /etc/nginx/sites-available/app /etc/nginx/sites-enabled/app
rm -f /etc/nginx/sites-enabled/default
nginx -t && systemctl reload nginx

两者 Upgrade 线条可以启用 WebSockets; 长读超时让慢接(SSE,长投票,游戏面板)在60秒后不被剪接. 替换 127.0.0.1:3000 随你的应用端口听。

4. 一个指令中的HTTPS

certbot --nginx -d app.example.com --redirect -m [email protected] --agree-tos

certbot编辑配置,添加了443块,安装了更新定时器并设置了HTTP → HTTPS重定向. 校验更新工程 :

certbot renew --dry-run
systemctl list-timers | grep certbot

5. 增加服务

港口3001的又一个应用软件? 复制服务器块, 更改 server_name 和 proxy_pass再来一次 一个Nginx可以持有几十个站点——一个6.5欧元的服务器可以轻松地处理.

更不要脸? Caddy 使用两行 HTTPS ——Nginx在需要精细控制头部,缓存和超时时获胜.

6. 当某事破裂时

nginx -t
tail -f /var/log/nginx/error.log
curl -I https://app.example.com

502表示Nginx是好的,但你的应用是下或错误的端口. 404页错误意味着另一个站点块正在抓取请求——检查 server_name.

快速回答

我需要HTTPS专用IP吗?

对于标准浏览器访问——是的,你需要一个带有专用IPv4的计划,因为Let's Encrypt在端口80或443验证了你的域. NAT计划有转发端口为bots,地道和VPN工作,不为公共网站工作.

Let's Encrypt证书真的免费吗?

是的,它们每60天通过系统计时器的 Certbot 安装自动更新一次。 正常场地不需要付费。

Nginx 代理服务器可以使用 Minecraft 还是游戏服务器?

不是UDP交通——Nginx只说HTTP. 游戏使用自己的端口,直接在防火墙上打开.

获取带有专用 IPv4 的服务器 - 计划始于€6.5/月.

相关