本项目详细介绍了如何在亚马逊弹性计算云(Amazon EC2)实例上,使用Nginx配置一个基于HTTPS的安全反向代理服务器。通过这种方式,前端客户能够通过安全的HTTPS协议访问后端服务,提升数据传输的安全性。
以下是配置HTTPS反向代理服务器的整体步骤:
sudo apt-get install nginx
sudo nginx -t
sudo systemctl reload nginx
使用curl命令获取实例的公开DNS名称:
TOKEN=$(curl -X PUT "http://169.254.169.254/latest/api/token" -H "X-aws-ec2-metadata-token-ttl-seconds: 21600") && curl -H "X-aws-ec2-metadata-token: $TOKEN" -s http://169.254.169.254/latest/meta-data/public-hostname
sudo nano /etc/nginx/conf.d/ec2.conf
server {
listen 80;
server_name YOUR_EC2_HOSTNAME;
# 重定向HTTP到HTTPS
return 301 https://$host$request_uri;
}
server {
listen 443 ssl;
server_name YOUR_EC2_HOSTNAME;
# SSL证书和密钥路径
ssl_certificate /etc/ssl/certs/cert.pem;
ssl_certificate_key /etc/ssl/privatekey/privkey.pem;
# 设置SSL协议和加密套件
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers HIGH:!aNULL:!MD5;
location / {
# 反向代理到本地服务(例如,端口8000)
proxy_pass http://127.0.0.1:8000;
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 https;
}
}
sudo nginx -t
sudo systemctl reload nginx
sudo systemctl status nginx
python mcp_sse_client.py --url https://YOUR_EC2_HOSTNAME:443
export MCP_SERVER_URL=https://YOUR_EC2_HOSTNAME:443
sudo apt-get install nginx,该命令会从软件源下载并安装Nginx。sudo nginx -t验证Nginx配置是否正确,若输出显示配置无误,则可进行下一步。sudo systemctl reload nginx重新加载Nginx配置,使更改生效。使用curl命令获取实例的公开DNS名称,该名称用于后续配置中的server_name。
sudo nano /etc/nginx/conf.d/ec2.conf创建新的Nginx配置文件。sudo nginx -t测试Nginx配置是否正确。sudo systemctl reload nginx重新加载Nginx以应用更改。sudo systemctl status nginx确保Nginx服务正在运行。mcp_sse_client.py连接反向代理服务器,指定--url参数为新的HTTPS URL。export MCP_SERVER_URL设置服务器URL。本项目使用Nginx作为反向代理服务器,通过配置SSL证书和密钥,实现HTTPS协议的安全传输。Nginx的反向代理功能将前端请求转发到本地8000端口的服务,从而实现前后端的分离。同时,通过定期更新SSL证书和监控Nginx服务状态,保障系统的安全性和稳定性。
⚠️ 重要提示
- 确保SSL证书和密钥路径正确无误,否则会导致HTTPS连接失败。
- 定期更新SSL证书以保障安全性,避免证书过期影响服务。
- 监控Nginx服务状态,确保其正常运行,可通过
sudo systemctl status nginx查看服务状态。
通过以上步骤,您可以在EC2实例上成功配置一个安全的HTTPS反向代理服务器。