Apache

2019-09-27  本文已影响0人  无处裸奔

Apache

Apache介绍

Apache源于NCSAhttpd服务器(National center for supercomputing Applications,简称NCSA),经过多次修改,成为世界上最流行的Web服务器软件之一。Apache取自”a patchy server“的读音,意思是充满补丁的服务器。因为它是自由软件,所以不断的有人来为它开发新的功能、新的特性、修改原来的缺陷。Apache的特点是简单、速度快、性能稳定,并且可以作为代理服务器使用

Apache源码包下载

wget http://mirror.bit.edu.cn/apache/httpd/httpd-2.4.29.tar.gz

Linux系统中源代码包安装过程

配置(configure)

编译(make)

安装(make install)

Apache安装

设计安装选项

安装过程

目录结构说明

bin Apache执行文件的目录

cgi-bin 预设给一些CGI网页程序存放的目录

error 默认错误应答文件存放的目录

htdocs 默认Web文档根目录

icons 预设的小图标存放的目录

logs 默认日志存放的目录

man 帮助手册存放的目录

modules 动态加载模块存放的目录

检查http.conf文件配置语法

# linux
/usr/local/apache2/bin/apachectl -t

# windows
C:\APP\myphp_www\PHPTutorial\Apache\bin\httpd.exe -t

httpd.conf文件配置

### 全局配置 Global Environment

# Apache服务器的根目录
ServerRoot  "usr/local/apache2"

# 监听IP、端口和协议
# Listen [ip]:protnumber[protocol]
Listen 80

# 加载模块
# LoadModule 模块名称 模块文件路径全名
# 服务器在输出内容到客户端以前,将内容压缩,节约带宽
LoadModule deflate_module modules/mod_deflate.so
# 允许通过配置文件控制http协议的过期时间、缓存控制等
LoadModule expires_module modules/mod_expires.so
# 通过一定的规则实时重写URL请求
LoadModule rewrite_module modules/mod_rewrite.so

# 指定提供服务的子进程的用户和组
# User 用户名
User daemon
# Group 组名称
Group daemon

# 网站管理员邮箱,网站出错时会显示在客户端
ServerAdmin you@example.com

# 文档根目录,站点存放的位置
DocumentRoot "/usr/local/apache2/htdocs"

# 服务器用于辨识自己主机名和端口号
ServerName www.example.com:80

# 错误日志存放位置
ErrorLog "logs/error_log"

# 访问日志存放位置
CustomLog "logs/access_log" common

<IfModule dir_module>
    # 目录索引
    DirectoryIndex index.html index.php index.py /php-bin/index.php
</IfModule>


## extra/httpd-default.conf全局配置选项

# 超时时间,单位秒
Timeout 300
# 是否使用长链接
KeepAlive On
# 一个长链接中最大请求次数
MaxKeepAliveRequests 100
# 一个长链接中两次请求之间的超时时间,单位秒
KeepAliveTimeout 5

## extra/httpd-mpm.conf(多路分支模块)全局配置选项

# 当服务器是Linux时生效
<IfModule mpm_prefork_module>
    # 服务器启动时启动的子进程数
    StartServers          5
    # 最小的空闲子进程数
    MinSpareServers       5
    # 最大的空闲子进程数
    MaxSpareServers      10
    # 同一时间服务器允许连接的客户端数量
    MaxClients          150
    # 每个子进程的生存期内最大的请求数
    MaxRequestsPerChild   0
</IfModule>

# 当服务器是Windows时生效
<IfModule mpm_winnt_module>
    ThreadsPerChild      150
    MaxRequestsPerChild    3000   
</IfModule>

# 当Apache版本大于2.2是生效
<IfVersion >2.2>
</IfVersion>

# 当mpm_winnt_module模块不存在时生效
<IfModule !mpm_winnt_module>
</IfModule>

# Directory作用于目录
<Directory /var/web/dir1>
    # Files作用于文件
    <Files private.html>
    </Files>
</Directory>

# Location作用于网络空间
# 控制http://you.example.com/private
<Location /private>
</Location>

# 可以使用正则表达式
<DirectoryMatch /var/*.html>
</DirectoryMatch>

# 可以使用正则表达式
<FilesMatch \.(gif|jpe?g|png)$>
</FilesMatch>

# 可以使用正则表达式
<LocationMatch /private>
</LocationMatch>

# 给路径设置别名
Alias /abc/ "/var/www/html/"
<Directory "/var/www/html">
    # Indexes允许列出目录下所有文件
    # FollowSymlinks是否使用文件链接
    Options Indexes FollowSymlinks
    # 不适用.htaccess文件中的配置
    AllowOverride None
    # 先使用允许规则再使用拒绝规则
    Order allow,deny
    # 允许任何IP或主机访问
    Allow from all
    # 拒绝192.168.*的IP访问
    deny from 192.168.*
</Directroy>

## extra/httpd-vhosts.conf全局配置选项
<VirtualHost *:80>
    # 管理员邮箱
    ServerAdmin admin@baidu.com
    # 网站根目录
    DocumentRoot "C:\APP\myphp_www\PHPTutorial\WWW\www.baidu.com"
    # 服务名(域名)
    ServerName www.baidu.com
    # 错误日志存放位置
    ErrorLog "logs/www.baidu.com_error_log"
    # 访问日志存放位置
    CustomLog "logs/www.baidu.com_log" common
    <Directory "C:\APP\myphp_www\PHPTutorial\WWW\www.baidu.com">
        # 允许文件索引、允许使用文件链接
        Options Indexes FollowSymLinks
        # 不允许使用.htaccess文件
        AllowOverride None
        # 先使用允许规则再使用拒绝规则
        Order allow,deny
        # 允许所有访问者
        Allow from all
    </Directory>
</virtualHost>

虚拟主机

基于IP地址的虚拟主机

需要在同一台主机上绑定多个IP,在每个IP上建立一个虚拟主机,由于IP地址缺乏,此种方法不常使用

基于域名的虚拟主机

所有的虚拟主机都使用同一个IP地址,通过不同的域名来标识不同的虚拟主机

上一篇下一篇

猜你喜欢

热点阅读