apache与nginx的默认虚拟主机的配置及作用

我们在使用lanmp环境搭建网站的时候,通常会有域名和ip,我们可以通过这两个来进行访问,但是这里

有个不安全的因素,就是不论我们的ip解析到那个域名,都可以通过那个域名来访问(比如

在/etc/hosts中进行定义:ip  域名),因此为了增加安全性以及使得网站的访问规范化,防止别人的

乱解析,我们可以在虚拟主机的配置文件中增加默认虚拟主机的配置文件,这样可以禁止掉ip的访问,

避免ip地址随便的解析域名都可以访问该网站,下面来看看具体的实现方法:


一、apache


apache的虚拟主机配置文件一般在一个文件中(/usr/local/apache/conf/extra/httpd.conf),不论有

多少网站,内容都分为一个个模块写在一个配置文件中,这时候第一个模块的虚拟主机的配置文件就是

默认的虚拟主机,我们可以在第一个虚拟主机配置文件之前写入如下内容,即把第一个虚拟主机的访问

给禁止:


<VirtualHost *:80>

  DocumentRoot "/tmp/tmp"

  ServerName 111.com

  <Directory /tmp/tmp>

    Order allow,deny

    Deny from all

  </Directory>

<VirtualHost *:80>


这样我们就把指向我们网站的随意解析的域名以及ip的访问给禁止了,只要解析到这台机器的域名,不

管是什么域名,只要在配置文件中没有配置,都会访问到这个默认的虚拟主机上来,从而被禁止。


当然,我们也可以不写<Directory>中的内容,只要我们创建的目录没有读写的权限,一样可以禁止。



二、nginx


nginx的虚拟主机配置文件我们一般都是分开的,放在一个目录中,基本上一个虚拟主机一个配置文件,

这时候,我们就需要定义一个default.conf,这个文件和上面的apache中的第一个虚拟主机配置文件作

用基本相同,都是防止其他人的胡乱解析,不论用什么域名来进行访问这台机器,只要其它的配置文件

(*.conf)中没有配置,都会访问到这个主机上,然后被禁止,使用ip来访问也同样会被禁止掉,显示

403,笔者之前由于使用云主机来进行实验,直接使用ip访问,一直显示403,就是这个原因。


内容如下:


server

{

   listen 80 defult_server;

   servername localhost;

   index index.htm index.html index.php;

   root /tmp/tmp;

   deny all;

}

本文转自奇迹的少年博客51CTO博客,原文链接http://blog.51cto.com/raffaelexr/1731062如需转载请自行联系原作者


liliangchun

上一篇:为什么CoreOS携手开源?


下一篇:数据加密(对称加密和非对称加密)