两个虚拟主机,具有内部和外部 IP,用于相同的应用程序、相同的端口

两个虚拟主机,具有内部和外部 IP,用于相同的应用程序、相同的端口

同一台服务器是否可以有两个虚拟主机配置 - 一个具有内部 IP 地址,另一个具有域名(域名指向具有内部 IP 地址的同一台服务器)?类似

例如,服务器 A 的域名为 a.com,内部 IP 为 xxx.xxx.xxx.xxx,外部 IP 为 yyy.yyy.yyy.yyy。它们的文档根目录也相同,都是 /var/www/html

 <VirtualHost xxx.xxx.xxx.xxx:80>
 .......
 </VirtualHost>


  <VirtualHost a.com:80>
  .......
  </VirtualHost>

注意,内部IP地址和域名属于同一台服务器或同一服务器实例。

我要求限制外部用户的某些 URL,将所有外部访问重定向到 https,并允许内部用户的所有内容(无需 https)。

而且它们适用于相同的应用程序...

答案1

同一台服务器是否可以有两个虚拟主机配置 - 一个具有内部 IP 地址,一个具有域名?

对的,这是可能的。

我建议你阅读Vhost 文档

答案2

是的,这是可能的。您必须创建两个 vhost 配置文件,它们都指向同一个文档根目录。

假设你使用 Centos,你的 apache 配置文件位于 /etc/httpd/conf/custom/

您必须创建两个配置文件,一个用于外部域,另一个用于内部 IP,如下所示

$ nano /etc/httpd/conf/custom/namevirtualhost.conf
$ nano /etc/httpd/conf/custom/a.com.conf

将每个虚拟主机放在其自己的文件中将使将来更容易编辑、启用或禁用它们。

在每个文件中根据需要更改以下行 NameVirtualHost *:80

这两个文件中的文档根目录应指向同一目录 DocumentRoot /home/你的主目录/public_html/domain1.com/public

您可能需要有单独的访问日志,一个用于域,一个用于内部 IP,在这种情况下

ErrorLog /var/log/httpd/domain1.com/log/error.log
CustomLog /var/log/httpd/domain1.com/log/access.log combined

重新启动 Apache 即可。

相关内容