Apahce2只允许用户进行域名访问,ip访问报错403 Forbidden

正文索引 [隐藏]

写在前面:

一般来说,网站可以用域名或ip地址来进行访问。然而直接通过ip来访问网站是会存在一定的安全隐患,比如对你的网站进行域名恶意解析和恶意指向。 大家还记得google.com.sb吗?google.com.sb 这个域名曾经被恶意指向了百度的ip,后来证实了 google.com.sb 这个域名为第三者恶意指向的,并不是Google所为。当然这只是个玩笑,但如果有人用别的域名来恶意解析你的IP的话,那你的网站就能通过别人的域名来访问了。接下来会发生什么呢?可想而知。无所谓好了不多哔哔啦 说正经的。

相关环境说明:

Ubuntu/18.04     Apache/2.4.29

具体操作:

首先配置虚拟主机,使用root权限打开hosts文件:

sudo su root
vi /etc/hosts

在hosts文件中加入本机的ip地址和需要设置的虚拟主机名:

127.0.0.1   tanyaodan.com

输入完毕后Esc回到编辑模式下再输入:wq保存退出。然后在/etc/apache2/sites-available这个目录下新建一个.conf文件并进入:

cd /etc/apache2/sites-available
cp 000-default.conf tanyaodan.conf
vi tanyaodan.conf

修改 ServerName为域名 和 DocumentRoot为服务器根目录。

连接一下,重启apache2:

ln -s /etc/apache2/sites-available/tanyaodan.conf ../sites-enabled/
service apache2 restart

然后开始配置apache2.conf,网上很多教程说的是htppd.conf但是我这个环境下的apache没有那个文件,只有apache2.conf。

vi /etc/apache2/apache2.conf

加入以下内容(请大家自行把ip地址、域名、网站根目录更改成自己的长草):

<VirtualHost *:80>
ServerName 123.57.233.222
ServerAlias 
<Location />
Order Allow,Deny
Deny from all
</Location>
</VirtualHost>

<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot "/var/www/html"
ServerName www.tanyaodan.com
ServerAlias *.tanyaodan.com
<Directory "/var/www/html">
Options FollowSymLinks
AllowOverride All
Require all granted
</Directory>
</VirtualHost>

第一段代码用来实现拒绝直接通过123.57.233.222这个ip的任何访问请求。如果用123.57.233.222进行访问,你会看到403 Forbidden。

第二部分代码是允许用户通过 tanyaodan.com 这个域名访问,且主目录指向 /var/www/html/。

输入完毕后Esc回到编辑模式下再输入:wq保存退出。最后重启apache2服务即可。

service apache2 restart