日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) >

HTTP基础及基本配置

發(fā)布時(shí)間:2025/3/18 83 豆豆
生活随笔 收集整理的這篇文章主要介紹了 HTTP基础及基本配置 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

HTTP基礎(chǔ)及基本配置

1、配置監(jiān)聽(tīng)的地址和端口;

? ? Listen [IP:]PORT

? ? ? ? ? ? 例如:Listen 80?監(jiān)聽(tīng)所有80端口

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

配置使用編譯進(jìn)不同MPMhttpd,編輯/etc/sysconfig/httpd配置文件,定義如下行:

? ? HTTPD=/usr/sbin/httpd.worker


MPM:多道處理模塊

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

? 主進(jìn)程功能

? ? ?(1) 綁定特權(quán)端口;

? ? ?(2) 派發(fā)或回收子進(jìn)程;

? ? ?(3) 讀取分析主配置文件;

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

? ? ? ? 默認(rèn)使用的是prefork模型、如果要使用worker模型,要在配置文件里啟用

event?在httpd-2.2?版本上只是測(cè)試的

? ? ? ?httpd命令選項(xiàng):

? ? ? ? ? ? ?httpd -h:列出所有選項(xiàng)

? ? ? ? ? ? ?httpd -l:顯示核心模塊

httpd -D:顯示所有已裝載的模塊 ?

httpd -t:測(cè)試配置文件

? ? ?# vim?/etc/httpd/conf/httpd.conf打開(kāi)配置文件:

? ? ?<IfModule prefork.c>條件性指令,判斷這個(gè)模塊是否存在,存在下面的配置就生效

? ? ?StartServers ? ? ? 8?? ?剛啟動(dòng)web服務(wù)的時(shí)候,啟動(dòng)幾個(gè)空閑進(jìn)程

? ? ?MinSpareServers ? ?5?? 最小空閑進(jìn)程數(shù)

? ? ?MaxSpareServers ? 20?? 最大空閑進(jìn)程數(shù)

? ? ?ServerLimit ? ? ?256?? ?最多允許并發(fā)的進(jìn)程活動(dòng)個(gè)數(shù)

? ? ?MaxClients ? ? ? 256?? 服務(wù)器允許連進(jìn)來(lái)的客戶端數(shù)目

? ? ?MaxRequestsPerChild ?4000?一個(gè)進(jìn)程最多可以處理多少個(gè)請(qǐng)求

? ? ?</IfModule>

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

? ? ? KeepAlive {On|Off}

? ? ? ? ?對(duì)于比較空閑的服務(wù)器,建議KeepAlive?on;對(duì)于非常忙的服務(wù)器,建議KeepAlive?off

? ? ? KeepAliveTimeout 2??最多允許使用2

? ? ? MaxKeepAliveRequests 50??一次連接之內(nèi),最多允許50個(gè)資源請(qǐng)求

4、配置加載的模塊

? ? ? LoadModule foo_module modules/mod_foo.so

5、配置站點(diǎn)根目錄

? ? ? DocumentRoot ""?? ? 定義網(wǎng)頁(yè)存放目錄

? ? ?<Directory "FS_PATH">

? ? ?</Directory>

? ? ?<Location "URL">

? ? ?</Location>

例如/var/www/html/images/logo.jpg根目錄/var/www/html,那么我們的訪問(wèn)路徑就是:http://www.magedu.com/images/logo.jpg

6、配置頁(yè)面文件訪問(wèn)屬性

? ? ?<Directory "FS_PATH">

? ? ?Options

? ? ?Indexes: 是否允許索引頁(yè)面文件,建議關(guān)閉;除非提供專門(mén)下載可以打開(kāi)

? ? ?FollowSynLinks: 是否跟隨軟鏈接文件;不安全。

? ? ?SymLinksifOwnerMatch:是屬主的話允許鏈接

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

? ? ?All

? ? ?None

? ? ?</Directory>

7、訪問(wèn)控制

