源碼安裝
> tar zxf httpd-2.2.27.tar.gz
> cd httpd-2.2.27
less INSTALL 或 less README 查看幫助
./configure --prefix=/application/apache2.2.27 --enable-deflate --enable-expires --enable-headers --enable-modules=most --enable-so --with-mpm=worker --enable-rewrite
1. make&&make install
2. yum install zlib zlib-devel -y
3. ln -s /application/apache2.2.27/ /application/apache
> /application/apache/apachectl -t #檢測(cè)語(yǔ)法
> /application/apache/apachectl start #啟動(dòng)服務(wù)
> /application/apache/bin/apachectl graceful #平滑啟動(dòng)
> lsof -i :80 #檢查端口
或者
> ps -ef | grep httpd #檢查進(jìn)程
瀏覽器訪問(wèn)服務(wù)器ip地址出現(xiàn)apache頁(yè)面表示正常秤掌。
/usr/sbin/apachectl -l #查看編譯模塊
/usr/sbin/apachectl -M #查看編譯模塊
rpm -qa httpd
rpm -ql httpd #查看安裝目錄
DocumentRoot "/usr/local/ads" #主站根目錄
優(yōu)化:
Options -Indexes FollowSymLinks #Indexes前加-號(hào)淑际,防止暴露根目錄文件
添加站點(diǎn):
<Directory "/var/html/">
Options -Indexes FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
</Directory>
指定訪問(wèn)的首頁(yè)文件:
<IfModule dir_module>
DirectoryIndex index.php index.html
</IfModule>
FQDN問(wèn)題:
#ServerName www.example.com:80
ServerName 192.168.177.4:80
虛擬機(jī)主機(jī):
部署多個(gè)站點(diǎn)走搁,每個(gè)站點(diǎn),希望用不同的域名和站點(diǎn)目錄筛武,或者是不同的端口缝其,不同的IP挎塌。需要虛擬主機(jī)功能。一句話内边,一個(gè)http服務(wù)要配置多個(gè)站點(diǎn)榴都,就需要虛擬主機(jī)。
虛擬機(jī)分類(lèi):
a.基于域名*****
b.基于端口
c.基于ip
所謂的基于XX漠其,就是靠XX來(lái)區(qū)分不同的站點(diǎn)嘴高。支持各種混合,N多個(gè)虛擬主機(jī)和屎。
虛擬主機(jī)配置:
域名 站點(diǎn)目錄
www.sinjon.org /var/html/www
blog.sinjon.org /var/html/blog
bbs.sinjon.org /var/html/bbs
1. 打開(kāi)/usr/local/apache2/conf/httpd.conf把下面語(yǔ)句前的#號(hào)去掉和添加如下內(nèi)容
#Include conf/extra/httpd-vhosts.conf
<Directory "/var/html/">
Options FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
</Directory>
2. /usr/local/apache2/conf/extra/httpd-vhosts.conf 添加如下內(nèi)容:
<VirtualHost *:80>
ServerAdmin 630527184@qq.com
DocumentRoot "/var/html/www"
ServerName www.baidu.com
ServerAlias baidu.com #別名
ErrorLog "logs/www-error.log"
CustomLog "logs/www-access_log" common
</VirtualHost>
<VirtualHost *:80>
ServerAdmin 630527184@qq.com
DocumentRoot "/var/html/blog"
ServerName blog.baidu.com
ErrorLog "logs/blog-error.log"
CustomLog "logs/blog-access_log" common
</VirtualHost>
<VirtualHost *:80>
ServerAdmin 630527184@qq.com
DocumentRoot "/var/html/bbs"
ServerName bbs.baidu.com
ErrorLog "logs/bbs-error.log"
CustomLog "logs/bbs-access_log" common
</VirtualHost>
基于端口:
/usr/local/apache2/conf/httpd.conf
Listen 80
Listen 8000
Listen 9000
/usr/local/apache2/conf/extra/httpd-vhosts.conf
NameVirtualHost *:80
NameVirtualHost *:8000
NameVirtualHost *:9000
<VirtualHost *:80>
.拴驮。。柴信。套啤。
</VirtualHost>
<VirtualHost *:8000>
</VirtualHost>
<VirtualHost *:9000>
</VirtualHost>
apache性能調(diào)優(yōu):
1、打開(kāi)/usr/local/apache2/conf/httpd.conf把下面語(yǔ)句前的#號(hào)去掉
#Include conf/extra/httpd-mpm.conf
2随常、查看apache使用的什么工作模式纲岭,下面為prefork.c模式
cd /usr/local/apache2/bin
[root@ADSHttp2 bin]# ./apachectl -l
prefork.c
3、修改/usr/local/apache2/conf/extra/httpd-mpm.conf文件线罕,找到preforkmodule修改
<IfModule mpm_prefork_module>
ServerLimit 20000
StartServers 5
MinSpareServers 5
MaxSpareServers 10
MaxClients 2500
MaxRequestsPerChild 0
</IfModule>
serverLimit最大為20000,需改大時(shí)要編譯安裝時(shí)指定止潮,MaxClients 為最大連接進(jìn)程數(shù)(客戶端連接數(shù))
配置文件 /usr/local/apache2/conf/httpd.conf
ServerRoot "/usr/local/apache2" #程序服務(wù)的路徑
Listen 80
ServerAdmin you@example.com #支持人員郵箱
ServerName 172.23.2.31:80 #域名
DocumentRoot "/usr/local/ads" #站點(diǎn)根目錄
<Directory "/usr/local/ads">
Options Indexes FollowSymLinks #Indexes 前加上-表示不列出站點(diǎn)文件
AllowOverride None
Order allow,deny
Allow from all
</Directory>
<IfModule dir_module>
DirectoryIndex index.html #指定首頁(yè)文件,添加多個(gè)用空格
</IfModule>
ErrorLog "|/usr/local/apache2/bin/rotatelogs /usr/local/apache2/logs/%Y%m%d_error.log 86400"
LogLevel warn #日志級(jí)別
<IfModule log_config_module>
LogFormat "2],[%A],[%h],[%{%Y-%m-%d %H:%M:%S}t],[http://%A%U],[%>s],[%b" common
LogFormat "%A],[%h],[%{%Y-%m-%d %H:%M:%S}t],[http://%A%U]" referer
LogFormat "%A],[%h],[%{%Y-%m-%d %H:%M:%S}t],[http://%A%U]" agent
<IfModule logio_module>
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %I %O" combinedio
</IfModule>
<FilesMatch "\.(zip|apk)">
SetEnv IFILE 1
</FilesMatch>
<FilesMatch "\.(zip|apk|xml|crl|cer|ico)">
SetEnv http_IFILE 1
</FilesMatch>
<FilesMatch "\.(xml)">
SetEnv xml_IFILE 1
</FilesMatch>
CustomLog "|/usr/local/apache2/bin/rotatelogs /usr/local/ads_logs/DownloadLog/AppDownloadInfo_172.23.2.31_%Y%m%d_%H.log 3600 480" common env=IFILE
CustomLog "|/usr/local/apache2/bin/rotatelogs /usr/local/ads_logs/HttpConnectInfo/HttpConnectInfo_172.23.2.31_%Y%m%d_%H.log 3600 480" referer env=http_IFILE
CustomLog "|/usr/local/apache2/bin/rotatelogs /usr/local/ads_logs/AutoDownloadListLog/AutoDownloadListinfo_172.23.2.31_%Y%m%d_%H.log 3600 480" agent env=xml_IFILE
</IfModule>
DefaultType text/plain
Include conf/extra/httpd-mpm.conf