有没有一种好方法来保护对整个登台服务器的访问?

我有一个登台服务器和生产服务器,承载多个网站(使用Apache2.2)。 目前,我有DNS指向stage.domainX.com到登台服务器和*.domainX.com指向生产服务器。

一切似乎都工作得很好,但我希望能够保证对登台服务器的访问。 因此,除非是合适的人, stage.domainX.com应该禁止尝试进入stage.domainX.com (如果可能,请转到生产服务器)。

而且,我想使用域名而不是IP,因为我希望客户端能够更友好地查看暂存站点(而不是记住IP地址)。

有没有一个好办法来处理这个问题? 或者,我是以一种不寻常的方式处理暂存域名过程?

PS我实际上想通过端口pipe理这个,但我还没有想出一个办法。 像,domainX.com:80(标准)去生产和domainX.com:9000去升级。 还没有find一种方法在DNS中做到这一点(使用GoDaddy的名称服务器/区域)。

使用Apache,您可以简单地设置登台服务器的AllowDeny指令来限制对授权IP地址的访问。 或者,你可以把整个东西放在HTTP身份validation(用户名/密码,或客户端证书,如果你想得到真正的花式)。
使用自定义的“未经授权的”错误页面将用户redirect到生产站点的奖励点。

configurationApache以在不同端口上提供登台站点也是一种select,但这只是“通过默默无闻的安全性”,比如使用stage.domainX.com域 – 它不会阻止任何人发现登台站点看着。

<咆哮>
请注意,更改端口不是你用DNS做的事 – 这是一个web服务器configuration的事情(详情请参阅Apache手册)。 DNS 没有端口号的概念 ,它只是一个名称到IP(或IP到名称)映射* – 宠物peeve。
*有一些有限的例外,如SRVlogging,但我们正在讨论地址和CNAMElogging
</咆哮>

过去我成功地使用了如下的Apache安装程序。 它允许某些列出的IP地址在没有提供基本身份validation凭证的情况下自由访问登台站点(例如,您可以添加您的办公室和您的客户办公室的IP地址),但仍然允许基于密码的访问客户端不在办公室,例如。

 # Set NOAUTH environment-variable for certain IPs that are allowed without credentials SetEnvIf Remote_Addr 11.22.33.44 NOAUTH=1 # Staging <VirtualHost *:80> ServerName stage.domainX.com DocumentRoot /var/www/stage.domainX.com # Access restrictions <Location /> Order allow,deny # Anyone with the NOAUTH environment variable is allowed Allow from env=NOAUTH # Anyone that has valid credentials is allowed AuthType Basic AuthName "DomainX Staging" AuthUserFile /etc/apache2/staging.domainX.com.passwd Require valid-user # Either of the above is fine Satisfy Any </Location> # ... other directives ... </VirtualHost> # Production <VirtualHost *:80> ServerName domainX.com DocumentRoot /var/www/domainX.com # ... other directives ... </VirtualHost>