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

Nginx配置:阻止[IPaddress:8080]访问,仅允许域名访问应用

解决方法

方案一:修改应用监听地址(最彻底)

直接让你的应用仅监听本地回环地址127.0.0.1:8080,而非0.0.0.0:8080。这样外部请求无法通过公网IP:8080直接访问应用,只能走Nginx代理的域名路径。

不同应用修改方式举例:

  • Java应用:启动参数添加--server.address=127.0.0.1 --server.port=8080
  • Node.js应用:监听代码改为app.listen(8080, '127.0.0.1')
  • Python Flask应用:启动时使用app.run(host='127.0.0.1', port=8080)

方案二:通过Nginx拦截IP访问(适配无法修改应用配置的场景)

如果无法调整应用监听地址,可新增Nginx配置拦截8080端口的非域名请求:

# 保留原有80端口代理配置
server {
    listen 80;
    server_name desh.onecloudhelper.com;

    location / {
        proxy_pass http://localhost:8080;
        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;
    }
}

# 新增8080端口拦截规则
server {
    listen 8080;
    server_name _; # 匹配所有Host请求

    # 默认拦截所有请求,返回403禁止访问
    location / {
        return 403;
    }

    # 仅允许指定域名的请求正常代理
    if ($host = desh.onecloudhelper.com) {
        proxy_pass http://localhost:8080;
        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;
    }
}

配置完成后,执行命令重启Nginx生效:

nginx -s reload

注意:需确保Nginx有权限监听8080端口,且服务器防火墙开放8080端口给合法请求。

内容的提问来源于stack exchange,提问作者Desh Deepak Dhobi

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.26 13:20:12