请教大家一个问题
局域网有台服务1.5,通过路由器端口映射到了公网访问,公网80被封了,用了86端口访问,现在域名解析公网地址后访问需要加端口号才能访问到1.5的网页,有没有办法在外网去掉端口号直接域名访问 ,nginx是应该部署在1.5的服务器上吗?
局域网有台服务1.5,通过路由器端口映射到了公网访问,公网80被封了,用了86端口访问,现在域名解析公网地址后访问需要加端口号才能访问到1.5的网页,有没有办法在外网去掉端口号直接域名访问 ,nginx是应该部署在1.5的服务器上吗?
上午好☀️☀️☀️️
本答案参考通义千问
你的问题是一个典型的 Nginx 反向代理配置 问题,目的是在外网访问时通过域名直接访问,无需添加端口号。以下是详细解决方案和步骤说明。
192.168.1.5),提供网页服务。:86 才能访问,希望去掉端口号。建议将 Nginx 部署在公网服务器上,而不是局域网的 1.5 服务器。
因为:
1.5:86)。以下是一个标准的 Nginx 配置文件示例,用于实现 外网通过域名访问,不带端口号:
server {
listen 80; # 或者 443(如果使用 HTTPS)
server_name yourdomain.com;
location / {
proxy_pass http://192.168.1.5:86; # 将请求转发到局域网内的服务
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;
}
}
注意:
- 请将
yourdomain.com替换为你的实际域名。- 如果使用 HTTPS,请配置 SSL 证书。
- 确保公网服务器的防火墙允许 80(或 443)端口访问。
ping yourdomain.com 检查域名是否解析到公网 IP。nslookup yourdomain.com 或在线工具验证 DNS 解析。执行以下命令使配置生效:
sudo nginx -t # 检查配置是否有语法错误
sudo systemctl restart nginx # 重启 Nginx
在浏览器中输入:
http://yourdomain.com
如果一切正常,你应该可以直接访问局域网中的服务,无需添加端口号。
| 步骤 | 内容 |
|------|------|
| 1 | 将 Nginx 部署在公网服务器上,而不是局域网的 1.5 服务器。 |
| 2 | 编写 Nginx 配置文件,监听 80 端口,将请求反向代理到 192.168.1.5:86。 |
| 3 | 确保域名正确解析到公网 IP。 |
| 4 | 重启 Nginx 服务并测试访问。 |
如有更多关于 Nginx 配置、HTTPS 设置或防火墙规则的问题,欢迎继续提问!