東坡下載:內(nèi)容最豐富最安全的下載站!

首頁IT技術(shù)服務(wù)器 → Linux服務(wù)之httpd基本配置詳解

Linux服務(wù)之httpd基本配置詳解

相關(guān)文章發(fā)表評論 來源:本站原創(chuàng)時(shí)間:2013/8/25 23:06:24字體大。A-A+

更多

作者:不詳點(diǎn)擊:38194次評論:0次標(biāo)簽: Linux工具

一、基本介紹

1、版本

httpd-1.3

httpd-2.0

httpd-2.2

httpd-2.4

目前為止最新的版本是httpd-2.4.6,但是這里我用的是系統(tǒng)自帶的RPM包安裝的httpd-2.2.15版本的,最新版本配置可能會(huì)有所不同

2、模型:

高度模塊化:DSO

MPM:Multipath Processing Module #多處理模塊

prefork:一次一個(gè)進(jìn)程響應(yīng)一個(gè)請求

worker:一個(gè)進(jìn)程生成多個(gè)線程,一個(gè)線程響應(yīng)一個(gè)請求

event:基于事件驅(qū)動(dòng),一個(gè)進(jìn)程響應(yīng)多個(gè)請求

3、安裝

這里就直接rpm包安裝了,光盤上就有軟件包

yum install httpd

4、httpd安裝完后的基本信息

服務(wù)腳本:/etc/rc.d/init.d/httpd

運(yùn)行目錄:/etc/httpd/

配置文件:/etc/httpd/conf

主配置文件:/etc/httpd/conf/httpd.conf

