码迷,mamicode.com
首页 > Web开发 > 详细

Apache

时间:2015-09-22 00:06:28      阅读:278      评论:0      收藏:0      [点我收藏+]

标签:apache

一、Apache配置文件

ServerRoot     apache主目录

 

Listen         监听端口,要监听多个端口需写多个Listen选项

 

LoadModule    加载模块

 

<IfModule unixd_module>    模块设置

  User daemon

  Group daemon

</IfModule>

 

ServerAdmin you@example.com   管理员邮箱,生产环境中很少用此功能发邮件

 

<Directory />     目录设置

    AllowOverride none

    Require all denied

</Directory>

 

DocumentRoot "/usr/local/apache2/htdocs"   首页文档根目录,带递归效果

<Directory "/usr/local/apache2/htdocs">    首页文档根目录具体配置

    Options Indexes FollowSymLinks

    AllowOverride None    基于用户名密码访问控制的开关

    Require all granted   基于客户端地址访问控制

 </Directory>

选项:Indexes 列出当前首页文档根目录下的所有内容

     FollowSymLinks  允许首页文件是链接文件

 

<IfModule dir_module>

    DirectoryIndex index.html     默认支持的首页名

</IfModule>

 

<Files ".ht*">        文件设置

     Require all denied    禁止其他用户访问”.ht*”的文件

</Files>

 

ErrorLog "logs/error_log"    错误日志

LogLevel warn     日志级别

 

<IfModule log_config_module>  日志的配置模块设置

  LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined

  LogFormat "%h %l %u %t \"%r\" %>s %b" common

  <IfModule logio_module>

  LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %I %O" combinedio

  </IfModule>

例:192.168.216.42 - - [19/Sep/2015:08:26:47 +0800] "GET /test.php HTTP/1.1" 200 51907

  第一项:客户端的IP地址

  第二项:验证信息

  第三项:用户名密码信息

  第四项:时间信息   日/月/年:小时:分钟:秒 时区

  第五项:操作

  第六项:操作对象

  第七项:使用的协议

  第八项:操作的操作代码,以2开头的为成功的操作,以4开头的为有问题的操作

  第九项:操作产生的数据量

   CustomLog "logs/access_log" common    访问日志

</IfModule>

 

<IfModule alias_module>     别名设置

     ScriptAlias /cgi-bin/ "/usr/local/apache2/cgi-bin/"

</IfModule>

cgi:处理用户请求的核心部分

网站请求流程:用户访问请求→网站服务器→cgi程序→网站服务器→回馈用户

 

<IfModule mime_module>

     TypesConfig etc/mime.types     设置应用程序的类型

     AddType application/x-compress .Z      增加应用类型

     AddType application/x-gzip .gz .tgz

     AddType application/x-httpd-php .php .phtml .phps

</IfModule>

 

<IfModule proxy_html_module>   代理功能

   Include etc/extra/proxy-html.conf

</IfModule>

 

<IfModule ssl_module>   SSL加密功能

 SSLRandomSeed startup builtin

 SSLRandomSeed connect builtin

</IfModule>

 

 

二、实验

1.基于用户名密码访问控制

  进入首页文档根目录

   vi .htaccess   不区分大小写

  AuthName “50 docs”   提示信息

  AuthType basic          认证类型

  AuthUserFile /share/apache.passwd  指定用户名密码文件存放位置,文件名自定义

  require valid-user     允许密码文件中所有用户访问

 

  /usr/local/apache2/bin/htpasswd -c /share/apache.passwd user1

    建立密码文件,添加第一个用户是用-c选项,再添加时用-m选项

  建立文件后,将Apache配置文件中的基于用户名密码访问控制开关由None改为All


2.基于客户端地址访问控制

    Apache配置文件中

  Require all granted   允许所有

  Require all denied     拒绝所有

 

  <requireall>             仅允许某个IP地址访问

     require all granted

     require ip 192.168.216.37

  </requireall>

 

  <requireall>             仅拒绝某个IP地址访问

     require all granted

     require not ip 192.168.216.42

  </requireall>

 

