HTTP 服务器

                          HTTP 服务器学习

   目录结构

1   根目录 /etc/httpd/

2   主配置文档 /etc/httpd/conf/httpd.conf

3   主目录   /var/www/html

   httpd.conf详解

      Section 1:Global Environment

      1  ServerRoot “/etc/httpd”  服务器的根目录

       2  PidFile run/httpd.pid    运行时候进程id文件

      3      Timeout 120  指定了服务器和客户端超时时间间隔在两分钟之内自动断开连接  

KeepAlive Off  是否打开apache的持续连接功能

MaxKeepAliveRequests 100  限制客户端使用同一个连接进行的请求数量

KeepAliveTimeout 15       在一次持续的连接过程中,两次请求之间的最大时间间隔

4     <IfModuleprefork.c>

StartServers      8     #apache刚刚开启时候创建8个子进程

MinSpareServers   5    #最小空闲子进程数目

MaxSpareServers  20   #最大空闲子进程数目

ServerLimit     256   

MaxClients      256   #设定同时允许的在线人数

MaxRequestsPerChild 4000  #限制每个子进程在终止前所能提出的请求数量

</IfModule>

这种格式在配置文档中页最常见

 

       5     Listen80 监听的端口这里可以监听多个端口,只要是系统上面有效且没有被其他服务占用的端口

    6  LoadModuleauth_basic_module modules/mod_auth_basic.so 这些语句是apache 启动时候加载的模块,如果我们安装了模块,可以在这里指定,让它自动加载

    7  Include conf.d/*.conf    说名配置文件还包括conf.d/下面的所有conf文件

  8    

User apache

Group apache  运行时候是以apache身份运行

 

 

 

 

Section 2: ‘Main‘ server configuration

       1     ServerAdminroot@localhost   服务器管理员

       2  ServerName   ···         服务器名称

       3  DocumentRoot /var/www/html安装时候网站根目录

              我们可以把自己的网站直接放置到此目录下

   4   UseCanonicalName Off  指定apache服武器如何构造url地址,服务器名和服务器端口Off时候,apache使用客户端提供的主机名和端口号,为On时候apache使用ServerName指定的值

       5   <Directory />

           Options FollowSymLinks

            AllowOverride None

                     Order Deny,Allow

                     Allow from all

</Directory>

 这是一种在配置脚本里面最常见的格式,这里定义了目录的访问控制限制

Options  Indexes FollowSymLinks  定义目录可以支持目录浏览,符号连接

Deny allow 语句可以限制目录的可访问性,比如我们可以把all换成IP或者域名之类的,

 

站点目录访问控制

6   AllowOverrideNone/All   不启用身份验证//全部启用身份验证控制

              启用身份验证时候必须有效的用户输入用户名密码之后才可以访问到

              站点。增加了站点的安全性

              这里启用身份验证AllowOverrideAll

AccessFileName .htaccess  指定验证的文件名

              我们必须在站点主目录下面编辑.htaccess文件格式如下

Vi  .htaccess

              authuserfile  路径名称

              authtype basic

              authname  “说明文字”

              require valid-user

 

                     eg             

          cd /var/www/html

                     vi .htaccess

                            authuserfile/var/www/html/.htpasswd #验证文件

                            authtype basic  #启用基本验证类型

                            authname “Pleaseinput your name and passwd”

                            require valid-user   #所有有效用户都可访问

.htpasswd 文件产生方法

       htpasswd –c .htpasswd guomin  输入密码第一次文件不存在用-c参数创建

                                   这样就创建了guomin一个有效的帐户

       htpasswd .htpasswd zhangsan   输入密码以后就直接添加,不用-c参数

                                   创建zhangsan帐户

 

   讲解:这里的require字段有三种参数

           1  user    2 group    3   valid-user

                     require user user1 user2  user1user2具有目录访问权

          Require group user1 user2 只有隶属于这两个用户组的用户可以访问

                     Require valid-user 所有有效的用户都可以访问

 

个人站点服务:

UserdirDisable  把这一行注释掉,开启个人站点服务

UserDirpublic_html 打开这一行

个人站点就是个人家目录下边的public_html下边的站点

我们创建账号,在家目录下边添加文件夹public_html 编辑网页,

把家目录开启读取权,访问http://192.168.1.1/~username即可

在这里我们可以做别名记录,这样直接访问主地址下面的别名记录就可以了

Alias  /user “/home/user/public_html”

则直接访问http://192.168.1.1/username/即可访问得到

Directory Indexindex.htm  读取目录里的默认文件

虚拟主机配置

1 基于ip地址

多个ip 多个名字  80  多个站点

192.168.1.100         www.guomin.com 80 /var/www/html

192.168.1.101         tec.guomin.com  80 /var/www/tec

192.168.1.102         mkt.guomin.com80 /var/www/mkt

 

代码如下

<VirtualHost192.168.1.1:80>

    ServerAdmin [email protected]

    DocumentRoot /var/www/html

    ServerName www.guomin.com

    ErrorLog /var/www/html/error_log

    CustomLog /var/www/html/access_log common

</VirtualHost>

<VirtualHost192.168.2.1:80>

    ServerAdmin [email protected]

    DocumentRoot /var/www/tec

    ServerName tec.guomin.com

    ErrorLog /var/www/tec/error_log

    CustomLog /var/www/tec/access_log common

</VirtualHost>

<VirtualHost192.168.3.1:80>

    ServerAdmin [email protected]

    DocumentRoot /var/www/mkt

    ServerName mkt.guomin.com

    ErrorLog /var/www/mkt/error_log

    CustomLog /var/www/mkt/access_log common

</VirtualHost>

 

配置网卡,子接口地址

 

建立dns服务器,配置好这几台主机(这里还没介绍DNS,所以可以直接在/etc/hosts文件内部加入映射关系,因为域名的解析是先去找这个文件,如果找不到,才去DNS服务器查询,默认的定义查询顺序在/etc/nsswitch.conf 文件内部定义,有兴趣可以研究······)

/var/www/下边分别建立对应的站点的主目录,主页文件。

 

2 基于端口

       少量ip 少量名字  多个端口   多个站点

192.168.1.100         www.guomin.com 80 /var/www/html

www.guomin.com  800 /var/www/tec

www.guomin.com  8000 /var/www/mkt

 

代码如下

<VirtualHost192.168.1.1:80>

    ServerAdmin [email protected]

    DocumentRoot /var/www/html

    ServerName www.guomin.com

    ErrorLog /var/www/html/error_log

    CustomLog /var/www/html/access_log common

</VirtualHost>

<VirtualHost192.168.1.1:800>

    ServerAdmin [email protected]

    DocumentRoot /var/www/tec

    ServerName www.guomin.com

    ErrorLog /var/www/tec/error_log

    CustomLog /var/www/tec/access_log common

</VirtualHost>

<VirtualHost192.168.1.1:8000>

   ServerAdmin [email protected]

    DocumentRoot /var/www/mkt

    ServerName www.guomin.com

    ErrorLog /var/www/mkt/error_log

    CustomLog /var/www/mkt/access_log common

</VirtualHost>

 

在配置文档搜索Listen字段

加入两行

Listen 80

Listen 800

Listen 8000  这的的端口可以随便指定,但是一定要和VirtualHost 字段中的端口对应

/var/www/下边分别建立对应的站点的主目录,主页文件。

 

3       基于主机头

这里要打开NameVirtualHost  字段

NameVirtualHost  192.168.1.100:80

 少量ip  多个名字同样端口  多个站点

192.168.1.100 www.abc.com /var/www/html

                     tec.abc.com /var/www/tec

                    mkt.abc.com /var/www/mkt

代码如下

<VirtualHost192.168.1.1:80>

    ServerAdmin [email protected]

    DocumentRoot /var/www/html

    ServerName www.guomin.com

    ErrorLog /var/www/html/error_log

    CustomLog /var/www/html/access_log common

</VirtualHost>

<VirtualHost192.168.1.1:80>

    ServerAdmin [email protected]

    DocumentRoot /var/www/tec

    ServerName tec.guomin.com

    ErrorLog /var/www/tec/error_log

    CustomLog /var/www/tec/access_log common

</VirtualHost>

<VirtualHost192.168.1.1:80>

    ServerAdmin [email protected]

    DocumentRoot /var/www/mkt

    ServerName mkt.guomin.com

    ErrorLog /var/www/mkt/error_log

    CustomLog /var/www/mkt/access_log common

</VirtualHost>

 

建立域名的映射关系,这里tec.guomin.com  mkt.guomin.com 都应为www.guomin.com的别名记录,而不是A记录。搭建好网络直接在浏览器输入域名如www.guomin.commkt.guomin.com进行访问

 

 

 

 

Apache配置支持cgi动态网站(最早期的网站好多都是基于cgi方式架设起来的。现在不是很流行,单是这项技术很好用,方便,快捷,不需要对动态网站开发语言如PHP JSP .net,直接脚本

开发cgi最常用的就是perl

安装perl

Rpm –qa|grep perl

Rpm –qa|grepmod_perl

没有的话安装

 

在主配置文件httpd.conf加入

LoadModuleperl_module modules/mod_perl.so

Alias /cgi-bin/"/var/www/cgi-bin/"  /var/www/cgi-bin/目录做别名

AddHandlerperi-script .cgi .pl .pm   添加文件类型

<Directory"/var/www/cgi-bin">

    AllowOverride None

    SetHandler perl-script

    PerlHandler ModPerl::Registry

    Options ExecCGI

    Order allow,deny

    Allow from all

</Directory>

设置/var/www/cgi-bin/的访问控制,我们可以直接把我们的perl脚本放置到此目录下,让网页直接调用这些脚本就OK


郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。