apache(httpd)配置

1.简单配置


1 监听地址

2 主页目录

3 别名

4 目录访问的身份验证

5 https

6 MPM(under linux)

* 配置文件中路径、文件名均不支持中文。

《《《《《《《《《《《《《《《《

1 监听地址

#Listen 12.34.56.78:80

本地检测的时候可以使用“localhost”来查看页面。客户端可以随便使用服务端的 IP 地址查看。

Listen 10.97.57.2:80

本地或远程查看就只能使用这个 IP 地址了。

2 主页目录

DocumentRoot "D:/htdocs"

<Directory "D:/htdocs">

Options Indexes FollowSymLinks

AllowOverride None

Order allow,deny

Allow from all

</Directory>

3 别名

Alias /download "d:/ruan/l"

<Directory "d:/ruan/l">

Order allow,deny

Allow from all

</Directory>

要是没有对应的页面,而想以 ftp 一样列出该目录下的文件,这样就不行了。添加下面行:

Options Indexes FollowSymLinks

4 目录访问的身份验证

配置文件如下:

<Directory>

...

AuthName "runndy authname"

AuthType basic

AuthUserFile /opt/http-server/conf/mmb

Require valid-user

...

</Directory>

用户名密码文件的加密方式可以同时为不同用户采用不同的加密算法。

5 https

yum install -y mod_ssl

vi ssl.conf

LoadModule ssl_module modules/mod_ssl.so

Listen 192.168.136.11:443

<VirtualHost *:443>

ErrorLog logs/ssl_error_log

TransferLog logs/ssl_access_log

LogLevel warn

SSLEngine on

SSLProtocol all -SSLv2

SSLCertificateFile /etc/pki/tls/certs/localhost.crt

SSLCertificateKeyFile /etc/pki/tls/private/localhost.key

</VirtualHost>

6 MPM

prefork

 

<IfModule prefork.c>

 

StartServers

启动时“服务进程”① 数目

MinSpareServers

“服务进程”最小空闲数目

MaxSpareServers

“服务进程”最大空闲数目

ServerLimit

“服务进程”最大数目

MaxClients

“服务进程”同时提供服务最大数目(并发连接数量② 

MaxRequestsPerChild

“服务进程”的最大服务次数
  </IfModule>  

 

① 对应“管理进程”

② 限制“服务进程”响应请求时的最大值。

worker

 

<IfModule worker.c>

 
StartServers  
MaxClients  
MinSpareThreads /线程
MaxSpareThreads /线程
ThreadsPerChild “服务进程”产生的“线程”数目
MaxRequestsPerChild “服务进程”的最大服务次数
  </IfModule>  

2.apache的虚拟主机


1 基于名称的虚拟主机

2 基于 IP 的虚拟主机

3 默认主机

4 主机解析简析

* httpd-2.2.15

^-^ | ^-^ | ^-^ | ^-^ | ^-^ | ^-^ | ^-^ | 

1 基于名称的虚拟主机

cat httpd.conf

# NameVirtualHost *:80

NameVirtualHost 127.0.0.1

<VirtualHost *:80>

ServerName www.sunny.com

ServerAlias sunny.com *.sunny.com

DocumentRoot /www/sunny

</VirtualHost>

<VirtualHost *:80>

ServerName www.lucy.com

DocumentRoot /www/lucy

</VirtualHost>

指令 意义
NameVirtualHost 指定由多个 apache 虚拟主机共享的 IP 地址。
* 表示在所有的 IP 地址上运行,包括回环地址。
ServerAlias

对虚拟主机设定多个名字。

DocumentRoot

指定的目录必须是显示允许访问、或者父目录显示允许访问 

                         

① 允许访问:

<Directory "/dinglicom/httpd/vhosts/htdocs">

Order allow,deny

Allow from all

</Directory>

2 基于 IP 的虚拟主机

<VirtualHost 192.168.136.111:80>

ServerAdmin itxiaocui@163.com

DocumentRoot /www/sunny

ServerName www.sunny.com

ErrorLog /www/sunny/error_log

TransferLog /www/sunny/access_log

</VirtualHost>

<VirtualHost 192.168.136.112:80>

ServerAdmin itxiaocui@163.com

DocumentRoot /www/lucy

ServerName www.lucy.com

ErrorLog /www/lucy/error_log

TransferLog /www/lucy/access_log

</VirtualHost>

* 没有明确指定那个虚拟主机,会显示上边的那个虚拟主机页面。

3 默认主机

以一台虚拟主机作为默认服务器。并且放置在其他虚拟主机的前面

虚拟主机类型 配置方法
基于名称

<VirtualHost *:80>

ServerName default  # Any names you like.

DocumentRoot /var/www/html

</VirtualHost>

基于 ip

<VirtualHost _default_:80>

DocumentRoot /var/www/html

</VirtualHost>

4 主机解析简析

地址解析如下:

192.168.136.11 www.sunny.com

192.168.136.11 www.lucy.com

192.168.136.11 www.h1.com

192.168.136.11 h1

配置内容

ServerName www.h1.com

Listen 10.12.12.11:80

Listen 192.168.136.11:80

DocumentRoot /var/www/html

NameVirtualHost *:80

<VirtualHost *:80>

ServerName www.lucy.com

DocumentRoot /data01/www/lucy

</VirtualHost>

<VirtualHost *:80>

ServerName www.sunny.com

ServerAlias sunny.com *.sunny.com

DocumentRoot /data01/www/sunny

</VirtualHost>

<VirtualHost _default_:80>

DocumentRoot /var/www/html

</VirtualHost>

如果在地址栏输入 h1 还是会显示在上边的虚拟主机。(因为默认主机没有放在最上边。)

要让地址栏输入 h1 显示 [apache(httpd)配置 ] 指定的目录里的网页,需要修改配置如下:

ServerName www.h1.com

Listen 10.12.12.11:80

Listen 192.168.136.11:80

DocumentRoot /var/www/html

ServerName h1:80

这样是可以显示目录“/var/www/html”下的主页,可是不是默认虚拟主机生效的结果。
上一篇:[ruby on rails] 跟我学之(1)环境搭建


下一篇:JS数据结构第五篇 --- 二叉树和二叉查找树