Aft*_*set 1 linux apache web-hosting self-hosting
好的,我在 Arch Linux 操作系统上运行 Apache Server 2.4.20。我目前的设置和工作方式是,来自任何外部连接的请求都通过我的公共静态 IP 转发到连接到服务器的本地 IP。除了在路由器上设置端口转发并将 设为 之外,我无需配置任何其他内容即可使服务器运行/etc/http/conf/httpd.conf。Listen 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页面上获得服务,并且该域名保留在地址栏中。
注意:我尝试仅对单个域执行此操作,因此我不需要涉及多个虚拟主机的示例。
你的研究是准确的。您所要做的就是如下:
httpd.conf在文件中使用虚拟主机在您的 DNS 设置中,将A和AAAA(如果您有 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 服务器(或重新启动)。这就对了。
| 归档时间: |
|
| 查看次数: |
11886 次 |
| 最近记录: |