基于客戶端訪問(wèn)控制:(基于ip地址訪問(wèn)控制

Order:定義allowdeny哪個(gè)為默認(rèn)法則;寫(xiě)在后面的為默認(rèn)法則:寫(xiě)在前面的指令沒(méi)有顯式定義的即受后面的指令控制;

? ? (1) Order allow,deny

? ? ? ? ? Allow from 172.16.0.0/16?? 僅允許172.16.0.0/16?網(wǎng)段內(nèi)客戶訪問(wèn)

? ? (2) Order allow,deny

? ? ? ? ? Deny from 172.16.4.12 拒絕所有用戶訪問(wèn)

? ? (3) Order allow,deny

? ? ? ? ? Deny from 172.16.4.12

? ? ? ? ? Allow from 172.16.0.0/16

? ? ? ? ?地址范圍匹配越小的是最佳匹配,172.16.4.12 最小,所以為拒絕172.16.4.12 網(wǎng)段內(nèi)客戶訪問(wèn)

基于用戶訪問(wèn)控制

8、userdir

? ?讓每個(gè)用戶都擁有個(gè)人站點(diǎn):http://HOST/~username/

? ?需要啟用UserDir public_html

? ? ? ? 需要設(shè)定用戶對(duì)家目錄文件的訪問(wèn)控制權(quán)限

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

? ? ? ? ?DirectoryIndexindex.php index.jsp index.html

? ? ? ? ?默認(rèn)先找最左側(cè)的,也就是index.php

10、配置日志功能 ? ? ? 默認(rèn)路徑在/var/log/httpd/

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

? ?錯(cuò)誤日志:

? ? ? ?ErrorLog "/path/to/error_log_file"

? ?訪問(wèn)日志:

? ? ? ?CustomLog /PATH/TO/CUSTEOM_LOG_FILE LOGFORMAT, 例如:

? ? ? ?CustomLog logs/access_log combinedcombined

? ?LogFormat?定義格式

? ? ? 安裝httpd-manual包,service httpd reload重新載入服務(wù),在瀏覽器中鍵入172.16.4.1/manual/就可以在本地訪問(wèn)了:

? ? ?Log Files?==>?format strings 就可以查看定義的日志格式了

11、設(shè)定默認(rèn)字符集

? ? ? AddDefaultCharset UTF-8

12、路徑別名

? ? ? DocumentRoot "/web/htdocs"

? ? ? http://www.magedu.com/images/logo.gif ?==> /web/htdocs/images/logo.gif

? ? ? 定義別名為/www/static/

? ? ? 訪問(wèn)路徑就是/www/static/logo.gif

? ?首先:定義Alias /images/ "/www/static/"

? ?然后:創(chuàng)建目錄/www/static/??在目錄下創(chuàng)建文件index.html ? ?在文件里面編輯內(nèi)容 ? ?

? ?最后:重新載入service httpd reload

? ?我們重新訪問(wèn)172.16.0.1/images時(shí),看到的內(nèi)容會(huì)變成所定義別名的路徑下的內(nèi)容。

13、腳本路徑別名:

CGI:協(xié)議

? ? ScriptAlias /PATH/ /PATH/TO/SOMFEDIR/

? ? 例如:ScriptAlias /cgi-bin/ "/var/www/cgi-bin/"或者ScriptAlias /cgi-bin"/var/www/cgi-bin"

? ? 注意/cgi-bin/var/www/cgi-bin后面要保持一致

? ? 操作:

? ? ? ? #cd /etc/httpd/conf

? ? ? ? #mkdir -pv /website/cgi-bin/

? ? ? ? #vim /website/cgi-bin/test.sh

CGI測(cè)試腳本

#!/bin/bash

#

cat << EOF

Content-Type: text/html

<pre>

The hostname is: `/bin/hostname`.

The time is: `date`.

</pre>

EOF

給腳本執(zhí)行權(quán)限,腳本執(zhí)行結(jié)果為:

Content-Type: text/html

<pre>

The hostname is: station93.magelinux.com.

The time is: Sat Aug 17 01:11:13 CST 2013.

</pre>

# end of cgi script file

用瀏覽器訪問(wèn)172.16.4.1/cgi-bin/test.sh 可以訪問(wèn)到

14、基于用戶訪問(wèn)控制

? ? ? DocumentRoot "/var/www/html"

? ? ? <Directory "/PATH/TO/DocumentRoot_SUBDIR">

? ? ? Options None

? ? ? AllowOverride AuthConfig?? 是否允許覆蓋

? ? ? AuthName "Realm"?? ? ? ? ?認(rèn)證名稱

? ? ? AuthType Basic?? ? ? ? ? ? ?認(rèn)證類型

? ? ? AuthUserFile /path/to/passwords?用戶賬戶文件叫什么,

? ? ? Require jerry tom?? ? ? ? ? ? 哪些用戶可以登陸

? ? ? </Directory>

(1) 建立用戶帳號(hào)文件

? ? ?htpasswd -c -m /path/to/password_file USERNAME

? ? ?第一次創(chuàng)建文件添加用戶的時(shí)候用-c選項(xiàng),以后就不能用-c選項(xiàng)了,否則會(huì)將原來(lái)的文件內(nèi)容覆蓋的。

(2) 一個(gè)配置示例

<Directory "/website/htdocs/downloads">

? ?Options Indexes

? ?AllowOverride AuthConfig

? ?AuthName "Only for employees."

? ?AuthType Basic

? ?AuthUserFile /etc/httpd/conf/.htpass

? ?Require valid-user?? ? ? ?允許所有用戶登陸

</Directory>

重新載入后,當(dāng)用戶訪問(wèn)172.16.4.1/website/htdocs/downloads時(shí),會(huì)提示用戶輸入密碼。

(3)組

? ?組文件:

? ?組名:用戶1?用戶2?用戶3

? ?AuthGroupFile

? ?Require GRP_NAME

15、虛擬主機(jī)?:一個(gè)web程序服務(wù)于多個(gè)站點(diǎn)

虛擬主機(jī)類型:

(1)基于端口的虛擬主機(jī):

(2)基于IP的虛擬主機(jī):

(3)基于主機(jī)名的虛擬主機(jī):

請(qǐng)求報(bào)文首部有一個(gè)Host:,保留了主機(jī)名稱,所有web服務(wù)器收到請(qǐng)求后,能夠看到Host所對(duì)應(yīng)的是哪個(gè)主機(jī),這樣基于主機(jī)名的虛擬主機(jī)才能實(shí)現(xiàn)。

虛擬主機(jī)和主服務(wù)器不能同時(shí)使用:關(guān)閉主服務(wù)器,注釋主服務(wù)器的DocumentRoot即可;

每個(gè)虛擬主機(jī)的定義:

? ?<VirtualHost IP:PORT>

? ? ? ? ServerName

? ? ? ? DocumentRoot ""

? ?</VirutalHost>

(1) 基于端口的虛擬主機(jī)

首先確保監(jiān)聽(tīng)在所要求的端口,然后關(guān)閉主服務(wù)器的DocumentRoot,在配置文件?/etc/httpd/conf/httpd.conf中定義:

? ?<VirtualHost?*:80> ?

? ? ? ? ?ServerName?www.a.com ?可以隨便定義,因?yàn)樗粎^(qū)別主機(jī)名稱

