Microsoft Word - Apache 及 Tomcat 的結合.doc

Similar documents
Microsoft Word - 建立加密的 Openwebmail.doc

Apache22_Tomcat60_MySQL50_mod_jk

ArcIMS ArcIMS Shape ArcIMS Monitor ArcIMS Tasker ArcIMS Windows NT UNIX ArcIMS ArcIMS MapService ArcIMS ArcIMS ArcIMS ArcIMS JAVA Windows NT UNIX ArcI

XXXXXXXX

untitled

内 容 提 要 将 JAVA 开 发 环 境 迁 移 到 Linux 系 统 上 是 现 在 很 多 公 司 的 现 实 想 法, 而 在 Linux 上 配 置 JAVA 开 发 环 境 是 步 入 Linux 下 JAVA 程 序 开 发 的 第 一 步, 本 文 图 文 并 茂 地 全 程 指

untitled

WebSphere Studio Application Developer IBM Portal Toolkit... 2/21 1. WebSphere Portal Portal WebSphere Application Server stopserver.bat -configfile..

开源软件DSpace的安装和维护(清华_邹荣).ppt

Pchome

網路安全:理論與實務 第二版


本文由筱驀釹贡献

( )1

中醫執業資格試臨床考試結果上訴聆訊的決定及裁決理由

树木(一)

untitled

untitled

目 录 目 录 平 台 概 述 技 术 架 构 技 术 特 点 基 于 统 一 平 台 的 多 产 品 线 支 撑 先 进 性 安 全 性 开 放 性 高 性 能 和

<4D F736F F D D352DBED6D3F2CDF8D7E9BDA8D3EBB9DCC0EDCFEEC4BFBDCCB3CCD5FDCEC42E646F63>

untitled

A9RF716.tmp

学 院 人 才 培 养 分 项 自 评 报 告 结 果 汇 总 表 主 要 评 估 指 标 关 键 评 估 要 素 自 评 等 级 1.1 学 校 事 业 发 展 规 划 合 格 1. 领 导 作 用 1.2 办 学 目 标 与 定 位 合 格 1.3 对 人 才 培 养 重 视 程 度 合 格 1

快 速 入 门 (Linux) 概 述 文 档 目 的 本 文 档 介 绍 了 如 何 快 速 创 建 Linux 系 统 实 例 远 程 连 接 实 例 部 署 环 境 等 旨 在 引 导 您 一 站 式 完 成 实 例 的 创 建 登 录 和 快 速 环 境 部 署 云 服 务 器 ECS 实

Microsoft Word - PS2_linux_guide_cn.doc

第 11 章 互聯網技術 11.1 互聯 網 和 萬 維 網 的 發 展 歷 史 A. 互聯網的發展 互聯網是由 ARPANET 開 始發展的 1969 年 美國國防部高級研究計劃署 (ARPA) 把部分軍事研究所和大 的電腦連接起來 建造了㆒個實驗性的電腦網絡 稱為 ARPANET 並 列 的功能

《计算机导论》实验教学大纲

chapter 2 HTML5 目錄iii HTML HTML HTML HTML HTML canvas

最即時的Sybase ASE Server資料庫診斷工具

Microsoft Word - linux命令及建议.doc

TopTest_Adminstrator.doc

文件1

项目采购需求编写模板

第一章 Linux與網路資源

投影片 1

Microsoft Word - Mail2000_SecurityPatch_

执 行 引 擎 JSP : java 嵌 入 进 HTML 中 在 server 端 运 行 时 把 整 个.jsp 文 件 翻 译 成 Servlet 格 式 用 户 不 用 手 动 把 <html> 改 为 java 语 言 打 印 jsp 替 用 户 完 成 jsp --> jasper --

SiteView技术白皮书

<A4E2BEF7B4FAB8D5B3F8A F52322E786C7378>

中医疗法(上).doc

<4D F736F F D2031A3AD4A617661BCBCCAF5CAC6CDB7D5FDBEA22E646F63>

C3_ppt.PDF

目 錄 版 次 變 更 記 錄... 2 原 始 程 式 碼 類 型 之 使 用 手 冊... 3 一 安 裝 軟 體 套 件 事 前 準 備... 3 二 編 譯 流 程 說 明

PowerPoint Presentation

epub 61-2

校友会系统白皮书feb_08

1.JasperReport ireport JasperReport ireport JDK JDK JDK JDK ant ant...6

ext-web-auth-wlc.pdf

ebook140-9

Basic System Administration

IC-900W Wireless Pan & Tilt Wireless Pan & Tilt Remote Control / Night Vision FCC ID:RUJ-LR802UWG

1 Linux Linux Linux Windows NT Linux Linux UNIX Internet Linux Internet Internet Web Linux 26.3% Web Apache 60% Sendmail Internet Linux ISP/ICP

