完整脚本如下:
server {
listen 443 ssl;
#ssl证书加载位置,后缀为pem.key,crt等
ssl_certificate /etc/nginx/ssl/awsp.aizhs.top.pem;
ssl_certificate_key /etc/nginx/ssl/awsp.aizhs.top.key;
#ssl配置优化:
ssl_session_timeout 1d;#session过期时间
ssl_session_cache shared:MozSSL:10m; # 缓存大小可以根据需求调整
ssl_session_tickets off;
server_name awsp.aizhs.top;
location / {
proxy_pass http://127.0.0.1:3001;#尽量用127.0.0.1代替localhost配置
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;
}
}
1.安装Nginx
sudo apt update
sudo apt install nginx
2.配置 Nginx
编辑 Nginx 的配置文件,通常位于 /etc/nginx/nginx.conf 或 /etc/nginx/sites-available/ 目录下的某个文件中。
你可以创建一个新的配置文件,例如 /etc/nginx/sites-available/your-domain.conf ,并添加以下内容:
server {
listen 80; # 监听 HTTP 端口
server_name your-domain.com; # 替换为你的域名
location / {
proxy_pass http://localhost:8080; # 替换为你的 Docker 容器服务地址和端口
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;
}
}
解释
• listen 80; :Nginx 监听 HTTP 的默认端口 80。
• server_name your-domain.com; :指定你的域名。
• proxy_pass http://localhost:8080; :将请求转发到运行在 Docker 容器中的服务。
• proxy_set_header :确保将正确的请求头传递给后端服务,例如客户端的真实 IP 地址。
3.启用配置并重启 Nginx
将配置文件链接到 sites-enabled 目录以启用它
sudo ln -s /etc/nginx/sites-available/your-domain.conf /etc/nginx/sites-enabled/
检查 Nginx 配置是否正确:
sudo nginx -t
sudo systemctl restart nginx
配置域名解析
确保你的域名 your-domain.com 指向服务器的公网 IP 地址。
你可以在域名注册商的管理面板中设置 DNS 记录,例如:
• 类型:A
• 主机: @ 或 www
• 值:服务器的公网 IP 地址
配置 HTTPS
如果你希望使用 HTTPS,可以使用 Let's Encrypt 提供的免费证书。安装 Certbot 并获取证书:
sudo apt install certbot python3-certbot-nginx
sudo certbot --nginx -d your-domain.com
Certbot 会自动更新你的 Nginx 配置以启用 HTTPS,并将证书安装到正确的位置。