当我们使用VPS建站的时候,理论上别人通过ip就可以访问我们的网站了,但这就会导致很多问题,比如他人的域名绑定到了自己的ip上。在debian/ubuntu下可以通过修改apache的配置文件,就可以禁止ip访问网站,和禁止别人的域名解析到自己的网站上。

网站没有开启ssl

以安装了Apache2的Debian9系统为例,在/etc/apache2/sites-enabled中有一个名称为000-default.conf的配置文件,在末尾加上如下两段。注意!配置文件中还有一个VirtualHost *:80配置信息,请务必将*改为你服务器的ip地址。

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

其中*.*.*.*是你VPS的的IP地址,这样的话,所有通过ip地址访问的请求都会被拒绝。

<VirtualHost *.*.*.*:80>  
DocumentRoot /var/www/html
ServerName name.com  
</VirtualHost>

其中*.*.*.*是你VPS的的IP地址;/var/www/html是你的网站所在的目录,一般都是这个不会有改动;name.com是你网站的域名,只有通过这个才访问网站。

网站开启了ssl

以安装了Apache2的Debian9并且使用了Let's Encrypt实现ssl的系统为例,在/etc/apache2/sites-enabled中有一个名称为000-default.conf和一个名称为000-default-le-ssl.conf的配置文件,在分别在两个配置文件末尾加上如下两段。注意!在000-default.conf这个配置文件中还有一个VirtualHost *:80配置信息,请务必将*改为你服务器的ip地址。在000-default-le-ssl.conf这个配置文件中还有一个VirtualHost *:443配置信息,请务必将*改为你服务器的ip地址。两个配置文件的端口不一样!

以下是对于000-default.conf:

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

其中*.*.*.*是你VPS的的IP地址,这样的话,所有通过ip地址访问的请求都会被拒绝。

<VirtualHost *.*.*.*:80>  
DocumentRoot /var/www/html
ServerName name.com  
</VirtualHost>

其中*.*.*.*是你VPS的的IP地址;/var/www/html是你的网站所在的目录,一般都是这个不会有改动;name.com是你网站的域名,只有通过这个才访问网站。

以下是对于000-default-le-ssl.conf:

<VirtualHost *.*.*.*:443>  
ServerName *.*.*.*  
<Location />  
Order Allow,Deny  
Deny from all  
</Location>  
</VirtualHost>  

其中*.*.*.*是你VPS的的IP地址,这样的话,所有通过ip地址访问的请求都会被拒绝。

<VirtualHost *.*.*.*:443>  
DocumentRoot /var/www/html
ServerName name.com  
</VirtualHost>

其中*.*.*.*是你VPS的的IP地址;/var/www/html是你的网站所在的目录,一般都是这个不会有改动;name.com是你网站的域名,只有通过这个才访问网站。

标签: 教程, linux

仅有一条评论

  1. [...]怕刺, 【教程】Debian上设置Apache禁止ip和非法域名访问. 2017-11-08[...]

添加新评论