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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

Linux服务之httpd基本配置详解

發布時間:2025/3/8 linux 44 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Linux服务之httpd基本配置详解 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

? ?當今主流的開源Web服務器軟件有httpd(Apache),lighttpd,nginx,thttpd等,而httpd是迄今為止使用量多的web服務器,據統計目前httpd的全球占有量是47%左右,雖然有所下降但是使用兩仍然是最多的,統計web服務器使用率的網站是:http://news.netcraft.com/

好了廢話不多說,還是來介紹一下httpd的一些基本配置吧!

一、基本介紹

1、版本

httpd-1.3

httpd-2.0

httpd-2.2

httpd-2.4

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

2、模型:

高度模塊化:DSO

MPM:Multipath Processing Module ? ?#多處理模塊

prefork:一次一個進程響應一個請求

? ?worker:一個進程生成多個線程,一個線程響應一個請求

? ?event:基于事件驅動,一個進程響應多個請求

3、安裝

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

yum install httpd

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

? ?服務腳本:/etc/rc.d/init.d/httpd

? ?運行目錄:/etc/httpd/

? ?配置文件:/etc/httpd/conf

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

? ? ? ?擴展配置:/etc/httpd/conf.d/*.conf

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

? ?網頁文件目錄(DocumentRoot):/var/www/html

? ?CGI:/var/www/cgi-bin/

? ?默認主頁面文件:/var/www/html/index.html

5、主配置文件結構

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

? ?主服務器配置:主站屬性

? ?虛擬服務器:虛擬主機及屬性定義

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

? ?所使用的

service httpd configtest #測試配置文件有沒有語法錯誤 httpd -t #同上 httpd -l #當前服務器所使用的模型及開啟模塊 httpd -D DUMP_MODULES #當前服務器支持的模塊 service httpd reload #重新加載配置文件 service httpd restart #重啟httpd服務

注意:修改配置文件后要重新加載配置文件,修改服務器監聽端口后要重啟服務

二、基本配置

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

1、配置監聽的端口:

? ?Listen [IP:]PORT

例如:Listen 172.16.3.1:80

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

安裝完默認使用prefork模型

<IfModule prefork.c> StartServers 8 #服務啟動后默認開啟的進程數 MinSpareServers 5 #最少空閑進程數 MaxSpareServers 20 #最多空閑進程數 ServerLimit 256 #每個進程允許開啟最多的子進程數 MaxClients 256 #每個進程最多用戶鏈接數 MaxRequestsPerChild 4000 #長連接時每個用戶最多請求數 </IfModule>

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

HTTPD=/usr/sbin/httpd.worker

<IfModule worker.c> StartServers 4 #服務啟動默認開啟的進程數 MaxClients 300 #最多同時客戶連接數 MinSpareThreads 25 #最少空閑進程數 MaxSpareThreads 75 #最好空閑進程數 ThreadsPerChild 25 #每個進程開啟的線程數 MaxRequestsPerChild 0 </IfModule>

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

KeepAlive {On|Off} #是否支持長連接 KeepAliveTimeout 2 #長連接超時時間 MaxKeepAliveRequests 50 #超時時間內允許請求的次數

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、配置網站根目錄

DocumentRoot "/var/www/html" #指定網站的主目錄 <Directory "/var/www/html"> #容器內定義站點的訪問權限 </Directory> <Location "URL"> #容器內限定用戶的訪問方法 </Location>

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

<Directory "/var/www/html">OptionsIndexes #是否允許索引頁面文件,建議關閉FollowSymLinks #是否跟隨軟連接文件SymLinksifOwnerMatch #跟隨符號鏈接,只允許訪問運行apache的用戶有屬主權限的文件ExecCGI: #是否允許執行CGI腳本;AllNone </Directory>

7、基于客戶端訪問控制

系統默認允許所有人訪問 <Directory "/var/www/html"> Order #定義allow和deny那個為默認法則;寫在后面的為默認法則:寫在前面的指令沒有顯示定義的即受后面的指令控制: Order allow,deny Allow from all #所有人可以訪問 </Directory> 配置允許172.16.0.0/16訪問,但不允許172.16.3.1訪問 <Directory "/var/www/html"> Order allow,deny Deny from 172.16.3.1 #禁用一個IP訪問 Allow from 172.16.0.0/16 #允許一個網段訪問 </Directory>

8、userdir個人站點

<IfModule mod_userdir.c># UserDir is disabled by default since it can confirm the presence# of a username on the system (depending on home directory# permissions).##UserDir disabled #注釋此項## 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 #開啟此項 </IfModule>

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

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

9、定義默認主頁

DirectoryIndex index.php index.jsp index.html

10、配置日志功能

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

錯誤日志: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 #主機名 %l # %u #用戶名 %t #請求到達的時間 %r #請求報文的起始行,方法 %s # %b #響應報文的大小 %{Foobar}i #顯示從發那個站點跳轉過來 %{User-Agent}i #用戶代理

11、支持的字符集

AddDefaultCharset UTF-8

12、路徑別名

可以隱藏網站的真實目錄,

Alias /test/ "/www/test/" #配置別名 <Directory "/www/test"> #可以給別名目錄定義訪問權限Options NoneAllowOverride NoneOrder allow,denyAllow from 172.16.0.0/16 </Directory>

13、腳本路徑別名

調用服務器上的腳本程序,但不希望腳本放在網站的目錄下

ScriptAlias /cgi-bin/ "/www/cgi-bin/" #定義cgi腳本路徑別名 # vi /wwww/cgi-bin/test.sh #寫一個測試腳本 #!/bin/bash #cat << EOF Content-Type:text/html#這里要有一個空行否則可能會測試不成功 <pre> The hostname is: `hostname`. #輸出當前系統的主機名 The timeis: `date`. #顯示時間 </pre> EOF

測試:顯示的是腳本執行后的結果

14、基于用戶訪問控制

當你的網站或者站點的某個路徑只想讓你授權的用戶訪問時,就可以使用基于用戶的訪問控制

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

htpasswd-c #第一次使用-c創建新文件,不是第一次不要使用此選項-m #用戶密碼使用MD5加密后存放-s #用戶密碼使用SHA加密后存放-p #用戶密碼不加密-d #禁用一個賬戶-e #啟用一個賬戶 例如: # htpasswd -c -m /etc/httpd/conf/.htpass tom命令 選項 生成的用戶文件路徑及文件名 用戶名 # htpasswd -m /etc/httpd/conf/.htpass jerry # 再次添加用戶時就不要使用-c選項了,否則會覆蓋之前內容先生成

(1)建立用戶帳號文件

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

(2)修改主配置文件

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

DocumentRoot "/www/html" #此時網站根目錄就是/www/html <Directory "/www/html"> Optins Indexes AllowOverride AuthConfig AuthName "Oaly for employees." #登錄提示信息,可自定義 AuthType Basic #認證方式 AuthUserFile /etc/httpd/conf/.htpass #用戶帳號文件 Require valid-user #允許的用戶

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

15、配置虛擬主機

(1)注釋主服務器,添加虛擬主機

# DocumentRoot "/www/html" #注釋主服務器 NameVirtualHost 172.16.3.1:80 #開啟虛擬主機 <VirtualHost 172.16.3.1:80>DocumentRoot /www/web1 #虛擬主機的網站根目錄ServerName web1.lyd.com #主機名 </VirtualHost> <VirtualHost 172.16.3.1:80>DocumentRoot /www/web2ServerName web2.lyd.com </VirtualHost>

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

mkdir /www/web{1,2} echo web1.lyd.com > /www/web1/index.html echo web2.lyd.com > /www/web2/index.html

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

(4)重啟服務 service httpd restart

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

windows客戶端

開始-->運行-->輸入"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)生成證書申請

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

(5)ca簽署證書

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

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

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

<VirtualHost 172.16.3.1:443> DocumentRoot "/www/web1" ServerName www.lyd.com SSLCertificateFile /etc/httpd/conf/ssl/httpd.crt SSLCertificateKeyFile /etc/httpd/conf/ssl/httpd.key

(7)將ca證書導入到客戶端可信任證書服務器,并驗證


常用的配置基本就這些了,如有疏漏或錯誤之處,歡迎大家批評指正!

轉載于:https://blog.51cto.com/liyandong/1282225

總結

以上是生活随笔為你收集整理的Linux服务之httpd基本配置详解的全部內容,希望文章能夠幫你解決所遇到的問題。

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