我正在尝试找出向客户展示我为他们所做的工作的最佳方式,而无需在生产服务器上设置其他环境等。
⠀ 有没有好的方法可以将我的本地开发环境公开到网络上供他们查看?
⠀ 还有其他“最佳实践”吗?
答案1
我首先假设以下情况:
- 您有一个在开发系统上运行的 Web 服务器(而不仅仅是本地文件系统上的静态 HTML)。
- 该 Web 服务器正在监听外部接口(相对于仅有环回)。
- 有一个面向公众的 Apache Web 服务器可供您配置。
- 面向公众的 Web 服务器能够与您的开发系统建立 TCP 连接。
如果以上所有情况均为真(或者您可以使它们为真),那么您应该能够使用反向代理。
为了避免 URL 重写,我通常会设置一个指向具有唯一名称 (dev.example.com) 的公共 Web 服务器的 DNS 记录,然后设置虚拟托管反向代理。以下是指向 IP 地址为 10.0.0.42 的内部开发系统的 dev.example.com 的最小 Apache 配置:
<VirtualHost *:80>
ServerAdmin [email protected]
ServerName dev.example.com
ServerAlias dev
DefaultType none
ProxyPass / http://10.0.0.42/
ProxyPassReverse / http://10.0.0.42/
</VirtualHost>
您需要确保 mod_proxy 已启用。请参阅 Apache 的mod_proxy文档以了解更多详细信息。
答案2
最简单的方法是将系统置于防火墙和代理后面,最好将其置于虚拟机中。然后仅转发服务器正在监听的端口。
答案3
您还需要(除了本地 http 服务器之外)一个静态 IP 或动态 IP,以及一个服务,以便在您的 IP 发生变化时更新 NSF。并且您需要一个指向您 IP 的域名。因此,您需要一对名称服务器,或者租用一个名称服务器。您问的其实是一个相当复杂的问题,特别是如果您开始考虑 https 或类似的东西。我认为租用主机并设置好服务要容易得多。
答案4
我转而使用 Local by Flywheel 进行开发。它非常适合我当前的流程。