? ? ? ? ?DocumentRoot "/web/host1/"

? ?</VirutalHost>

? ?<VirtualHost?*:8080>

? ? ? ? ?ServerName?www.b.org ?

? ? ? ? ?DocumentRoot "/web/host2/"

? ?</VirutalHost>

? ?配置文件編輯完成。

目錄不存在,所以先要?jiǎng)?chuàng)建mkdir -pv /web/host{1,2}

? ? 然后編輯網(wǎng)頁(yè)內(nèi)容進(jìn)行測(cè)試#vim /web/host1/index.html

? ? ? ? ? ? ? ? ? ? ? ? ? ? ?#vim /web/host2/index.html

重啟服務(wù)。這樣基于端口就可以訪問(wèn)網(wǎng)頁(yè)了。

(2)基于IP的虛擬主機(jī)

例如:

? ?<VirtualHost 172.16.4.180>

? ? ? ? ? ServerName?www.a.com ?

? ? ? ? ? DocumentRoot "/web/host1/"

? ?</VirutalHost>

? ?<VirtualHost 172.16.4.180>

? ? ? ? ? ServerName?www.b.org ?

? ? ? ? ? DocumentRoot "/web/host2/"

? ?</VirutalHost>

編輯網(wǎng)頁(yè)內(nèi)容,重啟服務(wù)。這樣基于ip虛擬主機(jī)就可以訪問(wèn)網(wǎng)頁(yè)了。

(3)基于主機(jī)名的虛擬主機(jī)

httpd-2.2: NameVirtualHost

虛擬主機(jī)單獨(dú)配置:

? ? ?CustomLog

? ? ?ErrorLog

? ? ?<Directory "">

? ? ?</Directory>

? ? ?ScriptAlias /cgi-bin/

? ? ?Alias

#NameVirtualHost *:80修改為NameVirtualHost 172.16.4.1:80

? ? ?<VirtualHost 172.16.4.180>

? ? ? ? ? ? ServerName?www.a.com ?

? ? ? ? ? ? DocumentRoot "/web/host1/"

? ? ?</VirutalHost>

? ? ?<VirtualHost 172.16.4.180>

? ? ? ? ? ? ServerName?www.b.org ?

? ? ? ? ? ? DocumentRoot "/web/host2/"

? ? ?</VirutalHost>

然后service httpd restart

用本機(jī)測(cè)試先要編輯/etc/hosts

172.16.4.1www.a.com??a.com

172.16.4.1?www.b.org?? b.org

安裝elinks包,測(cè)試

#elinks http://www.a.com進(jìn)入交互式模式測(cè)試

#elinks http://www.b.org

#elinks -dump http://www.a.com可以不用進(jìn)入交互式模式測(cè)試

#elinks -dump http://www.b.org





本文轉(zhuǎn)自 宋鵬超 51CTO博客,原文鏈接:http://blog.51cto.com/qidian510/1280123,如需轉(zhuǎn)載請(qǐng)自行聯(lián)系原作者

總結(jié)

以上是生活随笔為你收集整理的HTTP基础及基本配置的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。