1. 程式人生 > 實用技巧 >Apache相關配置

Apache相關配置

上一篇文章 我們記錄了 Apache的整個安裝過程

http://771541213.blog.51cto.com/10810853/1773329


現在我們講解一下 Apache的一些基本配置

a > 基於域名配置虛擬網站

b > 基於IP地址配置

c > 基於不同埠配置

d > 禁止列表網站的目錄結構(危險)

e > 日誌輪詢配置 基於cronlog外掛

f > httpd.conf擴充套件配置

g >啟動FQDN問題

h > 隱藏apache版本 執行作業系統等資訊


A.基於域名配置虛擬網站

1.先要開啟apache擴充套件相關配置 把前面的 # 去掉

wKioL1c5JsjjauxZAAAEtb4a4pM518.png

2.編輯/application/apache/conf/extra/httpd-vhosts.conf

[[email protected]extra]#pwd
/application/apache/conf/extra
[[email protected]extra]#vimhttpd-vhosts.conf

3.在httpd-vhosts.conf把內容修改成以下這樣

NameVirtualHost*:80

<VirtualHost*:80>
ServerAdmin[email protected]
DocumentRoot"/var/html/zsphp"
ServerNamewww.zsphp.com
ServerAliaszsphp.com
ErrorLog"logs/dummy-host.example.com-error_log"
CustomLog"logs/dummy-host.example.com-access_log"common
</VirtualHost>

4.在主配置檔案httpd-conf裡面新增一個節點許可權配置 針對 /var/html/

如果不對目錄進行配置訪問相應許可權 可能會報403錯誤資訊

<Directory"/var/html">
OptionsFollowSymLinks
AllowOverrideNone
Orderallow,deny
Allowfromall
</Directory>

5.配置本地hosts解析 進入測試連線....

127.0.0.1oldboyLinux
::1oldboyLinux
172.16.30.10www.zsphp.com

6.利用curl模擬請求一下

[[email protected]
conf]#curl-Iwww.zsphp.com HTTP/1.1200OK Date:Sun,08May201601:51:13GMT Server:Apache/2.2.31(Unix)DAV/2 Last-Modified:Sun,08May201601:05:01GMT ETag:"bf574-e-5324a4809509e" Accept-Ranges:bytes Content-Length:14 Content-Type:text/html

現在你可以利用瀏覽器進行訪問 不過也要配置一下本地 hosts解析到這臺伺服器

如果不能訪問 請關閉防火牆和SELinux




B.基於IP地址進行配置相關不同主機

1.給伺服器新增不同的IP地址

以下只是在命令列臨時生效 重起網絡卡就失效了....

[[email protected]~]#ifconfigeth0:1172.16.30.11/16
[[email protected]~]#ifconfigeth0:2172.16.30.12/16
[[email protected]~]#ifconfig
eth0Linkencap:EthernetHWaddr00:0C:29:3E:D0:64
inetaddr:172.16.30.10Bcast:172.16.255.255Mask:255.255.0.0
inet6addr:fe80::20c:29ff:fe3e:d064/64Scope:Link
UPBROADCASTRUNNINGMULTICASTMTU:1500Metric:1
RXpackets:17823errors:0dropped:0overruns:0frame:0
TXpackets:12887errors:0dropped:0overruns:0carrier:0
collisions:0txqueuelen:1000
RXbytes:14481492(13.8MiB)TXbytes:1799771(1.7MiB)

eth0:1Linkencap:EthernetHWaddr00:0C:29:3E:D0:64
inetaddr:172.16.30.11Bcast:172.16.255.255Mask:255.255.0.0
UPBROADCASTRUNNINGMULTICASTMTU:1500Metric:1

eth0:2Linkencap:EthernetHWaddr00:0C:29:3E:D0:64
inetaddr:172.16.30.12Bcast:172.16.255.255Mask:255.255.0.0
UPBROADCASTRUNNINGMULTICASTMTU:1500Metric:1

loLinkencap:LocalLoopback
inetaddr:127.0.0.1Mask:255.0.0.0
inet6addr:::1/128Scope:Host
UPLOOPBACKRUNNINGMTU:16436Metric:1
RXpackets:103errors:0dropped:0overruns:0frame:0
TXpackets:103errors:0dropped:0overruns:0carrier:0
collisions:0txqueuelen:0
RXbytes:8780(8.5KiB)TXbytes:8780(8.5KiB)

刪除多餘網絡卡命令

[[email protected]~]#ipaddrdel172.16.30.11deveth0

2.編輯httpd-vhosts.conf

NameVirtualHost 名稱虛擬主機

