如何正确使用Apache服务器上的域名来托管网页?

Aft*_*set 1 linux apache web-hosting self-hosting

好的,我在 Arch Linux 操作系统上运行 Apache Server 2.4.20。我目前的设置和工作方式是,来自任何外部连接的请求都通过我的公共静态 IP 转发到连接到服务器的本地 IP。除了在路由器上设置端口转发并将 设为 之外,我无需配置任何其他内容即可使服务器运行/etc/http/conf/httpd.confListen 80嗯,看起来很简单。

现在我想继续该过程的下一步并托管我通过 Apache 服务器购买的域名。基本上,到目前为止,当您连接到我的服务器时,它只会在地址栏中显示我的公共静态 IP。我想以这样的方式进行设置,即域名显示在地址栏中,而不是我的服务器的 IP。

截至目前,我已经尝试了三天来找到执行此操作的正确方法,似乎实际上没有任何指南可以逐步解释这一点。我对此进行了大约 40 个小时的研究。我收集的点点滴滴是

  • httpd.conf在文件中使用虚拟主机
  • 更改名称服务器以将您的域指向您的服务器

我已经尝试了虚拟主机组合的所有可能组合,并尝试配置我的名称服务器,但它不起作用,我浪费了大量时间。有人可以从头到尾写一份关于在 Apache 服务器上设置域名的简短指南吗?我不需要对正在做什么进行特别深入的解释,我单独理解这些过程,我只是不理解设置它的过程。

因此,如果有人能够制作一个简单的示例来展示从开始到结束的过程,我会很高兴,再次对您在每个步骤中所做的事情的解释应保持在最低限度,因为任何经历过此过程的人都应该这样做。此时再研究。

例子:

我现在拥有的:

Apache Server IP: **234.34.23.2**
Run Code Online (Sandbox Code Playgroud)

有人输入此内容,他们就会获得您的index.html页面,并且该 IP 显示在地址栏中。

我也想得到什么:

Purchased Domain Name: www.example.com
Run Code Online (Sandbox Code Playgroud)

现在,当有人在地址栏中输入此内容时,他们会在同一index.html页面上获得服务,并且该域名保留在地址栏中。

注意:我尝试仅对单个域执行此操作,因此我不需要涉及多个虚拟主机的示例。

hjp*_*r92 5

你的研究是准确的。您所要做的就是如下:

  • httpd.conf在文件中使用虚拟主机
  • 更改名称服务器以将您的域指向您的服务器

DNS/名称服务器配置

在您的 DNS 设置中,将AAAAA(如果您有 IPV6 值)设置为指向您的 IP:

Host: @
Value: 234.34.23.2
TTL: 3600 (seconds)
Run Code Online (Sandbox Code Playgroud)

保存以上内容并刷新您计算机的 DNS 缓存。现在,www.example.com应该尝试打开234.34.23.2. 如果没有,您可以通过以下方式将CNAME的值设置www为与您的值相同A

Host: www
CNAME: @
TTL: 3600 (seconds)
Run Code Online (Sandbox Code Playgroud)

再次重新加载您的 DNS 缓存并尝试。

虚拟主机

要设置 Apache 以便它知道要为域提供哪些文件www.example.com,请在您的httpd.conf文件中添加以下部分:

Listen 80
<VirtualHost *:80>
    DocumentRoot "/www/example"
    ServerName www.example.com
    ServerAlias example.com
    <Directory "/www/example">
        AllowOverride All
        Options All
        Require all granted
        # Any other directives
    </Directory>
    # Other directives here
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)

重新加载 Apache 服务器(或重新启动)。这就对了。