You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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;
    }
}

三、必须的配套操作

  1. OCI安全组配置:在OCI控制台找到对应实例的安全组,添加入站规则,允许来自0.0.0.0/0的TCP 80端口流量。
  2. 服务器防火墙放行:如果服务器启用了ufw,执行命令开放80端口:
    sudo ufw allow 80/tcp
    sudo ufw reload
    
  3. 重启服务生效:
    sudo systemctl restart nginx
    sudo systemctl restart gunicorn  # 假设Gunicorn用systemd管理,若用其他方式则对应重启
    

验证访问

完成以上配置后,直接在浏览器输入你的服务器公网IP即可访问网站。

内容的提问来源于stack exchange,提问作者Aleksander

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.11 11:26:16