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擴充套件相關配置 把前面的 # 去掉
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會幫你列表出所有目錄結構和檔案
此時網站有很大危險 全部暴露給***檢視.....
解決它吧!!!!!!!!!!! 騷年
編輯主配置檔案
[[email protected]~]#vim/application/apache2.2.27/conf/httpd.conf
<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 就可以了
把前面 # 去掉就可以成功引入擴充套件配置
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 儲存 重新啟動就不會有了.....
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
編輯另一個檔案 os.h
[[email protected]unix]#pwd /root/tools/httpd-2.2.31/os/unix [[email protected]unix]#vimos.h
[[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
將httpd-default.conf 加入主配置檔案裡面
轉載於:https://blog.51cto.com/771541213/1773786