基於IP地址配置 要把#NameVirtualHost *:80 註釋或者刪除掉

<VirtualHost172.16.30.11:80>
ServerAdmin[email protected]
DocumentRoot"/var/html/web11"
ServerName172.16.30.11
ErrorLog"logs/dummy-host.example.com-error_log"
CustomLog"logs/dummy-host.example.com-access_log"common
</VirtualHost>

<VirtualHost172.16.30.12:80>
ServerAdmin[email protected]
DocumentRoot"/var/html/web12"
ServerName172.16.30.12
ErrorLog"logs/dummy-host.example.com-error_log"
CustomLog"logs/dummy-host.example.com-access_log"common
</VirtualHost>


3.重起apache服務

[[email protected]extra]#/application/apache2.2.27/bin/apachectlgraceful

4.利用curl請求 172.16.30.11 172.16.30.12

[[email protected]extra]#curl172.16.30.11
<h1>172.16.30.11</h1>
[[email protected]extra]#curl172.16.30.12
<h1>172.16.30.12</h1>


C.基於不同訪問埠進行訪問

1.編輯主配置檔案vim httpd.conf 在主配置檔案裡面新增 兩個監聽埠

[[email protected]conf]#pwd
/application/apache/conf
[[email protected]conf]#vimhttpd.conf
#Listen12.34.56.78:80
Listen80
Listen8080
Listen8090

2.編輯擴充套件配置檔案httpd-vhosts.conf

NameVirtualHost*:80
NameVirtualHost*:8080
NameVirtualHost*:8090

<VirtualHost*:80>
ServerAdmin[email protected]
DocumentRoot"/var/html/zsphp"
ErrorLog"logs/dummy-host.example.com-error_log"
CustomLog"logs/dummy-host.example.com-access_log"common
</VirtualHost>

<VirtualHost*:8080>
ServerAdmin[email protected]
DocumentRoot"/var/html/web12"
ErrorLog"logs/dummy-host.example.com-error_log"
CustomLog"logs/dummy-host.example.com-access_log"common
</VirtualHost>

<VirtualHost*:8090>
ServerAdmin[email protected]
DocumentRoot"/var/html/web12"
ErrorLog"logs/dummy-host.example.com-error_log"
CustomLog"logs/dummy-host.example.com-access_log"common
</VirtualHost>

3.儲存 重起 apache服務

[[email protected]extra]#/application/apache2.2.27/bin/apachectlgraceful

4.利用curl模擬請求 127.0.0.1 127.0.0.1:8080 127.0.0.1:8090

[[email protected]extra]#curl127.0.0.1
www.zsphp.com
[[email protected]extra]#curl127.0.0.1:8080
<h1>172.16.30.11</h1>
[[email protected]extra]#curl127.0.0.1:8090
<h1>172.16.30.12</h1>



D.禁止伺服器列表網站的目錄結構 注意此行為比較危險 務必要關閉

如果網站沒有預設檔案的話 apache會幫你列表出所有目錄結構和檔案

此時網站有很大危險 全部暴露給***檢視.....

wKiom1c5RbyzwYW6AABP9WdZIh8138.png

解決它吧!!!!!!!!!!! 騷年

編輯主配置檔案

[[email protected]~]#vim/application/apache2.2.27/conf/httpd.conf

wKiom1c5R1nSyyvnAAA0cGcWqhA734.png


<Directory"/application/apache2.2.27/htdocs">
OptionsFollowSymLinks
AllowOverrideNone
Orderallow,deny
Allowfromall
</Directory>



E.切割apache日誌,軟詢日誌

apache的配置在預設情況下 都是把所有的請求日誌存放到 logs/access_log裡面

極大不方便運維人員檢視 分析網站的執行情況

現在我們按每一天來存放日誌 一天一個日誌檔案

藉助於外掛cronolog


1.下載cronolog日誌外掛

官方地址:http://cronolog.org/download/cronolog-1.6.2.tar.gz有時候不能下載

其它地址:http://down1.chinaunix.net/distfiles/cronolog-1.6.2.tar.gz

[[email protected]tools]#wgethttp://down1.chinaunix.net/distfiles/cronolog-1.6.2.tar.gz
--2016-05-0814:38:55--http://down1.chinaunix.net/distfiles/cronolog-1.6.2.tar.gz
Resolvingdown1.chinaunix.net...61.55.167.132

2.解壓 編譯 安裝 cronolog軟體