在Apache的2.2版本中     order allow,deny               默认拒绝所有

                        allow from 192.168.216.0/24   但允许某个网段

 

                        order deny,allow               默认允许所有

                        deny from 192.168.216.37      但拒绝某个IP

 

 3.虚拟主机

 基于IP的虚拟主机:一台服务器,多个IP,搭建多个网站

    1).添加虚拟IP地址:ifconfig eth0:0 192.168.216.36 netmask 255.255.255.0

    2).新建两个目录创建首页文件:mkdir xdl baidu

    3).修改虚拟主机配置文件:vi /usr/local/apache2/etc/extra/httpd-vhosts.conf

            <VirtualHost 192.168.216.36:80>

               DocumentRoot "/usr/local/apache2/xdl"

            </VirtualHost>

            <Directory "/usr/local/apache2/xdl">

                   Options Indexes FollowSymLinks

                   AllowOverride None

                   Require all granted

             </Directory>

            <VirtualHost 192.168.216.37:80>

               DocumentRoot "/usr/local/apache2/baidu"

            </VirtualHost>

            <Directory "/usr/local/apache2/baidu">

                   Options Indexes FollowSymLinks

                   AllowOverride None

                   Require all granted

             </Directory>

     4).Apache配置文件中启用Virtual hosts:Include etc/extra/httpd-vhosts.conf


基于端口的虚拟主机:一台服务器,一个IP,搭建多个网站,每个网络使用不同端口访问

    1).新建两个目录创建首页文件:mkdir xdl baidu

    2).修改虚拟主机配置文件:vi /usr/local/apache2/etc/extra/httpd-vhosts.conf

       Listen 8080

              <VirtualHost 192.168.216.37:80>

                 DocumentRoot "/usr/local/apache2/xdl"

              </VirtualHost>

              <Directory "/usr/local/apache2/xdl">

                     Options Indexes FollowSymLinks

                     AllowOverride None

                     Require all granted

               </Directory>

              <VirtualHost 192.168.216.37:8080>

                 DocumentRoot "/usr/local/apache2/baidu"

              </VirtualHost>

              <Directory "/usr/local/apache2/baidu">

                     Options Indexes FollowSymLinks

                     AllowOverride None

                     Require all granted

               </Directory>

    3).Apache配置文件中启用Virtual hosts:Include etc/extra/httpd-vhosts.conf


基于域名的虚拟主机:一台服务器,一个IP,搭建多个网站,每个网站使用不同域名访问

      1).新建两个目录创建首页文件:mkdir xdl baidu

      2).修改虚拟主机配置文件:vi /usr/local/apache2/etc/extra/httpd-vhosts.conf

              <VirtualHost 192.168.216.37:80>

                 DocumentRoot "/usr/local/apache2/xdl"

              ServerName www.xdl.com

              </VirtualHost>

              <Directory "/usr/local/apache2/xdl">

                     Options Indexes FollowSymLinks

                     AllowOverride None

                     Require all granted

               </Directory>

              <VirtualHost 192.168.216.37:80>

                 DocumentRoot "/usr/local/apache2/baidu"

                 ServerName www.baidu.com

              </VirtualHost>

              <Directory "/usr/local/apache2/baidu">

                     Options Indexes FollowSymLinks

                     AllowOverride None

                     Require all granted

               </Directory>

     3).Apache配置文件中启用Virtual hosts:Include etc/extra/httpd-vhosts.conf

 

在Apache的2.2版本中需打开NameVirtualHost *:80

 

4.个人主页

    为每个用户分别添加不同的个人主页

  1).Apache配置文件中启用User home directories:Include etc/extra/httpd-userdir.conf

  2).Apache配置文件中启用配置模块:LoadModule userdir_module modules/mod_userdir.so

  3).在用户家目录下新建目录用于创建首页文件,并更改权限


5.页面间跳转

  1).Apache配置文件中启用配置模块:LoadModule rewrite_module modules/mod_rewrite.so

  2).在要作跳转的首页文档根目录下建立文件:

                  vi .htaccess

               rewriteengine on        启用重写功能

               rewritecond %{HTTP_HOST} www.xdl.com   具体怎样重启

               rewriterule .* http://www.baidu.com       将网页跳转到www.baidu.com

  3).修改虚拟主机配置文件httpd-vhosts.conf ,将 AllowOverride None改为AllowOverride All

 

 

 


本文出自 “曾臻” 博客,谢绝转载!

Apache

标签:apache

原文地址:http://10725154.blog.51cto.com/10715154/1696905

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!