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

[root@oldboyLinux extra]# pwd
/application/apache/conf/extra
[root@oldboyLinux extra]# vim httpd-vhosts.conf

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

NameVirtualHost *:80

<VirtualHost *:80>
    ServerAdmin [email protected]
    DocumentRoot "/var/html/zsphp"
    ServerName www.zsphp.com
    ServerAlias zsphp.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">
        Options FollowSymLinks
        AllowOverride None
        Order allow,deny
        Allow from all
</Directory>

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

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

6.利用curl模擬請求一下

[root@oldboyLinux conf]# curl -I www.zsphp.com
HTTP/1.1 200 OK
Date: Sun, 08 May 2016 01:51:13 GMT
Server: Apache/2.2.31 (Unix) DAV/2
Last-Modified: Sun, 08 May 2016 01:05:01 GMT
ETag: "bf574-e-5324a4809509e"
Accept-Ranges: bytes
Content-Length: 14
Content-Type: text/html

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

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




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

 

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

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

[root@oldboyLinux ~]# ifconfig eth0:1 172.16.30.11/16
[root@oldboyLinux ~]# ifconfig eth0:2 172.16.30.12/16
[root@oldboyLinux ~]# ifconfig 
eth0      Link encap:Ethernet  HWaddr 00:0C:29:3E:D0:64  
          inet addr:172.16.30.10  Bcast:172.16.255.255  Mask:255.255.0.0
          inet6 addr: fe80::20c:29ff:fe3e:d064/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:17823 errors:0 dropped:0 overruns:0 frame:0
          TX packets:12887 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:14481492 (13.8 MiB)  TX bytes:1799771 (1.7 MiB)

eth0:1    Link encap:Ethernet  HWaddr 00:0C:29:3E:D0:64  
          inet addr:172.16.30.11  Bcast:172.16.255.255  Mask:255.255.0.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1

eth0:2    Link encap:Ethernet  HWaddr 00:0C:29:3E:D0:64  
          inet addr:172.16.30.12  Bcast:172.16.255.255  Mask:255.255.0.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:103 errors:0 dropped:0 overruns:0 frame:0
          TX packets:103 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:8780 (8.5 KiB)  TX bytes:8780 (8.5 KiB)

 刪除多餘網卡命令

[root@oldboyLinux ~]# ip addr del 172.16.30.11 dev eth0

2.編輯 httpd-vhosts.conf

 NameVirtualHost 名稱虛擬主機

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

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

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


3.重起apache服務

[root@oldboyLinux extra]# /application/apache2.2.27/bin/apachectl graceful

4.利用curl請求 172.16.30.11 172.16.30.12

[root@oldboyLinux extra]# curl 172.16.30.11
<h1>172.16.30.11</h1>
[root@oldboyLinux extra]# curl 172.16.30.12
<h1>172.16.30.12</h1>


C.基於不同訪問端口進行訪問

  1.編輯主配置文件 vim httpd.conf 在主配置文件裏面添加 兩個監聽端口

[root@oldboyLinux conf]# pwd
/application/apache/conf
[root@oldboyLinux conf]# vim httpd.conf
#Listen 12.34.56.78:80
Listen 80
Listen 8080
Listen 8090

 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服務

[root@oldboyLinux extra]# /application/apache2.2.27/bin/apachectl graceful

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

[root@oldboyLinux extra]# curl 127.0.0.1
www.zsphp.com
[root@oldboyLinux extra]# curl 127.0.0.1:8080
<h1>172.16.30.11</h1>
[root@oldboyLinux extra]# curl 127.0.0.1:8090
<h1>172.16.30.12</h1>



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

如果網站沒有默認文件的話 apache會幫你列表出所有目錄結構和文件

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

wKiom1c5RbyzwYW6AABP9WdZIh8138.png

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

編輯主配置文件

[root@oldboyLinux ~]# vim /application/apache2.2.27/conf/httpd.conf