[[email protected]tools]#tarxfcronolog-1.6.2.tar.gz
[[email protected]tools]#cdcronolog-1.6.2
[[email protected]cronolog-1.6.2]#./configure
[[email protected]cronolog-1.6.2]#pwd
/root/tools/cronolog-1.6.2
[[email protected]cronolog-1.6.2]#make&&makeinstall
[[email protected]~]#whereis-bcronolog
cronolog:/usr/local/sbin/cronolog
[[email protected]~]#whichcronolog
/usr/local/sbin/cronolog

3.建立每一個虛擬主機日誌存放目錄

以zsphp這個網站為例

我們就到這裡來建立一個目錄專門用來存放 zsphp 這個網站的訪問日誌

/application/logs/zsphp

[[email protected]~]#mkdir-p/application/logs/zsphp

4.自定義配置日誌 編輯擴充套件配置檔案httpd-vhosts.conf

<VirtualHost*:80>
ServerAdmin[email protected]
DocumentRoot"/var/html/www"
ServerNamewww.zsphp.com
ErrorLog"logs/dummy-host.example.com-error_log"
#CustomLog"logs/dummy-host.example.com-access_log"common
CustomLog"|/usr/local/sbin/cronolog/application/logs/zsphp/access_%Y_%m_%d.log"combined
</VirtualHost>

5.檢查 監控

[[email protected]zsphp]#pwd
/application/logs/zsphp
[[email protected]zsphp]#ll
total4
-rw-r--r--.1rootroot185May814:50access_2016_05_08.log
[[email protected]zsphp]#tail-faccess_2016_05_08.log
172.16.10.117--[08/May/2016:14:50:58+0800]"GET/HTTP/1.1"304....

F.httpd.conf擴充套件配置

如果我們要啟用擴充套件配置檔案

我們就要在主配置檔案裡面開啟相對應的設定

假如現在 我要自定義配置網站httpd-vhosts.conf

假如現在 我要引入httpd-default.conf 配置

假如現在 我要引入httpd-mpm.conf 配置

解決方案是:修改主配置檔案 httpd.conf 就可以了

把前面 # 去掉就可以成功引入擴充套件配置

wKiom1c5comgmW3hAAAqvhpVzgc947.png



G.啟動FQDN問題 (開啟 重新啟動 停止執行) 都是遇見它

[[email protected]apache2.2.27]#apachectlrestart
..theserver'sfullyqualifieddomainname,using::1forServerName
[[email protected]apache2.2.27]#apachectlstop
..theserver'sfullyqualifieddomainname,using::1forServerName
[[email protected]apache2.2.27]#apachectlstart
..theserver'sfullyqualifieddomainname,using::1forServerName


解決方案 vi httpd.conf 儲存 重新啟動就不會有了.....

wKioL1c5dUqiOwpDAAAdPDyH9e8563.png




H.隱藏apache版本 執行作業系統等資訊

[[email protected]conf]#curl-I127.0.0.1
HTTP/1.1200OK
Date:Sun,08May201607:08:54GMT
Server:Apache/2.2.31(Unix)DAV/2
Last-Modified:Sun,08May201606:17:10GMT
ETag:"bf57a-6-5324ea45e177d"
Accept-Ranges:bytes
Content-Length:6
Content-Type:text/html

從上面伺服器作出響應的結果中 我們可以看伺服器是使用 apache做來伺服器軟體

版本是:2.2.31 作業系統是 Unix

這個時候 我們要優化 讓別人看到你們的是其它的資訊 如 tomcat IIS 等資訊

如何來做........


第一種方法:在下載httpd-2.2.31.tar.gz 這個軟體的時候 修改裡面的原始碼

[[email protected]include]#pwd
/root/tools/httpd-2.2.31/include
[[email protected]include]#vimap_release.h

wKioL1c5gHbxTWZaAAA0K1P0rsk940.png


編輯另一個檔案 os.h

[[email protected]unix]#pwd
/root/tools/httpd-2.2.31/os/unix
[[email protected]unix]#vimos.h

wKioL1c5gPmR1TCIAAAEljgFTEk369.png

[[email protected]~]#curl-I127.0.0.1
HTTP/1.1200OK
Date:Sun,08May201607:56:51GMT
Server:IIS/8.0.0(Microsoft)DAV/2
Last-Modified:Sat,20Nov200420:16:24GMT
ETag:"1ff10-2c-3e9564c23b600"
Accept-Ranges:bytes
Content-Length:44
Content-Type:text/html

第二種方法:是成功安裝了 但是想隱藏相關資訊

編輯擴充套件:vim httpd-default.conf

wKiom1c5g7aw2WQEAAAZqrYm-DA343.png


將httpd-default.conf 加入主配置檔案裡面


轉載於:https://blog.51cto.com/771541213/1773786