目 錄 第 一 章 weberp 簡 介... 6 第 一 節 概 述... 6 第 二 節 安 全 性... 7 第 三 節 功 能... 7 一 銷 售 及 訂 單... 7 二 稅... 8 三 應 收 帳 款... 8 四 存 貨... 8 五 購 買... 9 六 應 付 帳 款... 9

天津天狮学院关于修订2014级本科培养方案的指导意见

1

2/14 Buffer I12, /* x=2, buffer = I 1 2 */ Buffer I243, /* x=34, buffer = I 2 43 */ x=56, buffer = I243 Buffer I243I265 code_int(int x, char *buffer)

AXIS P7224 Video Encoder Blade – Installation Guide

优迈科技教学大纲2009版本

W. Richard Stevens UNIX Sockets API echo Sockets TCP OOB IO C struct C/C++ UNIX fork() select(2)/poll(2)/epoll(4) IO IO CPU 100% libevent UNIX CPU IO

Microsoft Word - DIR-615_B2_Manual_1.00_T_.doc

目 录 第 五 部 分 第 六 部 分 第 七 部 分 第 八 部 分 投 标 邀 请 投 标 人 须 知 附 表 评 标 方 法 和 评 分 细 则 项 目 需 求 和 技 术 方 案 要 求 1

1 IT IT IT IT Virtual Machine, VM VM VM VM Operating Systems, OS IT

Java 1 Java String Date

ebook65-20

電機工程系認可證照清單 /7/1

(CIP) Web /,. :, ISBN X.W T P393.4 CIP (2004) Web ( ) ( / ) : * 787

职 位 类 别 : 测 试 工 程 师 工 作 经 验 或 实 习 经 历 : 不 限 岗 位 要 求 : 1. 本 科 及 其 以 上 学 历, 计 算 机 相 关 专 业 2014 届 毕 业 生 ; 2. 实 习 时 间 要 求, 尽 量 一 周 五 个 工 作 日 ; 3. 熟 悉 Wind

LiveBOS产品白皮书

( ) / ISBN /D ( )

经典案例(三)

ARIS Design Platform

11 天 山 区 区 环 卫 清 运 队 机 械 工 程 师 4011 C 1 不 限 不 限 机 电 具 有 两 以 工 作 经 12 天 山 区 乌 鲁 木 齐 市 第 15 小 会 计 4012 C 1 不 限 不 限 会 计 财 会 财 电 算 化 临 床 医 预 防 医 公 共 卫 生 与

Microsoft Word - WebGoat用户指南-beta2.doc

信息

QVM330 多阜寬頻路由器

心理障碍防治(下).doc

IPv6移轉機制之介紹

软件测试(TA07)第一学期考试

Transcription:

Apache 及 Tomcat 的結合 網頁應用伺服器上,Apache 為眾多伺服器的首選, 對於 JSP 的服務來說當然是以 Tomcat 為主要的選擇, 在目前的主流上若要使用 JSP 開發 Web 網頁程式的話, Apache 和 Tomcat 當然是最佳選擇, 在這裡就由小弟介紹如何使用 Apache 配合 connector 來連結 Tomcat 首先在一個重要的 Web 服務平台上, 若打算要把 Apache 和 JSP 分開以分化流量並保護 JSP 程式的話, 一般都會把 JSP 放在另一台跑 Tomcat 的主機上, 而靜態的 html 則是放在 Apache 上 JSP 程式主機若以安全原則來說是不應該放在別人看得到的公開網路上, 最好是放在一個 Web Cluster 的內部環境裡面, 以下是這次範列的 Web Server 加構圖 我們的環境下, 使用者連上我們的 http-fountain, 而 java-garden 是放在內部的網路裡,Web 程式雖然是放在 java-garden 裡, 但使用卻感覺不出來 User (Port 80) http (http-fountain) (Port 8009) JSP (java-garden, 192.168.1.87) 這樣的設計有幾點好處 : 程式和網頁分開減少檔案損壞的風險 JSP 應用伺服器較不會被外界攻擊 可單一維護程式或網頁 若日後流量大的話 Tomcat 可以做負載平衡 以下我們就來看看如何建立這一個完整的環境 設定 DNS: DNS 應該不用說了吧, 一定要先對完整才可以使用得當, 請使用 host 工具來看看是否設定正確 在這個 Web Cluster 上內部應該要查得到 http-fountain 和 java-garden host http-fountain.l-penguin.idv.tw http-fountain.l-penguin.idv.tw has address 192.168.1.86 host java-garden.l-penguin.idv.tw java-garden.l-penguin.idv.tw has address 192.168.1.87 而外部的使用者應該只能查到 http-fountain 的公開 IP host http-fountain.l-penguin.idv.tw http-fountain.l-penguin.idv.tw has address 11.22.33.44 因為有內外部, 所以你有可能需要使用到 Bind 9 的 View 功能, 至於詳細的使用方法請參考 bind - DNS 設定 (New window) Page 1 / 7

