OCI环境下Nginx+Gunicorn配置咨询:公/私IP访问网站
正确配置方案(OCI云服务器通过公网IP访问网站)
一、Gunicorn配置(无需修改,验证合理性)
当前配置绑定私网IP是合理的,Gunicorn仅需对内提供服务,不需要直接暴露公网:
command = '/home/ubuntu/py_env/bin/gunicorn' pythonpath = '/home/ubuntu/blog' bind = '**PRIVATE IP**:8000' # 保持绑定私网IP即可,避免直接暴露应用 workers = 3
二、Nginx配置调整(关键修改)
Nginx需要监听公网可访问的端口,并允许通过公网IP访问,修改如下:
server { listen 80; # 监听所有网卡的80端口,替换原listen 0 server_name **PUBLIC IP**; # 替换为你的服务器公网IP,若需支持任意IP访问可改为 _ 或留空 location /static/ { root /home/ubuntu/; # root指向static目录的上级目录,确保请求/static/xxx时能找到/home/ubuntu/static/xxx,原路径正确可保留 expires 30d; # 可选:添加静态资源缓存优化 } location / { proxy_pass http://**PRIVATE IP**: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 $scheme; } }
三、必须的配套操作
- OCI安全组配置:在OCI控制台找到对应实例的安全组,添加入站规则,允许来自
0.0.0.0/0的TCP 80端口流量。 - 服务器防火墙放行:如果服务器启用了ufw,执行命令开放80端口:
sudo ufw allow 80/tcp sudo ufw reload - 重启服务生效:
sudo systemctl restart nginx sudo systemctl restart gunicorn # 假设Gunicorn用systemd管理,若用其他方式则对应重启
验证访问
完成以上配置后,直接在浏览器输入你的服务器公网IP即可访问网站。
内容的提问来源于stack exchange,提问作者Aleksander
相关产品推荐
相关产品推荐

