1、tomcat ,web伺服器,應用伺服器的區別 和各自的職能是什麼
不知你要問的是什麼?所以也不知道如何回答了,這三個沒有可比性啊?
tomcat上可以運行jsp,靜態網頁等,是web伺服器一種,同時又可以作為WebService的發布平台,
web伺服器是指可以運行web程序的伺服器,如tomcat、apache http server、iis等等
應用伺服器是對於多層架構的物理架構而言的,客戶端、應用伺服器、數據伺服器,webservice可以看作是是應用伺服器上中間件,這三個層次只是區分程序架構,並不是區分物理伺服器,如應用和數據可以部署在一台伺服器上的
2、apache http server 和 tomcat是什麼關系
apache http server 是 http 的 web 伺服器 用戶響應頁面請求,tomcat只是一個jsp和servet的容器,提供了環境讓應用程序在裡面執行。之所以只安裝tomcat也可以響應web應用,是因為本身集成了http服務。既然 Tomcat 本身已經可以提供這樣的服務,我們為什麼還要引入 Apache 或者其他的一些專門的 HTTP
伺服器呢?原因有下面幾個:
1. 提升對靜態文件的處理性能
2. 利用 Web 伺服器來做負載均衡以及容錯
3. 無縫的升級應用程序
這三點對一個 web 網站來說是非常之重要的,我們希望我們的網站不僅是速度快,而且要穩定,不能因為某個 Tomcat
宕機或者是升級程序導致用戶訪問不了,而能完成這幾個功能的、最好的 HTTP 伺服器也就只有 apache 的 http server
了,它跟 tomcat 的結合是最緊密和可靠的。
還有 apache http server 要比 tomcat 早且tomcat 是apache 的一部分。
3、怎麼啟動tomcat伺服器
倆種方法。
第一種:
1.啟動tomcat目錄。 tomcat目錄/bin/startup.bat(window啟動文件) 找到startup.bat 雙擊運行。會有一個黑窗口,黑窗口不要關閉。(如果關閉,相當於把tomcat停止了。)
2.在瀏覽器地址欄中輸入:http://localhost:8080 或者 http://127.0.0.1:8080localhost ,如果看到如下頁面,證明啟動成功
3.配置tomcat的埠
tomcat默認的埠是8080(訪問埠)http的默認埠是80,如果訪問的時候輸入http://www.baidu.com相當於http://www.baidu.com:80。當真正在項目上線之後,通常採用80,修改方法如下:
1)找到tomcat目錄/conf/server.xml
2)修改port的值,將port埠的值修改為80
3)然後在瀏覽器中輸入 http://127.0.0.1:80 或 http://127.0.0.1 訪問測試
第二種:
catalina run 啟動Tomcat
Tomcat啟動,還有一種啟動的方法就是在命令行中,先把你的當前目錄切換 到你tomcat目錄in目錄下,如下是我的位置
再執行catalina run 這個命令啟動Tomcat。這個命令有什麼好處。當Tomcat啟動失敗的時候,會有一閃而過的情況,
當我們使用catalina run 這個命令啟動Tomcat的時候,哪怕有錯誤,我們也可以清楚的看到tomcat失敗的原因。不會一閃而過。
拓展資料:
Tomcat是Apache 軟體基金會(Apache Software Foundation)的Jakarta 項目中的一個核心項目,由Apache、Sun 和其他一些公司及個人共同開發而成。由於有了Sun 的參與和支持,最新的Servlet 和JSP 規范總是能在Tomcat 中得到體現,Tomcat 5支持最新的Servlet 2.4 和JSP 2.0 規范。
因為Tomcat 技術先進、性能穩定,而且免費,因而深受Java 愛好者的喜愛並得到了部分軟體開發商的認可,成為目前比較流行的Web 應用伺服器。
Tomcat 伺服器是一個免費的開放源代碼的Web 應用伺服器,屬於輕量級應用伺服器,在中小型系統和並發訪問用戶不是很多的場合下被普遍使用,是開發和調試JSP 程序的首選。
對於一個初學者來說,可以這樣認為,當在一台機器上配置好Apache 伺服器,可利用它響應HTML(標准通用標記語言下的一個應用)頁面的訪問請求。實際上Tomcat是Apache 伺服器的擴展,但運行時它是獨立運行的,所以當你運行tomcat 時,它實際上作為一個與Apache 獨立的進程單獨運行的。
訣竅是,當配置正確時,Apache 為HTML頁面服務,而Tomcat 實際上運行JSP 頁面和Servlet。另外,Tomcat和IIS等Web伺服器一樣,具有處理HTML頁面的功能,另外它還是一個Servlet和JSP容器,獨立的Servlet容器是Tomcat的默認模式。
不過,Tomcat處理靜態HTML的能力不如Apache伺服器。目前Tomcat最新版本為9.0。
4、關於用Java在Tomcat上部署http服務的問題。
你用SOCKET編程需要編寫兩個端,一個是客戶端,一個是服務端。
既然部署上TOMCAT,那麼服務內端的編程就變成TOMCAT上服容務端的SERVLET的編程。寫一個SERVLET接收請求、返回響應。你想列印什麼都可以。
這個時候客戶端就簡單成一個表單頁面(如登錄頁面那樣),可以使用html,jsp編寫。也可以直接使用URL在瀏覽器中進行請求。也可以仍然SOCKET發送、接收請求。
你需要簡單的學習下SERVLET/JSP的WEB編程。前台的頁面、後台的SERVLET是對socket編程的封裝。
5、tomcat,web伺服器,應用伺服器的區別和各自的職能是什麼
不知你要問的是什麼?所以也不知道如何回答了,這三個沒有可比性啊?tomcat上可專以運行jsp,靜態網頁等,屬是web伺服器一種,同時又可以作為WebService的發布平台,web伺服器是指可以運行web程序的伺服器,如tomcat、apachehttpserver、iis等等應用伺服器是對於多層架構的物理架構而言的,客戶端、應用伺服器、數據伺服器,webservice可以看作是是應用伺服器上中間件,這三個層次只是區分程序架構,並不是區分物理伺服器,如應用和數據可以部署在一台伺服器上的
6、http伺服器和web伺服器是同一個伺服器?二者什麼區別和聯系?一定採納
http伺服器和web伺服器不是同一個伺服器,聯系:兩者都是用來處理http請求,並根據http請求返回響應數據的伺服器,區別如下:
一、指代不同
1、http伺服器:是Apache軟體基金會的一個開放源代碼的網頁伺服器。
2、web伺服器:也稱為WWW(WORLD WIDE WEB)伺服器,主要功能是提供網上信息瀏覽服務。
二、功能不同
1、http伺服器:可以在大多數電腦操作系統中運行,由於其具有的跨平台性和安全性,被廣泛使用。
2、web伺服器:可以解析(handles)HTTP協議。當Web伺服器接收到一個HTTP請求(request),會返回一個HTTP響應(response),例如送回一個HTML頁面。
三、特點不同
1、http伺服器:快速、可靠並且可通過簡單的API擴展,Perl/Python解釋器可被編譯到伺服器中,可以創建一個每天有數百萬人訪問的Web伺服器。
2、web伺服器:Web伺服器傳送(serves)頁面使瀏覽器可以瀏覽,然而應用程序伺服器提供的是客戶端應用程序可以調用(call)的方法(methods)。
7、為什麼Apache是HTTP伺服器,而Tomcat是Web應用伺服器?
Apache伺服器也就是www伺服器,由於www採用HTTP協議所以又稱為HTTP伺服器,用於靜態頁面的解析;而Tomcat伺服器是內應用(容Java)伺服器,可以說是一個Servlet容器,可以認為是Apache的擴展,本身包含了一個HTTP伺服器。但是可以獨立於Apache運行,主要用於動態頁面提供服務,可以將JSP編譯成對應的Servlet,所以是web應用伺服器。
8、如何解決apache tomcat http
一 Apache與Tomcat比較聯系
apache支持靜態頁,支持動態的,比如servlet等。
一般使用apache+tomcat的話,apache只是作為一個轉發,對jsp的處理是由tomcat來處理的。
apache可以支持php\cgi\perl,但是要使用java的話,你需要tomcat在apache後台支撐,將java請求由apache轉發給tomcat處理。
apache是web伺服器,Tomcat是應用(java)伺服器,它只是一個servlet(jsp也翻譯成servlet)容器,可以認為是apache的擴展,但是可以獨立於apache運行。
這兩個有以下幾點可以比較的:
1、兩者都是apache組織開發的
2、兩者都有HTTP服務的功能
3、兩者都是的
不同點:
Apache是專門用了提供HTTP服務的,以及相關配置的(例如虛擬主機、URL轉發等等)
Tomcat是Apache組織在符合J2EE的JSP、Servlet標准下開發的一個JSP伺服器
整合的好處是:
如果客戶端請求的是靜態頁面,則只需要Apache伺服器響應請求
如果客戶端請求動態頁面,則是Tomcat伺服器響應請求
因為jsp是伺服器端解釋代碼的,這樣整合就可以減少Tomcat的服務開銷
二 Linux下Apache與Tomcat整合的簡單方法
轉自:
1、准備,下載需要的文件。這里假定你已經正確安裝配置好了JDK。
到Apache官方網站下載所需要的文件:
httpd-2.2.0.tar.gz
apache-tomcat-5.5.12.tar.gz
jakarta-tomcat-connectors-1.2.15-src.tar.gz
其中httpd和jakarta-tomcat-connectors為源碼包,apache-tomcat為二進制包。
2、安裝Apache。
# tar xzvf httpd-2.2.0.tar.gz
# cd httpd-2.2.0
# ./configure --prefix=/usr/local/apache2 --enable-so
# make
# make install
3、安裝Tomcat。
# cp apache-tomcat-5.5.12.tar.gz /usr/local/
# cd /usr/local
# tar xzvf apache-tomcat-5.5.12.tar.gz
# ln -s apache-tomcat-5.5.12 tomcat
4、編譯生成mod_jk。
# tar xzvf jakarta-tomcat-connectors-1.2.15-src.tar.gz
# cd jakarta-tomcat-connectors-1.2.15-src/jk/native
# ./configure --with-apxs=/usr/local/apache2/bin/apxs
# make
# cp ./apache-2.0/mod_jk.so /usr/local/apache2/moles/
5、配置。
在/usr/local/apache2/conf/下面建立兩個配置文件mod_jk.conf和workers.properties。
# vi mod_jk.conf
添加以下內容:
# 指出mod_jk模塊工作所需要的工作文件workers.properties的位置
JkWorkersFile /usr/local/apache2/conf/workers.properties
# Where to put jk logs
JkLogFile /usr/local/apache2/logs/mod_jk.log
# Set the jk log level [debug/error/info]
JkLogLevel info
# Select the log format
JkLogStampFormat "[%a %b %d %H:%M:%S %Y]"
# JkOptions indicate to send SSL KEY SIZE,
JkOptions +ForwardKeySize +ForwardURICompat -ForwardDirectories
# JkRequestLogFormat set the request format
JkRequestLogFormat "%w %V %T"
# 將所有servlet 和jsp請求通過ajp13的協議送給Tomcat,讓Tomcat來處理
JkMount /servlet/* worker1
JkMount /*.jsp worker1
# vi workers.properties
添加以下內容:
# Defining a worker named worker1 and of type ajp13
worker.list=worker1
# Set properties for worker1
worker.worker1.type=ajp13
worker.worker1.host=localhost
worker.worker1.port=8009
worker.worker1.lbfactor=50
worker.worker1.cachesize=10
worker.worker1.cache_timeout=600
worker.worker1.socket_keepalive=1
worker.worker1.socket_timeout=300
再配置httpd.conf,作以下修改:
將Listen 80 修改為 Listen 127.0.0.1:80
將ServerName 修改為 ServerName LocalHost:80
在DirectoryIndex中添加 index.jsp
我的網頁放在/var/wwwroot下,所以要修改DocumentRoot
DocumentRoot "/var/wwwroot"
<Directory "/var/wwwroot">
Options Includes FollowSymLinks
AllowOverride None
Order deny,allow
Allow from all
XBitHack on
</Directory>
<Directory "/var/wwwroot/WEB-INF">
Order deny,allow
Deny from all
</Directory>
增加關於載入mod_jk的語句:
LoadMole jk_mole moles/mod_jk.so
Include /usr/local/apache2/conf/mod_jk.conf
最後編輯Tomcat的配置文件server.xml,在HOST段中加入:
<Context path="" docBase="/var/wwwroot" debug="0" reloadable="true" crossContext="true"/>
在/var/wwwroot下建立一個index.jsp,啟動Apache和Tomcat,用瀏覽器訪問,應該可以看到正確的頁面了。
三 Windows下Apache與Tomcat的整合
轉自:
准備工作:
1、 Apache 2.2.4
下載地址:
2、 Tomcat 6.0.16
下載地址: ... e-tomcat-6.0.16.zip
3、 JDK
下載地址: ... -windows-i586-p.exe
如果只是應用的話,也可以選擇安裝JRE,因為JRE比較小:)
4 JK-1.2.26-httpd-2.2.4
下載地址: ... 2.26-httpd-2.2.4.so
注意JK的版本一定要與Apache版本相同。如果你的版本與我的不同,可以去官網下載,有多種版本,適用於各種操作系統,下載適用的既可,地址:t/tomcat-connectors/jk/binaries/
開始安裝:
軟體的安裝順序可以適當調整,但是JDK(JRE)一定要在Tomcat之前安裝:
1、安裝JDK(JRE)
此處默認、自定義安裝均可。安裝完成以後按下面的示例設置你的系統環境變數:我的電腦 -> 屬性 -> 高級 -> 環境變數 (這里要添加的是系統變數,非用戶變數)
JAVA_HOME = D:\Program Files\Java\jdk1.6.0_07
CLASSPATH = .;%Java_Home%\lib\tools.jar;%Java_Home%\lib\dt.jar;
PATH = %Java_Home%\bin;%PATH%
注意JAVA_HOME的路徑改為你的實際安裝路徑。其它兩個不變。
2、安裝Apache
此處注意,如果你本機已經裝了IIS並且佔用了80埠,你可以選擇禁用IIS或者給IIS指定其它埠,或者給Apache指定其它埠,根據實際情況進行設置。在Apache的安裝過程中要設置Network Domain和Server Name為Localhost,設置你的Email地址(這個一定要設置,不然Apache啟動不起來)。
安裝完成之後,如果apache用的是80埠,那麼在瀏覽器中輸入 ,如果使用的是其它埠例如81,則輸入 :81 ,將會看到 Apache 的成功頁面。此時Apache已經運行,在系統托盤可以看到它的圖標,雙擊打開可以對Apache服務進行控制,我們下面還要安裝Tomcat和JK,所以現在選擇 Stop 停止 Apache 服務。
3、安裝Tomcat
將Tomcat解壓到 D:\Program Files\Tomcat 下,設置環境變數:
CATALINA_BASE = D:\Program Files\tomcat
CATALINA_HOME = D:\Program Files\tomcat
CLASSPATH = %CATALINA_HOME%\lib\servlet-api.jar
運行 D:\Program Files\Tomcat\bin\startup.bat 啟動Tomcat,出現Tomcat頁面則表示安裝成功。
4、安裝JK
把 mod_jk-1.2.26-httpd-2.2.4.so 拷貝到 D:\Program Files\Apache2.2\moles 下。
下面進行伺服器的配置:
1、配置Tomcat
查找Tomcat目錄下的 conf/server.xml文件,在<host></host>中間加入以下語句以修改其默認的目錄:
<Context path="" docBase="E:\wwwroot" reloadable="true" crossContext="true"/>
在這里,如果 path 不為空,則設置的是虛擬目錄,path 的值為虛擬目錄名。
查找Tomcat目錄下的 conf/workers.properties文件,並對比下方文本內容,如有不同處,以下方文本為准進行修改。
workers.tomcat_home=C:\apache-tomcat-6.0.18 #讓mod_jk模塊知道Tomcat的位置
workers.java_home=D:\Program Files\Java\jre1.6.0_07 #讓mod_jk模塊知道jre的位置
ps=\
worker.list=ajp13 #模塊版本
worker.ajp13.port=8009 #工作埠,若沒佔用則不用修改
worker.ajp13.host=localhost #本機,若上面的Apache主機不為localhost,作相應修改
worker.ajp13.type=ajp13 #類型
worker.ajp13.lbfactor=1 #代理數,不用修改
如果此文件不存在,則依以上內容創建。對Tomcat的設置進行任何修改後都要重啟才可以生效。
2、配置Apache
打開D:\Program Files\Apache2.2\conf下的httpd.conf,在最後加入下面這段代碼並保存。
LoadMole jk_mole moles\mod_jk-1.2.26-httpd-2.2.4.so
#此處mod_jk的文件為你下載的文件
JkWorkersFile "D:\Program Files\Tomcat\conf\workers.properties"
#指定tomcat監聽配置文件地址
JkLogFile "D:\Program Files\Tomcat\logs\mod_jk2.log"
#指定日誌存放位置
JkLogLevel info
#設置虛擬主機
<VirtualHost localhost>
#如果非虛擬主機,將<VirtualHost localhost>和最後的</VirtualHost>注釋或者刪除掉即可
ServerAdmin localhost
DocumentRoot E:/wwwroot
<Directory "E:/wwwroot">
#您的站點項目所在路徑,應與tomcat中的目錄設置相同,據說以上兩個必須同時設置才可以生效,沒有試過不同的時候會有什麼情況
ServerName localhost
DirectoryIndex index.html index.htm index.jsp
ErrorLog logs/shsc-error_log.txt
CustomLog logs/shsc-access_log.txt common
JkMount /servlet/* ajp13
#讓Apache支持對servlet傳送,用以Tomcat解析
JkMount /*.jsp ajp13
#讓Apache支持對jsp傳送,用以Tomcat解析
JkMount /*.do ajp13
#讓Apache支持對.do傳送,用以Tomcat解析
</VirtualHost>
#開頭的行為注釋,可以刪除。此處的配置我是以設置虛擬目錄,重新指定了serverName,DocumentRoot路徑的方式配置站點,實際上,Apache的配置可以非常靈活,你也可以不採用虛擬目錄的方式,而直接去修改站點的默認配置,使用任意文本編輯工具,搜索如 ServerName,DocumentRoot,ServerAdmin等相關項,然後將該項的配置根據你的實際情況進行修改即可。我建議大家可以多多嘗試不同的配置,這是一種很有樂趣的體驗。
所有的修改完成以後,雙擊系統托盤中的Apache圖標,然後點擊Start啟動Apache服務。
在地址欄中分別輸入,與:8080/若結果相同,Apache與Tomcat整合成功
安裝常見問題:
1.一啟動Apache出現「windows不能在本地計算機啟動Apache2」錯誤
多數情況是埠的問題,可能有其他軟體佔用了80埠,最好把Apache的埠改成81埠就可以了
2.windows下查看80埠佔用情況,適用於查看任何埠
開始–運行–cmd 進入命令提示符 輸入netstat -ano 即可看到所有連接的PID 之後在任務管理器中找到這個PID所對應的程序如果任務管理器中沒有PID這一項,可以在任務管理器中選」查看」-」選擇列」,經常,我們在啟動應用的時候發現系統需要的埠被別的程序佔用,如何知道誰佔有了我們需要的埠,很多人都比較頭疼,下面就介紹一種非常簡單的方法,希望對大家有用。
我們需要確定誰佔用了我們的80埠
在windows命令行窗口下執行:C:\>netstat -aon|findstr 「80″
看到了嗎,埠被進程號為2044的進程佔用,繼續執行下面命令:
C:\>tasklist|findstr 「2044″
avp.exe 2044 Console 0 37,680 K
很清楚吧,avp 卡巴監聽80埠,調整卡巴網路監聽設置。
當然,如果你的80埠被其他程序佔用,kill掉或者調整埠。