如何从互联网访问虚拟主机?

Posted

技术标签:

【中文标题】如何从互联网访问虚拟主机?【英文标题】:How to access virtual host from the internet? 【发布时间】:2019-10-02 03:05:33 【问题描述】:

我想通过互联网上的虚拟主机访问我的网站。现在,我正在使用我的服务器的公共 IP 地址来访问我的网站。这是我正在使用的(请参见下文)。

http://122.4.195.12:7777/site/index.php

    有没有办法从 Internet 访问我的虚拟主机?当我从 Internet (https://mysite/site/index.php) 访问我的虚拟主机时,我得到了

DNS_PROBE_FINISHED_NXDOMAIN 错误 找不到 mysite 的服务器 IP 地址。

    通过公共 IP 地址访问我的网站时,是否可以添加 SSL?当我将 http 更改为 https 时,我得到了

ERR_SSL_PROTOCOL_ERROR 122.4.195.12 发送了无效响应。http://122.4.195.12:7777/site/index.php -> https://122.4.195.12:7777/site/index.php

这是我的虚拟主机配置:

<VirtualHost *:7777>
DocumentRoot "C:\xampp\htdocs"
  ServerName mysite
  <Directory "C:\xampp\htdocs">
    Require all granted
    AllowOverride All
    Order allow,deny
    Allow from all
  </Directory>
</VirtualHost>
<VirtualHost *:443>
     DocumentRoot "C:/xampp/htdocs"
     ServerName mysite
     SSLEngine on
     SSLCertificateFile "crt/scratchitsite/server.crt"
     SSLCertificateKeyFile "crt/mysite/server.key"
     <Directory "C:\xampp\htdocs">
        Require all granted
        AllowOverride All
        Order allow,deny
        Allow from all
      </Directory>
 </VirtualHost>

这是我服务器的主机文件:

127.0.0.1       mysite

【问题讨论】:

感谢编辑,根据您的最新信息尝试我在下面提到的内容。 【参考方案1】:

关于问题 1

更简单的方法仍然是注册一个域名,将其指向您的 IP 地址,并为其设置您的 VirtualHost ServerName

VirtualHost 实际检测到来自服务器站点的Host HTTP Header,所以这里的关键是:

如何让客户端浏览器发送Host标头与您在服务器上定义的一样

例如,通过使用 CURL,您可以强制它使用用户定义的 Host 标头,如下所示:curl -H 'Host: mysite' 122.4.195.12:7777/site/index.php

如果您使用的是 Chrome,可以尝试使用浏览器扩展程序,例如 this

关于问题 2

您已在 Apache 配置中的端口 443 而不是 7777 上启用了 HTTPS

这意味着您应该像 https://122.4.195.12:443/site/index.php 而不是 https://122.4.195.12:7777/site/index.php 那样访问您的 HTTPS 服务

【讨论】:

如何启用7777的https? 我添加了 chrome 扩展我在源软管和虚拟主机中放了什么? 你不能同时启用 HTTP 和 HTTPS 到同一个端口(例如 7777),它们必须不同。对于扩展,将您的 IP 地址放在源主机上,虚拟主机是您的域名(例如 mysite) 那么我将在我的虚拟主机中做什么来启用 https?你能告诉我我有点困惑吗 你已经做到了,在&lt;VirtualHost *:443&gt;部分有一个ServerName指令

以上是关于如何从互联网访问虚拟主机?的主要内容,如果未能解决你的问题,请参考以下文章

如何从外网访问虚拟机中web服务器

XAMPP VirtualHosts 从移动设备访问

VirtualBox:如何从主机访问 VM 上的虚拟主机?

linux从入门到精通

从Android模拟器ping主机

如何从外网访问dmz主机?