wKiom1c5R1nSyyvnAAA0cGcWqhA734.png


<Directory "/application/apache2.2.27/htdocs">
    Options FollowSymLinks
    AllowOverride None
    Order allow,deny
    Allow from all
</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

[root@oldboyLinux tools]# wget http://down1.chinaunix.net/distfiles/cronolog-1.6.2.tar.gz
--2016-05-08 14:38:55--  http://down1.chinaunix.net/distfiles/cronolog-1.6.2.tar.gz
Resolving down1.chinaunix.net... 61.55.167.132

 2.解壓 編譯 安裝 cronolog軟件

[root@oldboyLinux tools]# tar xf cronolog-1.6.2.tar.gz
[root@oldboyLinux tools]# cd cronolog-1.6.2
[root@oldboyLinux cronolog-1.6.2]# ./configure
[root@oldboyLinux cronolog-1.6.2]# pwd
/root/tools/cronolog-1.6.2
[root@oldboyLinux cronolog-1.6.2]# make && make install
[root@oldboyLinux ~]# whereis -b cronolog
cronolog: /usr/local/sbin/cronolog
[root@oldboyLinux ~]# which cronolog
/usr/local/sbin/cronolog

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

  以zsphp這個網站爲例

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

  /application/logs/zsphp

[root@oldboyLinux ~]# mkdir -p /application/logs/zsphp

 4.自定義配置日誌 編輯擴展配置文件 httpd-vhosts.conf

<VirtualHost *:80>
    ServerAdmin [email protected]
    DocumentRoot "/var/html/www"
    ServerName www.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.檢查 監控

[root@oldboyLinux zsphp]# pwd
/application/logs/zsphp
[root@oldboyLinux zsphp]# ll
total 4
-rw-r--r--. 1 root root 185 May  8 14:50 access_2016_05_08.log
[root@oldboyLinux zsphp]# tail -f access_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問題 (開啓 重新啓動 停止運行) 都是遇見它

[root@oldboyLinux apache2.2.27]# apachectl restart
..the server's fully qualified domain name, using ::1 for ServerName
[root@oldboyLinux apache2.2.27]# apachectl stop
..the server's fully qualified domain name, using ::1 for ServerName
[root@oldboyLinux apache2.2.27]# apachectl start
..the server's fully qualified domain name, using ::1 for ServerName


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

 wKioL1c5dUqiOwpDAAAdPDyH9e8563.png




H.隱藏apache版本 運行操作系統等信息

[root@oldboyLinux conf]# curl -I 127.0.0.1 
HTTP/1.1 200 OK
Date: Sun, 08 May 2016 07:08:54 GMT
Server: Apache/2.2.31 (Unix) DAV/2   
Last-Modified: Sun, 08 May 2016 06:17:10 GMT
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 這個軟件的時候  修改裏面的源代碼

[root@oldboyLinux include]# pwd
/root/tools/httpd-2.2.31/include
[root@oldboyLinux include]# vim ap_release.h

wKioL1c5gHbxTWZaAAA0K1P0rsk940.png


 編輯另一個文件 os.h

[root@oldboyLinux unix]# pwd
/root/tools/httpd-2.2.31/os/unix
[root@oldboyLinux unix]# vim os.h

wKioL1c5gPmR1TCIAAAEljgFTEk369.png

[root@oldboyLinux ~]# curl -I 127.0.0.1
HTTP/1.1 200 OK
Date: Sun, 08 May 2016 07:56:51 GMT
Server: IIS/8.0.0 (Microsoft) DAV/2
Last-Modified: Sat, 20 Nov 2004 20:16:24 GMT
ETag: "1ff10-2c-3e9564c23b600"
Accept-Ranges: bytes
Content-Length: 44
Content-Type: text/html

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

編輯擴展:vim httpd-default.conf

wKiom1c5g7aw2WQEAAAZqrYm-DA343.png


將 httpd-default.conf 加入主配置文件裏面


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章