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

如何为Minikube服务配置Nginx反向代理以实现局域网访问

问题:配置Nginx反向代理实现局域网访问Minikube服务

我在IP为10.128.135.6的服务器上运行Minikube服务,服务地址是http://192.168.49.2:31746。在服务器本地用curl http://192.168.49.2:31746能正常访问,但局域网内其他设备无法访问。我尝试用Docker部署Nginx做反向代理但未成功,需求是:局域网设备访问http://10.128.135.6:8765/hub/login时,请求能转发到http://192.168.49.2:31746/hub/login。

已尝试的部署步骤

  1. 编写Dockerfile:
FROM nginx:latest
COPY nginx.conf /etc/nginx/conf.d/default.conf
EXPOSE 8765
  1. 创建nginx.conf配置文件:
server {
    listen 8765;
    server_name 10.128.135.6;
    location / {
        proxy_pass http://192.168.49.2:31746;
    }
}
  1. 构建镜像命令:
docker build -t my-nginx .
  1. 运行容器命令:
docker run -p 8765:8765 -d my-nginx

问题排查与修正方案

1. 解决容器网络连通问题

Docker默认bridge网络可能无法直接访问Minikube内部IP192.168.49.2,先验证容器内能否访问服务:

# 进入nginx容器
docker exec -it <容器ID> bash
# 在容器内测试连通性
curl http://192.168.49.2:31746/hub/login

如果无法访问,改用host模式运行容器(直接使用宿主机网络):

# 停止并删除现有容器
docker stop <容器ID> && docker rm <容器ID>
# 用host模式启动容器
docker run --network host -d my-nginx

注意:host模式不需要端口映射,容器的8765端口直接绑定宿主机端口

2. 优化Nginx代理配置

补充必要的代理头,避免服务端识别异常,修改nginx.conf:

server {
    listen 8765;
    server_name 10.128.135.6;

    location / {
        proxy_pass http://192.168.49.2:31746;
        # 传递客户端真实信息
        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;
    }
}

修改后重新构建镜像并启动容器。

3. 开放服务器端口

确保服务器的8765端口允许局域网访问:

  • 若使用ufw防火墙:
sudo ufw allow 8765/tcp
sudo ufw reload
  • 若使用firewalld防火墙:
sudo firewall-cmd --add-port=8765/tcp --permanent
sudo firewall-cmd --reload

4. 验证访问

在局域网其他设备上访问http://10.128.135.6:8765/hub/login,确认请求是否正常转发。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 03:13:16