hosts 文件 + Nginx 反向代理 = 实现浏览器输入域名自动跳转到指定服务的完整方案

我们来一步步解释这个组合是如何工作的:


🌐 整体流程图(从浏览器到最终服务)

浏览器输入:http://git.tianji.com
        ↓
   DNS 解析 → 查 hosts 文件 → 返回 192.168.150.101
        ↓
    请求发送到 192.168.150.101:80
        ↓
Nginx 接收请求,根据 server_name 匹配规则
        ↓
    转发给 localhost:10880(即 GitLab)
        ↓
    响应返回给浏览器

🔧 你的 hosts 文件作用

192.168.150.101 git.tianji.com
192.168.150.101 jenkins.tianji.com
...
  • 这个文件告诉操作系统:

    “当你访问 git.tianji.comjenkins.tianji.com 时,请直接解析为 IP 地址 192.168.150.101,而不要去公网 DNS 查询。”

  • 相当于你在本地“劫持”了这些域名的解析结果

  • 💡 通常用于开发环境、内网测试或避免部署 DNS 服务器

⚠️ 注意:hosts 文件只在当前机器生效。如果多台电脑要访问,每台都得配置。


🛠️ Nginx 配置的作用

server {
    listen       80;
    server_name  git.tianji.com;
    location / {
        proxy_pass http://localhost:10880;
    }
}
  • Nginx 监听 80 端口,接收所有来自 git.tianji.com 的请求
  • 它不会直接响应,而是把请求 反向代理 到本机的 10880 端口(比如 GitLab)
  • 最终用户看到的是 http://git.tianji.com,但实际数据是从 10880 获取的

✅ 两者配合的效果

用户操作 实际发生
在浏览器输入 http://git.tianji.com → 操作系统查 hosts → 解析成 192.168.150.101
浏览器向 192.168.150.101:80 发送请求 → Nginx 收到后匹配 server_name
Nginx 将请求转发给 localhost:10880 → 后端服务处理并返回内容
Nginx 把响应返回给浏览器 → 用户看到 GitLab 页面

👉 所以:你可以在浏览器中输入一个“看起来像真实域名”的地址,实际上它被代理到了内部服务上。


📌 使用场景总结

场景 是否适用
开发环境调试多个服务 ✅ 非常适合
内网系统暴露给团队使用 ✅ 推荐做法
没有公网 DNS 或云解析 ✅ 必须用 hosts + Nginx
多人协作开发 ❌ 单独 hosts 不行,需配合内网 DNS 或 nginx + 代理

💡 建议优化(进阶)

1. 加上 HTTPS 支持(推荐)
server {
    listen 443 ssl;
    server_name git.tianji.com;
    ssl_certificate /path/to/cert.pem;
    ssl_certificate_key /path/to/key.pem;
    location / {
        proxy_pass http://localhost:10880;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
    }
}

然后在 hosts 中添加:

192.168.150.101 git.tianji.com

访问 https://git.tianji.com 更安全。

2. 设置 HTTP 自动跳转 HTTPS
server {
    listen 80;
    server_name git.tianji.com;
    return 301 https://$host$request_uri;
}

这样即使用户输 http://,也会自动跳转到 https://


✅ 总结

是的,你现在的配置已经实现了“浏览器输入域名 → 自动代理转发到对应服务”的功能!

这是现代 Web 开发和运维中最常见的架构之一:

[浏览器] → [hosts 解析] → [Nginx 反向代理] → [后端服务]

只要确保:

  1. hosts 文件配置正确
  2. Nginx 配置正确且已重载
  3. 后端服务正常运行

就可以愉快地通过域名访问各种服务啦 😊

如果你需要我帮你生成完整的 Nginx 配置或证书配置,也可以继续问!

Logo

火山引擎开发者社区是火山引擎打造的AI技术生态平台,聚焦Agent与大模型开发,提供豆包系列模型(图像/视频/视觉)、智能分析与会话工具,并配套评测集、动手实验室及行业案例库。社区通过技术沙龙、挑战赛等活动促进开发者成长,新用户可领50万Tokens权益,助力构建智能应用。

更多推荐