日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Web服务器 - Apache配置介绍

發布時間:2023/12/4 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Web服务器 - Apache配置介绍 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

基本語法

常量的定義與使用,使用關鍵詞 Define 可以定義常量,使用 ${} 插入常量,如下

語法規則說明示列
Define定義常量Define SRVROOT “D:/srv/Apache24”
${}使用常量ServerRoot “${SRVROOT}”
/表示路徑時使用 / 而不使用 \D:/srv/Apache24

基本配置

配置參數配置說明示列
ServerRootApache運行目錄ServerRoot “D:/Apache24”
Listen監聽端口Listen 80
LoadModule加載模塊LoadModule 模塊名 模塊文件
ServerAdmin管理員的郵箱,服務器出現問題時,會在頁面中顯示ServerAdmin admin@example.com
ServerName服務器解析域名ServerName www.example.com
ServerAlias域名別名,配置多域名解析時使用ServerName api.example.com
DocumentRoot網站根目錄DocumentRoot “${SRVROOT}/htdocs”
DirectoryIndex網站自動執行文件,默認文件DirectoryIndex index.php index.html
ErrorLog錯誤日志ErrorLog “logs/error.log”
CustomLog設定日志的文件名和格式CustomLog “logs/access.log” common
LogLevel錯誤提示等級LogLevel warn
Include包含其他的配置文件,支持通配符 *Include conf/vhosts/*.conf
Alias使客戶端可以訪問到DocumentRoot以外的本地文件Alias /myphoto “E:/照片”
ScriptAlias映射一個URL到文件系統并視之為CGI腳本目錄ScriptAlias /cgi-bin/ “D:/wamp/bin/Apache2.4.23/cgi-bin”
DefaultType當服務器無法確定一個文檔的內容類型時發送的默認MIME內容類型DefaultType text/plain
AddType為特定后綴的文件指定MIME類型,這里的設置將覆蓋mime.types中的設置AddType application/x-httpd-php .php .html .htm (前導點可帶可不帶)
ErrorDocument當遇到錯誤的時候服務器將給客戶端什么樣的應答。 語法:ErrorDocument error-code document 其中error-code時服務器返回的錯誤代碼,document是回應的數據,可以是簡單的文本,本地網頁,本地CGI程序,或遠程主機上的網頁ErrorDocument 500 “The server made a boo boo.”
EnableMMAPhttpd在遞送中如果需要讀取一個文件的內容,是否可以使用內存映射
EnableSendfile控制httpd是否可以使用操作系統內核的sendfile支持來將文件發送到戶端EnableSendfile Off

容器設置

所有的容器都是成對出現的,和html的標簽一樣

< IfModule >容器

封裝一組指令,并根據指定的模塊是否啟用決定是否進行處理

使用 <IfModule 模塊名> 或 <IfModule !模塊名> 判斷模塊是否載入<IfModule module_name>當模塊module_name加載時執行里面的內容 </IfModule><IfModule !module_name>當模塊module_name沒有加載時執行里面的內容 </IfModule>
< IfDefine >容器

封裝一組指令,只有在啟動時啟動參數測試結果為真時才生效

<IfDefine parameter-name> 或 <IfDefine !parameter-name> parameter-name是在服務啟動時,通過httpd命令行的 -D parameter 這樣的形式指定的, 例如 httpd -D Proxy使用方式與<IfModule>一致
< Directory > 與 < DirectoryMatch > 容器

封裝一組指令,在指定的目錄以及其子目錄中生效,這個目錄必需時一個完整的目錄

使用通配符 “"、"?" 匹配目錄,也可以使用 “[]” 來確定字符范圍,不過無論是"”、"?" , 還是 “[]” 都不能匹配 “/”

<Directory /srv/apache*/>AllowOverride noneRequire all denied </Directory>

也可以在表達式前使用"~"表示使用正則表達式

<Directory ~"^/srv/apache[0-9]{2}/">AllowOverride noneRequire all denied </Directory>

< DirectoryMatch >的使用方式與與< Directory >一致,區別時可以直接接受正則表達式,而無須加上"~"

< Files > 與 < FilesMatch > 容器

與< Directory >容器作用于目錄相對應,< Files >容器只作用于文件,使用方法一致

<Files ~"^\.html">Order Deny,AllowAllow from All </Files>
< Location >與< LocationMatch >容器

對URL進行訪問控制;使用方法與上述幾個容器一致。

指令設置

Options:控制在特定目錄中將使用哪些服務器特性
參數說明
Indexes若訪問目錄下無index文件,則準許顯示該目錄下的文件列表以供選擇。
FollowSymLinks準許在目錄中使用符號鏈接到其他目錄。
MultiViews準許內容協商的“多重視圖”。如果客戶端請求的路徑可能對應多種類型的文件,服務器將根據客戶端請求的具體情況自動選擇一個最匹配客戶端要求的文件。例如只在地址欄輸入index也可以訪問到index.php頁面。
Includes準許SSI。
IncludesNOEXEC準許SSI,但不可使用exec和include功能。
ExecCGI準許在該目錄下使用CGI。
All表示除了MultiViews之外的所有特性。
None表示不啟用任何的服務器特性。

注意:如果一個目錄被多次設置了options,則最特殊的一個會被完全接受。

AllowOverrid:是否準許文件“.htaccess”中設定的權限覆蓋文件中設定的權限
參數說明
All準許覆蓋
None不準許覆蓋
AuthConfig允許使用與認證授權相關的指令。
FileInfo允許使用控制文檔類型的指令、控制文檔元數據的指令、mod_rewrite中的指令、mod_actions中的Action指令。
Indexs允許使用控制目錄索引的指令。
Limit允許使用控制主機訪問的指令。
控制訪問狀態

apache2.2 和 apache2.4 的配置方式不一樣,2.2使用order+allow/deny,2.4使用Require語句來配置

apache2.2

Order:控制默認的訪問狀態和allow、deny指令生效的順序

參數說明
allow允許訪問。
deny拒絕訪問。

這兩個參數由最后一個出現的參數決定,如“Order allow,deny”默認拒絕了所有的意思(中間有且只有一個逗號),但最終的判斷結果還要總下面的allow、deny語句中各自所包含的范圍(如果有的話),這兩個語句后面都一定接著“from”,否則Apache會無法啟動。“Order allow,deny”表示先判斷allow語句再判斷deny語句。

# 拒絕所有請求 Order deny,allow deny from all# 允許所有請求 Order allow,deny allow from all# 只允許某個特定IP的訪問 Order deny,allow deny from all allow xxx.xxx.xxx.xxx
apache2.4
# 拒絕所有請求 Require all denied# 允許所有請求 Require all granted# 只允許某個特定IP的訪問 Require host xxx.xxx.xxx.xxx

總結

以上是生活随笔為你收集整理的Web服务器 - Apache配置介绍的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。