Apache服務簡介 HTTP Server(簡稱Apache)是Apache軟件基金會的一個開放源碼的網頁服務器,可以在大多數計算機操作系統中運行,由於其多平臺和安全性被廣泛使用,是最流行的WEB服務器端軟件之一。它快速、可靠並且可通過簡單的API擴展,將Perl/Python等解釋器編譯到服務器中。相關模塊1.SSO Module – LemonLDAP LemonLdap 是 Apache 的一個實現瞭 Web SSO 的模塊,可處理超過 20 萬的用戶。2.並發限制模塊 – limitipconnlimitipconn 是一個 Apache 的模塊,用來限制每個 IP 的並發連接數。支持 Apache 1.x 和 2.x。3.日志監控模塊Apache Live Log 是一個 Perl 編寫的模塊,可以在瀏覽器上直接實時的通過 Ajax 技術瀏覽和監控 Apache 的 日志文件。4.負載均衡模塊mod_backhand 是一個Apache 的負載平衡模塊 。它定義瞭每個請求的HTTP重定向在一個異構的Apache服務器群集。每個請求的處理,並貫穿瞭一套“候選人的職能” ,以確定哪些服務器是最適合的回應。請求然後代理到該服務器。設施已到位,讓你寫您自己的動態加載決策算法。一切有關的要求和當前可用的資源可用於決策過 程。5.圖像處理模塊mod_gfx 是一個對圖像進行即時處理的 Apache 模塊,提供很多靈活的接口,包括:ResizingResamplingWatermarkingCropping以後還將添加如下功能:Add TextRotateDraw Polygons6. 壓縮模塊mod-gzip-disk 是一個使用磁盤進行存儲預壓縮頁面的 Apache 模塊,與 mod-gzip 不同的是不需要每次請求的時候重新壓縮。使用方法:gunzip -c mod_gzip_disk-0.5.tar.gz | tar -xvpf -cd mod_gzip_disksudo make module7. 音樂模塊mod_musicindex 是一個 Apache 用來處理音頻文件的模塊,類似 Perl 的 Apache::MP3,支持音頻格式包括:MP3, Ogg Vorbis, FLAC, or MP4 / AAC ,可根據不同的音頻屬性進行排序列表、在線播放、下載、構建播放列表和搜索等,提供 RSS 和 Podcast 輸出,支持多 CSS 和包下載。8.LDAP 認證模塊LDAP 是輕量級目錄訪問協議,基於 X.500 標準,但更簡單,並可根據需要進行定制。mod_psldap 是 Apache 用來執行 LDAP 認證和授權的模塊。同時可通過 Web 界面進行簡單的 LDAP 管理9.帶寬限制模塊mod_cband 是一個用來限制請求占用帶寬的 Apache 模塊。10.CGI V8 引擎包v8cgi 是一個很小的 C ++ 和 JS 文件集合,允許開發者在服務器端使用 JS 的模塊,基本功能包括:IO, GD, MySQL, Sockets, templates, FastCGI and Apache module.安裝HTTPD服務1.在終端輸入更新檢查命令,sudo apt-get update2. 在更新完成後(如果不想檢查更新,也可直接輸入此步)輸入:sudo apt-get install apache23.完成後,在瀏覽器輸入https://localhost 或者127.0.0.1,如果順利跳出Apache版本網頁,即代表安裝成功4.停止服務:sudo /etc/init.d/apache2 stop配置httpd服務查看版本[root@conling 桌面]# httpd -vServer version: Apache/2.2.15 (Unix)Server built: Aug 2 2013 08:02:15123httpd的常用的功能特性:支持路徑別名:alias 支持用戶認證:基本認證和摘要認證authentication 支持虛擬主機:virtual host 在一個物理主機上提供多個站點 支持負載均衡:是反向代理的一個子特性 支持用戶站點:當前用戶都可以在自己的傢目錄下創建自己的站點 支持CGI:Common Gateway Interface 通用網關接口目錄結構服務腳本:/etc/rc.d/init.d/httpd
腳本配置文件路徑:/etc/sysconfig/httpd
運行目錄:/etc/httpd
配置文件:
主配置:/etc/httpd/conf/httpd.conf
擴展配置:/etc/httpd/conf.d/*.conf
監聽的Socket: tcp的80, 443是https/tcp的監聽端口
在內核中使用小於1023的端口的隻有管理員
文檔根目錄:/var/www/html
CGI目錄:/var/www/cgi-bin/12345678910主配置文件結構全局配置:對主服務器或虛擬主機都有效,且有些功能是服務器自身工作屬性;主服務器配置:主站屬性虛擬服務器:虛擬主機及屬性定義測試配置和查看的命令service httpd configtest #測試配置文件有沒有語法錯誤httpd -t #同上httpd -l #當前服務器所使用的模型及開啟模塊httpd -D DUMP_MODULES #當前服務器支持的模塊service httpd reload #重新加載配置文件service httpd restart #重啟httpd服務1234567891011註意:修改配置文件後要重新加載配置文件,修改服務器監聽端口後要重啟服務主配置文件的基本配置配置httpd的工作屬性時,指令不區分大小寫,但有約定俗成的習慣:單詞的首字母大寫;指令的值很有可能區分大小寫;有些指令可以重復使用多次;Listen [IP:]PORT //配置監聽的端口,IP為可選項,不寫則監聽所有接口的端口。
例如:Listen 172.16.3.1:80 ,多個站點時需要監聽多個接口。12指定網站的主目錄DocumentRoot “/var/www/html” 1Options //配置頁面文件的訪問屬性Indexes #是否允許索引頁面文件,建議關閉FollowSymLinks #是否跟隨軟連接文件SymLinksifOwnerMatch #跟隨符號鏈接,隻允許訪問運行apache的用戶有屬主權限的文件ExecCGI: #是否允許執行CGI腳本;12345基於客戶端的訪問控制系統默認允許所有人訪問Order #定義allow和deny那個為默認法則;寫在後面的為默認法則:寫在前面的指令沒有顯示定義的即受後面的指令控制:Order allow,deny
Allow from all #所有人可以訪問例:配置允許172.16.0.0/16訪問,但不允許172.16.3.1訪問Order allow,deny
Deny from 172.16.3.1 #禁用一個IP訪問Allow from 172.16.0.0/16 #允許一個網段訪問123456789userdir個人站點# 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 #開啟此項//在相應的用戶傢目錄中創建文件public_html 即可實現訪問。重新加載配置文件後用:http://HOST/~username/例如:http://172.16.3.1/~centos/1234567891011121314定義默認主頁DirectoryIndex index.PHP index.jsp index.html1日志功能日志有兩類:訪問日志(格式自定義)、錯誤日志錯誤日志:
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” agent1234567891011121314151617%h #主機名%l #%u #用戶名%t #請求到達的時間%r #請求報文的起始行,方法%s #%b #響應報文的大小%{Foobar}i #顯示從發那個站點跳轉過來%{User-Agent}i #用戶代理基於用戶訪問控制當你的網站或者站點的某個路徑隻想讓你授權的用戶訪問時,就可以使用基於用戶的訪問控制這裡使用htpasswd命令建立用戶帳號文件htpasswd
-c #第一次使用-c創建新文件,不是第一次不要使用此選項-m #用戶密碼使用MD5加密後存放-s #用戶密碼使用SHA加密後存放-p #用戶密碼不加密-d #禁用一個賬戶-e #啟用一個賬戶12345678910111213例如:# 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.conDocumentRoot “/www/html” #此時網站根目錄就是/www/htmlOptins Indexes
AllowOverride AuthConfig
AuthName “Oaly for employees.” #登錄提示信息,可自定義AuthType Basic #認證方式AuthUserFile /etc/httpd/conf/.htpass #用戶帳號文件Require valid-user #允許的用戶Require 指定可以訪問的用戶,可以指定單個用戶,直接寫用戶名就可以瞭,用戶名可以寫多個用空格分開,也可以指定所有用戶就用 valid-user1234567891011121314151617181920212223對某個目錄進行用戶訪問控制 虛擬主機第一種方式,在主配置文件的末尾,有虛擬主機的模板<VirtualHost *:8080>
DocumentRoot /var/www/blog
DirectoryIndex index.html
</VirtualHost>
Listen 8080//添加以上內容 意為啟用監聽8080端口,且該端口的網站目錄為/var/www/blog,默認文檔為index.html.//該方式為通過指定端口的形式來訪問不同的站點。12345678第二種方式,在同一臺服務器上創建不同的主機名的虛擬主機。(1)註釋主服務器,添加虛擬主機# DocumentRoot “/www/html” #註釋主服務器NameVirtualHost 172.16.3.1:80 #開啟虛擬主機DocumentRoot /www/web1 #虛擬主機的網站根目錄ServerName web1.lyd.com #主機名DocumentRoot /www/web2
ServerName web2.lyd.com(2)給虛擬主機提供測試文件
mkdir /www/web{1,2}
echo web1.lyd.com > /www/web1/index.htmlecho 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.com172.16.3.1web2.lyd.com12345678910111213141516171819配置防火墻 #修改防火墻配置:
# vi + /etc/sysconfig/iptables
#添加配置項
-A INPUT -m state –state NEW -m tcp -p tcp –dport 80 -j ACCEPT #重啟防火墻
# service iptables restart123456檢查端口狀態netstat -tln //查看相應的端口是否已開啟配置負載均衡項目準備 負載均衡就是把所有用戶的訪問壓力分散到多臺服務器上,也可以分散到多個tomcat裡。 現在隻是做的一個測試例子,所以apache,tomcat都是裝在我的電腦上,我的IP是172.16.X.X 首先要創建一個web項目,在項目的web.xml中需要加上以下配置,表明該應用可多應用分流處理,能進行Session的復制。<display-name>TomcatClusterDemo</display-name>
<distributable/> 123把項目放到到tomcat1、tomcat2的webapps目錄下。我的目標是要用兩個tomcat(tomcat1,tomcat2)來進行分流,這兩個Tomcat的端口、AJP等配置要不一樣。 tomcat1的server.xml:<Server port=”10005″ shutdown=”SHUTDOWN”>12<Connector port=”10001″ protocol=”HTTP/1.1″
connectionTimeout=”20000″
redirectPort=”8443″ />123<Connector port=”20001″ protocol=”AJP/1.3″ redirectPort=”8443″ /> 1<Engine name=”Catalina” defaultHost=”localhost” jvmRoute=”jvm1″> 1tomcat2的server.xml<Server port=”10006″ shutdown=”SHUTDOWN”>12<Connector port=”10002″ protocol=”HTTP/1.1″
connectionTimeout=”20000″
redirectPort=”8443″ />123<Connector port=”20002″ protocol=”AJP/1.3″ redirectPort=”8443″ />1<Engine name=”Catalina” defaultHost=”localhost” jvmRoute=”jvm2″>1修改httpd.conf 在Apache安裝目錄下找到Apache24/conf/下的 httpd.conf,去掉以下文本前的註釋符(#)以便讓Apache在啟動時自動加載代理(proxy)模塊。 LoadModule proxy_module modules/mod_proxy.so LoadModule proxy_ajp_module modules/mod_proxy_ajp.so LoadModule proxy_balancer_module modules/mod_proxy_balancer.so LoadModule proxy_connect_module modules/mod_proxy_connect.so LoadModule proxy_ftp_module modules/mod_proxy_ftp.so LoadModule proxy_http_module modules/mod_proxy_http.so LoadModule slotmem_shm_module modules/mod_slotmem_shm.so LoadModule lbmethod_byrequests_module modules/mod_lbmethod_byrequests.so去掉 Include conf/extra/httpd-vhosts.conf前面的註釋#,在httpd.conf文檔最下面加上以下代碼:ProxyRequests Off
<Proxy balancer://mycluster>
BalancerMember ajp://172.16.X.X:20001/ loadfactor=1 route=jvm1
BalancerMember ajp://172.16.X.X:20002/ loadfactor=1 route=jvm2
</Proxy> 12345這裡的配置是跟tomcat的server.xml配置對應的。172.16.X.X是tomcat服務器的IP,端口號對應tomcat中server.xml裡的ajp的端口號,route對應jvmRoute的配置。3.用文本編輯器打開conf/extra/httpd-vhosts.conf,配置虛擬站點,在最下面加上以下代碼:<VirtualHost *:80> ServerName 172.16.X.XServerAlias localhostProxyPass / balancer://mycluster/ stickysession=jsessionid nofailover=OnProxyPassReverse / balancer://mycluster/ErrorLog “logs/lbtest-error.log”CustomLog “logs/lbtest-access.log” common</VirtualHost> 12345678到這裡配置就基本上完成瞭。 然後寫個測試頁面test.jsp放到兩個tomcat的項目裡測試:<%@ page language=”java” import=”java.util.*” pageEncoding=”utf-8″%><%String path = request.getContextPath();String basePath = request.getScheme()+”://”+request.getServerName()+”:”+request.getServerPort()+path+”/”;
%><!DOCTYPE HTML PUBLIC “-//W3C//DTD HTML 4.01 Transitional//EN”><html><head><title>Cluster App Test</title></head><body>Server Info:<%
out.println(request.getLocalAddr() + ” : ” + request.getLocalPort()+”<br>”);%><%
out.println(“<br> ID ” + session.getId()+”<br>”);
// 如果有新的 Session 屬性設置
System.out.println( “=========test==========”);
%></table></form></body></html>123456789101112131415161718192021222324重啟apache,tomcat1,tomcat2, 在瀏覽器輸入http://172.16.X.X/test.jsp ,然後多刷新幾次。
本文出自快速备案,转载时请注明出处及相应链接。
本文永久链接: https://www.175ku.com/42074.html