别再用 localhost:3000 了,改用你自己的域名Don't use localhost:3000, use your own custom domain
作者分享经验:演示内部工具时不应依赖 localhost 或 staging 服务器,而应直接绑定自定义域名(如 www.internaltool.com),确保所有设备都能无缝访问。这种做法避免了端口冲突、防火墙限制和网络配置问题,提升演示的专业性和可用性。
Ibrahim Diallo
在演示了一个内部工具的工作原理后,我收到了大量问题。他们不是问工具本身,而是问我为什么要专门买一个域名来运行这个演示。“你为什么不直接用 staging 服务器?”他们问道。
我感到困惑。我并没有买域名,我只是在本地运行它。
但访问的 URL 并不是 localhost:3002,而是一个完整的域名:www.internaltool.com。事实上,有些人告诉我,他们在自己的设备上无法访问这个网站,以为我需要将他们的 IP 加入白名单才能让他们访问。这让我感觉自己又年轻了一回……
在我刚开始做网页开发的时候,在本地设置自定义域名是很常见的做法。但随着 Node.js(还有 Rails?)的出现,大家开始习惯直接指向 localhost,并用递增的端口号来区分。主要原因是 Web 服务器通常已经打包在应用里了。只要运行 npm start 就能搞定一切。
然而,如果你同时在本地运行多个长期项目,尤其是这些项目需要互相通信时,管理像 3000、8080、5173 这样的端口号很快就会让人头大。这也是我这种老派方法的优势所在。
通过结合系统的 hosts 文件和 Nginx 反向代理,你可以用真实的域名在本地运行不同的项目。我通常会设置 dev.domain.com 用于日常开发,qa.domain.com 用于稳定的本地构建版本,以及实际的线上环境 URL。
下面是如何配置的方法。
第一步:修改 Hosts 文件
首先,我们需要告诉你的电脑这些域名应该指向哪里。
可以把 /etc/hosts 想象成你电脑的私人通讯录。当你输入一个网址时,电脑会先来这里查找。通过添加一条记录,你就告诉电脑:“当我访问 myproject.com 时,别去互联网上查,其实是在指这台机器。”这样就创建了一个手动覆盖规则,直接将友好的名称映射到你的机器 IP 地址。
你可以在这里编辑这个文件:
Linux/macOS: /etc/hosts Windows: C:\Windows\System32\Drivers\etc\hosts
用编辑器打开这个文件。在这个文件中,就在 Adobe 相关条目的后面(比如 active.adobe.com...),添加这样一行:
127.0.0.1 myproject.com
127.0.0.1 dev.myproject.com现在,当你在浏览器中访问这些域名时,它们就不会指向广域网,而是直接指向你自己的机器。
第二步:Nginx 配置
既然域名已经指向了你的机器,我们接下来要把它重定向到正确的应用程序。如果你的应用运行在 3000 端口,那么访问 myproject.com 默认会尝试连接 80 端口,结果就会失败。这时就需要 Nginx 发挥作用了——它会监听 80 端口,并将流量转发到你应用实际运行的端口上。
这是一个简化的 Nginx 配置文件示例:
server {
listen 80;
server_name myproject.com;
location / {
proxy_pass http://localhost:3000;
proxy_set_header Host $host;
}
}
server {
listen 80;
server_name dev.myproject.com;
location / {
proxy_pass http://localhost:3001;
proxy_set_header Host $host;
}
}重启 Nginx,搞定!你现在就有了干净、专业的本地环境 URL。
WSL2 用户的注意事项
如果你是在 Windows Subsystem for Linux (WSL2) 中运行服务,网络处理方式会有所不同,因为 Linux 实例有自己的虚拟 IP。你可以用以下命令获取实例的 IP 地址:
wsl hostname -I
# Output: 172.x.x.x然后在 Windows 的 hosts 文件中使用这个 IP 地址,而不是 127.0.0.1。
总结
那次演示之后,有些人得知 /etc/hosts 的小技巧后感到失望。他们以为我如此执着,甚至专门买了域名来给我的演示“打补丁”,显得不够专业。还有人开玩笑说该给我印件T恤,上面写着“真正的程序员不用 localhost:3000”。这或许能开启我的新职业——励志演讲家。自定义域名看起来确实更专业,也便于区分不同环境。整天盯着 localhost:3000 确实有点土,而用自定义 URL 就显得酷多了。这就是你与 vibe-coder(氛围型程序员)拉开差距的方式。
不过话说回来,还是回到现实吧。我觉得这项技能正在逐渐消失,而我通过分享让它得以延续。这就是如何在本地运行自定义 URL 的方法。
需要完整排版与评论请前往来源站点阅读。