IIS&Apache虚拟主机设置(主机头,一服多站)

来源:互联网 发布:怀化干部网络 编辑:程序博客网 时间:2024/04/28 08:54

IIS&Apache虚拟主机设置(主机头,一服多站)

打开“控制面板”->“管理工具”->“Internet服务管理器”->“默认web站点”。 
在“默认web站点”上按鼠标右键,选择“新建”->“站点”。按“下一步”。 
输入站点说明,如“站点1”。按“下一步”。 
在“站点的主机头”上输入域名,如“abc.dns0755.net”。按“下一步”。 
在路径里指定站点的根目录路径。按“下一步”。 
在权限里选择适当的权限。按“下一步”,即可完成。 
如果配置的是顶级域名的虚拟主机,例如在上面第4步主机头里输入“abc.com”,而同时又希望用户使用“www.abc.com”也能访问。设置步骤如下:

在“Internet服务管理器”的“站点1”上按鼠标右键,选择“属性”。 
在IP地址右边点击“高级”。 
点击“添加”,输入端口号(一般用80),再输入主机头名“www.abc.com”。 




如果你只有一个站点,无需其它虚拟主机,那么就只需建立一个Web站点就可以了,连默认站点的主机头也可以省了:)

建立一个Web站点:

     假设你有域名aaa.com,自己的网页放在D:\web1目录下,网页的首页文件名为Index.htm,现在想根据这些建立自己的Web服务器。

     对于此Web站点,我们可以用现有的“默认Web站点”来做相应的修改后,就可以轻松实现。请先在“默认Web站点”上单击右键,选“属性”,以进入名为“默认Web站点属性”设置界面。

     1.IP地址:转到“Web站点”窗口,IP地址栏选择默认的“(全部未分配)”

     2.修改主目录:转到“主目录”窗口,再在“本地路径”输入(或用“浏览”按钮选择)好自己网页所在的“D:\web1”目录。

     3.添加首页文件名:转到“文档”窗口,再按“添加”按钮,根据提示在“默认文档名”后输入自己网页的首页文件名“Index.htm”。

     4. 添加虚拟目录:比如你的主目录在“D:\web1”下,而你想输入“www.aaa.com/bbs”的格式就可调出“D:\bbs”中的网页文件,这里 面的“bbs”就是虚拟目录。请在“默认Web站点”上单击右键,选“新建→虚拟目录”,依次在“别名”处输入“bbs”,在“目录”处输入“D:\ bbs”后再按提示操作即可添加成功。

     5.效果的测试:打开IE浏览器,在地址栏输入“www.aaa.com”之后再按回车键,此时就能够调出你自己网页的首页,输入“www.aaa.com/bbs”调出你“D:\bbs”中的网页,则说明设置成功!

建立虚拟主机(增加主机头):


虚拟主机是指在一台服务器里运行几个网站

假 如你有几个域名aaa.com,bbb.com,以及想用如bbs.aaa.com想分别对应几个不同站点。其中,aaa.com站点的网页放在D:\ web1下,默认首页为index.htm,bbb.com站点的网页放在D:\web2下,默认首页为index.htm,bbs.aaa.com 站 点的网页放在D:\bbs下可以用设置不同“主机头名”的方法,让你直接用域名来完成对不同Web站点的访问。

     前面已经建立了一个web站点了,这是IIS默认的站点。将其主机头添加为www.aaa.com即可以绑定到www.aaa.com。

     下一步将说明如何建立另外一个站点www.bbb.com ,也就是我们要的虚拟主机。

     1. 在“默认Web站点”处单击右键,选“新建→站点”,然后根据提示在“说明”处输入任意用于说明它的内容(比如为“bbb.com”),然后点下一步;

     2. IP地址栏选择默认的“(全部未分配)”。端口栏用默认的80。“此站点的主机头”这个栏目输入www.bbb.com,然后点下一步;

     3. 后面的步骤根据提示,用默认的就可以了,记得主目录要指定到bbb.com站点的网页存放目录哦(此例中是:D:\web1)。

     现在你已经建立(或设置)好了两个Web站点,一个是“aaa.com”(为方便起见把‘默认的web站点’改为“aaa.com”),一个是 “bbb.com”,现在你想输入“www.aaa.com”可直接访问前者,输入“www.bbb.com”可直接访问后者。
    
    一般情况下,用户都是希望在访问比如bbb.com的域名时,在IE里面输入“www.bbb.com”和“bbb.com”都可以访问该站点。其操作步骤如下:

     依次选“bbb.com→右键→属性→Web站点”,单击“IP地址”右侧的“高级”按钮,在“此站点有多个标识下”,点“添加”按钮,TCP端口为80,然后在“主机头名”下输入“bbb.com”再按“确定”按钮保存退出。
   
同理,你想直接用bbs.aaa.com域名来完成对D:\bbs访问,步聚和建立站点www.bbb.com类似。
=================================================

Apache虚拟主机设置




1、打开Apache配置文件“httpd.conf”,查找“#NameVirtualHost *”,把这行前面的“#”去掉。

2、在“NameVirtualHost *”这行下面,增加虚拟主机站点。示例如下:

<VirtualHost >
ServerAdmin 
DocumentRoot /export/home/dns0755
ServerName dns0755.net
ServerAlias *.dns0755.net
ScriptAlias /cgi-bin/ /export/home/dns0755/cgi-bin/
ErrorLog "| /usr/local/sbin/rotatelogs /var/log/http/dns0755-err.log 604800"
CustomLog "| /usr/local/sbin/rotatelogs /var/log/http/dns0755.log 604800" combined
</VirtualHost>