建立一個美好泡咖啡的花園 java-garden.l-penguin.idv.tw: 設定 Java 環境首先你的機器應該有有 Java 環境這樣 Tomcat 才可以順利執行 你可以到 Sun 的下載區去下載最近版本的 Java JDK (http://java.sun.com/javase/downloads/index.jsp) 並且安裝它 在這裡我是下載可自解的二進制可執行檔 (Linux self-extracting file) 最後你可以發現下載後會是一個.bin 檔案, 你可以附與它一個 x 可執行權限然後開始執行 chmod +x jdk-1_5_0_07-linux-i586.bin./jdk-1_5_0_07-linux-i586.bin 解開之後會多出一個目錄, 我習慣把應用程式搬到 /usr/local 之下, 而這個 Java 也不例外 mv jdk1.5.0_07/ /usr/local/java 當然為了 Tomcat 的安裝與執行, 你並需設定 JAVA_HOME 這個環境變數, 你可以設定在 /etc/profile 上 echo 'JAVA_HOME=/usr/local/java' >> /etc/profile 如果你要馬上生效的話, 執行 export 把這個變數轉成環境變數 export JAVA_HOME=/usr/local/java env grep JAVA_HOME JAVA_HOME=/usr/local/java 設定 Tomcat 環境 : 現在是重頭戲 Tomcat 的表演時刻了, 你可以到 http://tomcat.apache.org/ 下載最新版本的 Tomcat 來安裝, 當然我是下載 Tomcat 5.5 版本的 Tomcat 二進制可執行檔 解開之後移到 /usr/local/tomcat5 目錄 wget http://apache.cdpa.nsysu.edu.tw/tomcat/tomcat-5/v5.5.17/bin/apache-to mcat-5.5.17.tar.gz tar -zxvf apache-tomcat-5.5.17.tar.gz mv apache-tomcat-5.5.17 /usr/local/tomcat5 嚐試啟動 Tomcat 並看看它的樣子! 現在你已經把 Tomcat 裝好, 並且擁有 JAVA 環境了, 你可以試著啟動 Tomcat 來看看 Page 2 / 7

/usr/local/tomcat5/bin/startup.sh Using CATALINA_BASE: /usr/local/tomcat5 Using CATALINA_HOME: /usr/local/tomcat5 Using CATALINA_TMPDIR: /usr/local/tomcat5/temp Using JRE_HOME: /usr/local/java 好的, 你可以看看 Tomcat 是使用那些 Port netstat -ntulp grep java tcp 0 0 ::ffff:127.0.0.1:8005 :::* LISTEN 2157/java tcp 0 0 :::8009 :::* LISTEN 2157/java tcp 0 0 :::8080 :::* LISTEN 2157/java 由 netstat 可得知它是使用了 8080 和 8009, 這個 8009 等一下是要由 mod_jk2 來使用的, 而 8080 是 Tomcat 的 Web Service 服務, 你可以在 Web Browser 輸入 http://java-garden.l-penguin.idv.tw:8080/ 看看 當然這個 java-garden 只有在內部才可看到, 使用者是看不到的, 若使用者看得到的話就失去了我故意安排 java-garden 在內部網的安全心意了 以上就完成了 Tomcat 的設置, 下面再來看看如何設定 Apache 並使用 mod_jk2 這個 connector 來連結 Apache 和 Tomcat 建設 http 噴水池 http-fountain.l-penguin.idv.tw: 建立基本的 Apache 首先你要設定安裝基本的 Apache, 安裝 Apache 你可以參考 LAMP 文章有詳細的安裝過程, 並不需要有額外的安裝選項 編譯 mod_jk2 模組 Page 3 / 7

當你安裝完成 Apache 之後, 還需要編繹 mod_jk2 這個連結器才可以該 Apache 和 Tomcat 相互溝通, 以下我示範使用 mod_jk2 原始檔來編譯, 你可以到 http://tomcat.apache.org/download-connectors.cgi 下載得到 wget http://apache.cdpa.nsysu.edu.tw/tomcat/tomcat-connectors/jk2/jakartatomcat-connectors-jk2-src-current.tar.gz tar -zxvf jakarta-tomcat-connectors-jk2-src-current.tar.gz 解開之後你會在同目錄之下得到一個 jakarta-tomcat-connectors-jk2-2.0.4-src 的目錄, 接下來請依如下的順序來編譯 cd jakarta-tomcat-connectors-jk2-2.0.4-src/ cd jk/native2/./configure --with-apxs2=/usr/local/httpd/bin/apxs --with-apache2=/usr/local/httpd/ make cd../build/jk2/apache2/ 經過以上煩雜的動作之後, 會得到一個叫做 mod_jk2.so 的 module, 請把它複製到 apache 的 module 目錄裡 cp mod_jk2.so /usr/local/httpd/modules/ 設定 httpd.conf 及 mod_jk2 需要的設定檔 (workers2.properties), 同時建立 java-garden 的 JSP 連結現在請編輯 httpd.conf 檔案以便在 apache 啟動時載入 mod_jk2 模組 vi /usr/local/httpd/conf/httpd.conf LoadModule jk2_module modules/mod_jk2.so 編輯 workers2.properties vi /usr/local/httpd/conf/workers2.properties [logger] level=debug [config:] file=/usr/local/httpd/conf/workers2.properties debugenv=0 [shm:] info=scoreboard. Required for reconfiguration and status with multiprocess servers Page 4 / 7

file=/usr/local/httpd/logs/jk2.shm size=1000000 disabled=0 [workerenv:] info=global server options timing=1 [channel.socket:java-garden.l-penguin.idv.tw:8009] info=ajp13 forwarding over socket tomcatid=java-garden.l-penguin.idv.tw:8009 [channel.jni:jni] info=the jni channel, used if tomcat is started inprocess [status:] info=status worker, displays runtime informations [uri:/jkstatus/*] info=display status information and checks the config file for changes. group=status: [uri:/java-garden/*.jsp] info=java-garden. context=/java-garden worker=ajp13:java-garden.l-penguin.idv.tw:8009 以上在 workers2.properties 檔裡粗體字表示需要注意的地方, 是要輸入 Tomcat 主機的名稱或是 IP 編輯好了以上的設定之後還不能完全啟動, 必需再為 Tomcat 設立 java-garden 的虛擬目錄才行 上面 [uri:/java-garden/*.jsp] 表示只有.jsp 檔案才會經由 mod_jk2 向 Tomcat 請求需要, 一般的 html 或圖片影像檔就由本機的 http 主機負責傳輸就可以了 在 Tomcat 上為 java-garden 建立虛擬目錄要編輯 Tomcat 的虛擬目錄你需要看得懂 XML 語法, 其實也跟 httpd.conf 差不多一樣, 而它的編輯檔是在 ${TOMCAT_HOME}/conf/server.xml 之下, 而目錄是建在 <host> 和 </host> 之間 現在請到你的 Tomcat 主機裡執行編輯動作 Page 5 / 7

vi /usr/local/tomcat5/conf/server.xml <Host> ~ 略 ~ <Context path="/java-garden" docbase="/data/web/java-garden" debug="0" reloadable="true" crosscontext="true"> </Context> </Host> 在 server.xml 文件文打粗體的表示要注意的地方,path 表示為 http 網址後的連結,docBase 表示真正所在的目錄位置 最終一回 - 實際驗收終於到了可以實際驗收的階段了, 請記得只要你收改過設定檔, 就要重新啟動 httpd 和 Tomcat 服務以重新讀取設定檔 Tomcat 主機 /usr/local/tomcat5/bin/shutdown.sh Using CATALINA_BASE: /usr/local/tomcat5 Using CATALINA_HOME: /usr/local/tomcat5 Using CATALINA_TMPDIR: /usr/local/tomcat5/temp Using JRE_HOME: /usr/local/java /usr/local/tomcat5/bin/startup.sh Using CATALINA_BASE: /usr/local/tomcat5 Using CATALINA_HOME: /usr/local/tomcat5 Using CATALINA_TMPDIR: /usr/local/tomcat5/temp Using JRE_HOME: /usr/local/java Http 主機 /usr/local/httpd/bin/apachectl stop /usr/local/httpd/bin/apachectl start 我在 Tomcat 主機上的 /data/web/java-garden 放了幾隻 jsp 文件, 包含一個 index.html 檔 ; 而在 HTTP 主機上放了幾個 html 文件, 也包含了一個 index.html 檔, 現在來看看是否可以正常的執行 若你要測試的話請在 Web Browser 輸入 http://http-fountain.l-penguin.idv.tw/java-garden/index.jsp 看看有什麼反應 Page 6 / 7

再來看看 index.html 檔 好了, 經過以上的實驗, 你可以發現其實 Apache 只有在要求 jsp 時才會向 Tomcat 主機要求回應, 否則的話都是由 Web 主機本身回應 參考文件 Tomcat 技術手冊 (O'Reilly, ISBN: 986-7794-26-5): http://www.oreilly.com.tw/product_java.php?id=a137 The Apache Tomcat 5.5 Servlet/JSP Container - Documentation Index The Apache Tomcat Connector Documentation Index For more articles, please visit http://www.l-penguin.idv.tw/ 作者 : 廖子儀 (Tzu-Yi Liao) Certified:LPIC Level I LPIC Level II RHCE E-mail:steven@l-penguin.idv.tw Web site:http://www.l-penguin.idv.tw/ Page 7 / 7