擴(kuò)展配置:/etc/httpd/conf.d/*.conf

socket:http:80/tcp,https:443/tcp

網(wǎng)頁文件目錄(DocumentRoot):/var/www/html

CGI:/var/www/cgi-bin/

默認(rèn)主頁面文件:/var/www/html/index.html

5、主配置文件結(jié)構(gòu)

全局配置:對主服務(wù)器或虛擬主機(jī)都有效,且有些功能是服務(wù)器自身工作屬性;

主服務(wù)器配置:主站屬性

虛擬服務(wù)器:虛擬主機(jī)及屬性定義

6、測試配置和查看的命令

所使用的

service httpd configtest #測試配置文件有沒有語法錯(cuò)誤

httpd -t #同上

httpd -l #當(dāng)前服務(wù)器所使用的模型及開啟模塊

httpd -D DUMP_MODULES #當(dāng)前服務(wù)器支持的模塊

service httpd reload #重新加載配置文件

service httpd restart #重啟httpd服務(wù)

注意:修改配置文件后要重新加載配置文件,修改服務(wù)器監(jiān)聽端口后要重啟服務(wù)

二、基本配置

溫馨提示:配置httpd的工作屬性時(shí),指令不區(qū)分大小寫,但有約定俗成的習(xí)慣:單詞的首字母大寫;指令的值很有可能區(qū)分大小寫;有些指令可以重復(fù)使用多次;

1、配置監(jiān)聽的端口:

Listen [IP:]PORT

例如:Listen 172.16.3.1:80

2、配置所選用的MPM的屬性

安裝完默認(rèn)使用prefork模型

StartServers 8 #服務(wù)啟動(dòng)后默認(rèn)開啟的進(jìn)程數(shù)

MinSpareServers 5 #最少空閑進(jìn)程數(shù)

MaxSpareServers 20 #最多空閑進(jìn)程數(shù)

ServerLimit 256 #每個(gè)進(jìn)程允許開啟最多的子進(jìn)程數(shù)

MaxClients 256 #每個(gè)進(jìn)程最多用戶鏈接數(shù)

MaxRequestsPerChild 4000 #長連接時(shí)每個(gè)用戶最多請求數(shù)

worker模型:要支持worker模型需要配置/etc/sysconfig/httpd,開啟以下行:

HTTPD=/usr/sbin/httpd.worker

StartServers 4 #服務(wù)啟動(dòng)默認(rèn)開啟的進(jìn)程數(shù)

MaxClients 300 #最多同時(shí)客戶連接數(shù)

MinSpareThreads 25 #最少空閑進(jìn)程數(shù)

MaxSpareThreads 75 #最好空閑進(jìn)程數(shù)

ThreadsPerChild 25 #每個(gè)進(jìn)程開啟的線程數(shù)

MaxRequestsPerChild 0

3、配置服務(wù)器支持keep-alived(長連接)

KeepAlive {On|Off} #是否支持長連接

KeepAliveTimeout 2 #長連接超時(shí)時(shí)間

MaxKeepAliveRequests 50 #超時(shí)時(shí)間內(nèi)允許請求的次數(shù)

4、配置加載模塊

# LoadModule foo_module modules/mod_foo.so

#

LoadModule auth_basic_module modules/mod_auth_basic.so

LoadModule auth_digest_module modules/mod_auth_digest.so

LoadModule authn_file_module modules/mod_authn_file.so

LoadModule authn_alias_module modules/mod_authn_alias.so

5、配置網(wǎng)站根目錄

DocumentRoot "/var/www/html" #指定網(wǎng)站的主目錄

#容器內(nèi)定義站點(diǎn)的訪問權(quán)限

#容器內(nèi)限定用戶的訪問方法

6、配置頁面文件的訪問屬性

Options

Indexes #是否允許索引頁面文件,建議關(guān)閉

FollowSymLinks #是否跟隨軟連接文件

SymLinksifOwnerMatch #跟隨符號鏈接,只允許訪問運(yùn)行apache的用戶有屬主權(quán)限的文件

ExecCGI: #是否允許執(zhí)行CGI腳本;

All

None

7、基于客戶端訪問控制

系統(tǒng)默認(rèn)允許所有人訪問

Order #定義allow和deny那個(gè)為默認(rèn)法則;寫在后面的為默認(rèn)法則:寫在前面的指令沒有顯示定義的即受后面的指令控制:

Order allow,deny

Allow from all #所有人可以訪問

配置允許172.16.0.0/16訪問,但不允許172.16.3.1訪問

Order allow,deny

Deny from 172.16.3.1 #禁用一個(gè)IP訪問

Allow from 172.16.0.0/16 #允許一個(gè)網(wǎng)段訪問

8、userdir個(gè)人站點(diǎn)

# UserDir is disabled by default since it can confirm the presence

# of a username on the system (depending on home directory

# permissions).

#

#UserDir disabled #注釋此項(xiàng)

#

# To enable requests to /~user/ to serve the user's public_html

# directory, remove the "UserDir disabled" line above, and uncomment

# the following line instead:

#

UserDir public_html #開啟此項(xiàng)

重新加載配置文件后用:http://HOST/~username/

例如:http://172.16.3.1/~centos/

9、定義默認(rèn)主頁

1DirectoryIndex index.php index.jsp index.html

10、配置日志功能

日志有兩類:訪問日志(格式自定義)、錯(cuò)誤日志

錯(cuò)誤日志:

ErrorLog "/path/to/error_log_file"

訪問日志:

CustomLog "/path/to/custom_log_file" logformat

日志格式:{combined|common|agent}

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

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

LogFormat "%{Referer}i -> %U" referer

LogFormat "%{User-agent}i" agent

%h #主機(jī)名

%l #

%u #用戶名

%t #請求到達(dá)的時(shí)間

%r #請求報(bào)文的起始行,方法

%s #

%b #響應(yīng)報(bào)文的大小

%{Foobar}i #顯示從發(fā)那個(gè)站點(diǎn)跳轉(zhuǎn)過來

%{User-Agent}i #用戶代理

11、支持的字符集

1AddDefaultCharset UTF-8

12、路徑別名

可以隱藏網(wǎng)站的真實(shí)目錄,

Alias /test/ "/www/test/" #配置別名

#可以給別名目錄定義訪問權(quán)限

Options None

AllowOverride None

Order allow,deny

Allow from 172.16.0.0/16

13、腳本路徑別名

調(diào)用服務(wù)器上的腳本程序,但不希望腳本放在網(wǎng)站的目錄下

ScriptAlias /cgi-bin/ "/www/cgi-bin/" #定義cgi腳本路徑別名

# vi /wwww/cgi-bin/test.sh #寫一個(gè)測試腳本

#!/bin/bash

#cat << EOF

Content-Type:text/html

#這里要有一個(gè)空行否則可能會(huì)測試不成功

The hostname is: `hostname`. #輸出當(dāng)前系統(tǒng)的主機(jī)名 The timeis: `date`. #顯示時(shí)間

EOF

測試:顯示的是腳本執(zhí)行后的結(jié)果

14、基于用戶訪問控制

當(dāng)你的網(wǎng)站或者站點(diǎn)的某個(gè)路徑只想讓你授權(quán)的用戶訪問時(shí),就可以使用基于用戶的訪問控制

這里使用htpasswd命令建立用戶帳號文件

htpasswd

-c #第一次使用-c創(chuàng)建新文件,不是第一次不要使用此選項(xiàng)

-m #用戶密碼使用MD5加密后存放

-s #用戶密碼使用SHA加密后存放

-p #用戶密碼不加密

-d #禁用一個(gè)賬戶

-e #啟用一個(gè)賬戶

例如:

# htpasswd -c -m /etc/httpd/conf/.htpass tom

命令 選項(xiàng) 生成的用戶文件路徑及文件名 用戶名

# htpasswd -m /etc/httpd/conf/.htpass jerry

# 再次添加用戶時(shí)就不要使用-c選項(xiàng)了,否則會(huì)覆蓋之前內(nèi)容先生成

(1)建立用戶帳號文件

# htpasswd -c -m /etc/httpd/conf/.htpass tom

(2)修改主配置文件

# vi /etc/httpd/conf/httpd.con

DocumentRoot "/www/html" #此時(shí)網(wǎng)站根目錄就是/www/html

Optins Indexes

AllowOverride AuthConfig

AuthName "Oaly for employees." #登錄提示信息,可自定義

AuthType Basic #認(rèn)證方式

AuthUserFile /etc/httpd/conf/.htpass #用戶帳號文件

Require valid-user #允許的用戶

Require 指定可以訪問的用戶,可以指定單個(gè)用戶,直接寫用戶名就可以了,用戶名可以寫多個(gè)用空格分開,也可以指定所有用戶就用 valid-user

15、配置虛擬主機(jī)

(1)注釋主服務(wù)器,添加虛擬主機(jī)

# DocumentRoot "/www/html" #注釋主服務(wù)器

NameVirtualHost 172.16.3.1:80 #開啟虛擬主機(jī)

DocumentRoot /www/web1 #虛擬主機(jī)的網(wǎng)站根目錄

ServerName web1.lyd.com #主機(jī)名

DocumentRoot /www/web2

ServerName web2.lyd.com

(2)給虛擬主機(jī)提供測試文件

mkdir /www/web{1,2}

echo web1.lyd.com > /www/web1/index.html

echo web2.lyd.com > /www/web2/index.html

(3)配置完后用 httpd -t 測試配置文件有沒有錯(cuò)誤

(4)重啟服務(wù) service httpd restart

(5)驗(yàn)證,修改驗(yàn)證客戶端的hosts文件,

windows客戶端

開始-->運(yùn)行-->輸入"c:\windows\system32\drivers\etc\hosts"用記事本打開并添加以下行

172.16.3.1web1.lyd.com

172.16.3.1web2.lyd.com

16、配置支持https

(1)安裝httpd支持ssl模塊

yum install mod_ssl -y

(2)自建CA

#cd /etc/pki/CA

# (umask 077; openssl genrsa -out private/cakey.pem 2048)

#openssl req -new -x509 -key private/cakey.pem -out cacert.pem -days 365

(3)生成私鑰

cd /etc/httpd/conf/

mkdir ssl

cd ssl

(umask 077; openssl genrsa -out httpd.key 1024)

(4)生成證書申請

1openssl req -new -key httpd.key -out httpd.csr

(5)ca簽署證書

1openssl ca -in httpd.csr -out httpd.crt -days 365

(6)修改httpd的ssl配置文件

vi /etc/httpd/conf.d/ssl.conf

DocumentRoot "/www/web1"

ServerName www.lyd.com

SSLCertificateFile /etc/httpd/conf/ssl/httpd.crt

SSLCertificateKeyFile /etc/httpd/conf/ssl/httpd.key

(7)將ca證書導(dǎo)入到客戶端可信任證書服務(wù)器,并驗(yàn)證

 

擴(kuò)展知識

相關(guān)評論

閱讀本文后您有什么感想? 已有 人給出評價(jià)!

  • 2791 喜歡喜歡
  • 2101 頂
  • 800 難過難過
  • 1219 囧
  • 4049 圍觀圍觀
  • 5602 無聊無聊
熱門評論
最新評論
發(fā)表評論 查看所有評論(0)
昵稱:
表情: 高興 可 汗 我不要 害羞 好 下下下 送花 屎 親親
字?jǐn)?shù): 0/500 (您的評論需要經(jīng)過審核才能顯示)