<VirtualHost *:80>
DocumentRoot d:/www/182yimenchen/
ServerName www.58nin.com
ServerAlias *.58nin.com
<Directory   d:/www/182yimenchen/>
AllowOverride All
Options All
</Directory>
</VirtualHost>
<Directory "d:/www/182dede/upfiles">
<FilesMatch ".(php|asp|jsp)$">
Deny from all
</FilesMatch>
</Directory>
<Directory "d:/www/182dede/data">
<FilesMatch ".(php|asp|jsp)$">
Deny from all
</FilesMatch>
</Directory>


<Directory "d:/www/182yimenchen/upfiles">
 Options -Indexes FollowSymLinks
<Files ~ ".php"> 
Order allow,deny 
Deny from all 
</Files> 
</Directory>

<Directory "d:/www/182yimenchen/lyy_182htyimenchen/data">
<FilesMatch ".(php|asp|jsp)$">
Deny from all
</FilesMatch>
</Directory>

说明:

ServerAdmin 
站点管理员Email地址 

DocumentRoot /export/home/dns0755
站点根目录

ServerName dns0755.net
站点主机名

ServerAlias *.dns0755.net
站点别名,“*”表示任意字符

ScriptAlias /cgi-bin/ /export/home/dns0755/cgi-bin/
执行脚本文件存放路径

ErrorLog "| /usr/local/sbin/rotatelogs /var/log/http/dns0755-err.log 604800"
错误日志控制

CustomLog "| /usr/local/sbin/rotatelogs /var/log/http/dns0755.log 604800" combined
访问日志

/usr/local/sbin/rotatelogs是日志管理程序
/var/log/http/dns0755.log是日志文件名
604800的单位是秒,这种写法表示每隔7天产生一个日志文件

  

  在PHP网站开发中,基于WEB服务器和PHP网站程序代码的安全考虑,我们需要对相关的目录或者文件访问权限进行控制,以防止意外情况的发生,那么我们如何来实现这种功能呢?

我们可以通过Apache来实现禁止目录访问(禁止游览列出的目录或文件列表)、禁止或允许IP与域名访问目录的功能。

 在Apache中配置禁止目录访问,即禁止游览列出的目录/文件列表的方法

  访问网站目录时Apache默认配置为可列出目录/文件列表,即当你访问http://localhost时会列出相关的目录和文件列表,我们可以通过修改Apache配置文件httpd.conf来实现禁止列出目录/文件列表,方法如下:

1、打开apache配置文件httpd.conf

2、找到







 
<Directory />
Options Indexes
AllowOverride None
Order allow,deny
Allow from all
</Directory>

 只需要修改Options Indexes为Options None即可,:根据PHP运行环境安装包的不同,Options Indexes也有可能是Options Indexes FollowSymLinks,一并改为Options None即可。

 

还需注意的事:如果是自己重新设置了DocumentRoot,例如以下:修改的地方也就不同了

<Directory "D:/Apache2/webpage">

#
# Possible values for the Options directive are "None", "All",
# or any combination of:
  Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews
#
# Note that "MultiViews" must be named *explicitly* --- "Options All"
# doesn't give it to you.
#
# The Options directive is both complicated and important.  Please see
# http://httpd.apache.org/docs/2.0/mod/core.html#options
# for more information.
#
   # Options Indexes FollowSymLinks
   Options  FollowSymLinks

#Indexes 的作用就是当该目录下没有 index.html 文件时,就显示目录结构,去掉 Indexes,Apache 就不会显示该目录的列表了。


# AllowOverride controls what directives may be placed in .htaccess files.
# It can be "All", "None", or any combination of the keywords:
  Options FileInfo AuthConfig Limit
#
    AllowOverride None

#
# Controls who can get stuff from this server.
#
    Order allow,deny
    Allow from all

</Directory>

3、保存httpd.conf,并重启Apache即可,此时再访问http://localhost时, 报apache http 403 禁止访问错误信息

  Forbidden

  You don’t have permission to access / on this server.

   另一种方法是在指定的web目录下:http://jwc.jxatei.net:8080/  "index.html、index.php时",也可解决访问目录问题,但没有解决根本问题。 

  至此,通过配置Apache服务器我们可以实现禁止目录访问(列出目录或文件列表),这些功能对提高和优化WEB服务器的安全性能是必不可少的方法。

 

还有一种方法:

可以在根目录的 .htaccess 文件中输入

<Files *>
Options -Indexes
</Files>
就可以阻止Apache 将目录结构列表出来。



内容来源:http://hi.baidu.com/amenmen/blog/item/5279190914bbb4b42fddd45b.html






Apache服务器上传文件夹设置禁止执行脚本文件方法

在apache中禁止一个目录执行php脚本的权限
http://home.phpchina.com/space.php?uid=13636&do=blog&id=40356
http://dnbcw.com/biancheng/html/apache/DFKN35919.html
http://www.bccn.net/Article/web/php/jszl/200512/2325.html

比如某些用于保存用户上传文件(头像、签名、帖子图)等的目录,这些目录只是图片和压缩文件等,并不需要php脚本执行权限,为了避免上传漏洞这些目录需要禁止掉php脚本的执行权限,方法如下:

方法一:

<Directory "e:/webroot/test"> 
<Files ~ ".php"> 
Order allow,deny 
Deny from all 
</Files> 
</Directory> 



方法二:php_flag engine off #表示此目录下的PHP文件不被解释执行,限没有PHP权限
当以 Apache 的模块方式运行 PHP 时,也可以通过 Apache 的配置文件(例如 httpd.conf)和 .htaccess 文件中的指令来修改 PHP 的配置选项(需要“AllowOverride Options”或“AllowOverride All”权限)。

在httpd.conf文件里有关在该目录的设定里加上 (PHP4以上版本)
"php_admin_flag engine off"

例:

<Directory /srv/www/htdocs/path>
php_admin_flag engine off
</Directory>
0 0
原创粉丝点击