WebSphere 應用服務器環境搭建實踐指南

1. 引言

與大多數商用應用服務器一樣,如果您計劃把WebSphere應用服務器(以下簡稱WAS)用於正式的生產環境或用於性能測試、生產前檢驗的測試環境,除了簡單地安裝步驟外,您還需要做一些額外的檢查、規劃和配置,來確保您的WebSphere應用服務器環境安全穩定運行。 WebSphere應用服務器各個版本之間安裝步驟差別不大,WAS V6.x版本比以前版本的安裝配置步驟中多了創建概要文件的過程,本文舉例的版本爲V6.1。在閱讀本文之前,推薦讀者先了解安裝WebSphere應用服務器的大致過程或相關概念。對於WebSphere應用服務器各版本的具體安裝步驟,請參照WebSphere應用服務器產品隨機安裝文檔以及WebSphere信息中心,DeveloperWorks上也有很多關於WAS環境搭建的參考文章,如:WAS5的安裝及其常見問題、在WAS6.0 ND中實現集羣等。



2. 安裝前準備

在搭建準生產環境的過程中,好的準備是成功的一半,推薦逐條進行以下安裝前準備工作。

2.1. 應用服務器硬件配置

WebSphere應用服務器能否順利安裝成功首先取決於目標平臺是否滿足安裝的軟件和硬件條件。WebSphere應用服務器對硬件配置的要求主要體現在待部署平臺的硬件架構、CPU、內存和磁盤存儲空間上,通常最低內存要求在512M以上,根據硬件平臺、WebSphere應用服務器版本、組件的不同,要求的配置也會略有區別。磁盤空間的分配請參見“2.4 確認磁盤空間是否滿足要求”。

2.2. 確認操作系統版本是否滿足要求

作爲一個成熟的商用應用服務器,WebSphere應用服務器會定期發佈不同WAS版本(例如WAS V5.0, WAS V5.1, WAS6.0…)、組件(例如:Application Server, Edge Component)支持的操作系統版本信息。使用WebSphere服務器支持的操作系統平臺,能確保應用服務器安裝、使用過程中環境的正常穩定運行。尤其要注意的是,如果操作系統平臺不是IBM WebSphere應用服務器官方支持的平臺,在WebSphere應用環境出現問題後則無法獲得WebSphere應用服務器的售後支持,更談不上解決問題了。

例如,在筆者寫這篇文章時,在x86芯片上,對於RedHat AS 4操作系統,如果要安裝WebSphere應用服務器V6.1的Application Server組件,則要求的操作系統版本是Red Hat Enterprise Linux AS, Version 4 with Update 2。如果您的操作系統版本是Red Hat Enterprise Linux AS, Version 4,則還需要安裝Update2,否則有可能遇到問題。

由於支持的操作系統版本是定期更新的,請在搭建WebSphere應用服務器環境前,參照系統詳細需求去查看當前操作系統版本(版本要與網上列出的完全一致)是否滿足WebSphere應用服務器要求。

2.3. 確認網絡配置/主機名滿足要求

在安裝WebSphere應用服務器過程中,創建概要文件這一步驟需要用戶填入機器的主機名(如圖1),並且,WAS運行時也需要用到主機名(Host Name)。主機名是WAS安裝節點的物理機器的網絡名,它必須解析到服務器上的物理網絡節點。創建概要文件中WAS使用的主機名的值可以是全限定 DNS 主機名(例如: hosta.cn.ibm.com)、短主機名(例如:hosta),或甚至是數字 IP 地址(例如:192.168.1.3),但必須是WAS所在服務器實際配置的主機名。而且,當WAS配置完畢投入使用之後,不推薦更改您設定的主機名,即使能改,過程也比較複雜。因此,根據實際經驗,我們推薦用戶在安裝WebSphere應用服務器之前配置主機名。如果採用全限定 DNS 主機名或短主機名,可以通過hostname命令來查看當前系統的主機名。如果沒有配置,則到hosts文件中添加相應的條目。


圖 1. 創建概要文件時填入主機名

  • 常見問題1:在安裝WAS之後,更改了主機名,WAS無法正常啓動或停止,日誌報錯:javax.naming.ConfigurationException: Cannot get canonical host name for server。或者報錯無法找到主機名xxx。因此,在創建WAS的概要文件之前,需要根據實際情況,選擇三種形式的主機名(全限定 DNS 主機名、短主機名或數字 IP 地址)中保持不變的那種主機名形式,作爲WAS使用的主機名,在概要文件創建嚮導(圖1)中填入。如果您使用 DHCP或者如果您經常更改 IP 地址,那麼我們推薦在概要文件創建時使用全限定 DNS 主機名或短主機名;如果機器ip固定,而全限定 DNS 主機名或短主機名有可能更改,則在概要文件創建中使用數字ip。
  • 常見問題2:如果您需要創建集羣,請確保網絡配置中,除了保證本機主機名配置正確外,還必須保證集羣所在機器之間互相能ping通主機名。否則集羣創建中add node一步可能不成功。

2.4. 確認磁盤空間是否滿足要求

考慮硬盤空間分配時,在UNIX或Linux平臺下可以用df –k 先查看各目錄大小。如果是在生產環境上安裝WebSphere應用服務器,一般要從以下幾個方面來計算要預留的空間。

  • WebSphere 應用服務器自身代碼的佔用空間。這個空間一般在1G左右,在不同的系統平臺上略有差異。應在WAS安裝目錄下預留此空間。WebSphere應用服務器在Linux下的默認安裝路徑是 /opt/IBM/WebSphere/AppServer,在AIX下的默認安裝路徑是/usr/IBM/WebSphere/AppServer(後面我們把此路徑簡稱爲WAS_HOME)。用戶可以在安裝WAS時修改此安裝路徑。
  • 概要文件所佔的空間。WebSphere應用服務器V6.1創建的概要文件基本類型有3種,每個概要文件所佔用的空間如下:應用程序服務器(Application Server):在WebSphere應用服務器安裝沒有選擇安裝樣本程序時,這一概要文件所佔磁盤空間約爲200M;Deployment Manager:30M;定製概要文件(Custom,即node agent):10M。
  • 如果要安裝WEB服務器,則在WEB服務器所在服務器上要預留WEB服務器所佔的磁盤空間。IBM HTTP服務器一般佔用110M左右的空間。
  • 如果安裝WEB服務器,則在WEB服務器所在機器上通常也要安裝Web Server Plug-in組件,該組件所佔磁盤空間約爲200M。
  • WebSphere 應用服務器系統日誌的佔用空間。日誌空間的估算要結合系統對日誌的配置情況。WebSphere應用服務器的主要日誌有SystemOut.log,SystemErr.log。我們可設置日誌文件的大小和保存的歷史日誌文件數量,從而可以估算出其需要的空間。請參考“必要參數的調整”部分了解如何調整WebSphere應用服務器日誌參數。
  • 如果有WEB服務器,需考慮WEB服務器的日誌空間。如果客戶開啓了WEB服務器的訪問日誌access.log(默認開啓),此日誌增長的速度極快,要預留足夠的空間。
  •  備份文件需要的空間。WebSphere應用服務器提供了一個備份命令(backupConfig.bat/sh),用來備份應用服務器的配置及其上應用。我們建議在系統穩定之後及時備份。對於一個典型生產系統,WebSphere應用服務器這個配置文件經常超過100M。可在發出backupConfig命令時,使用-logfile參數指定該備份文件的存放位置。
  • 系統出錯時日誌,例如,JVM在發生OutOfMemory時,在大多數平臺上WebSphere應用服務器會默認寫javacore文件和heapdump文件,記錄錯誤出現時的JVM Heap、線程情況,以備錯誤診斷使用。雖然可以調整應用服務器參數使之不產生此類文件,但爲了分析問題,通常需要從此類文件入手。這類文件通常都特別大,例如heapdump文件,可能達到幾百M。如果多次出現OutOfMemroy,對磁盤空間的佔用很快。因此,必須考慮爲此類文件預留磁盤空間。
  • WAS安裝程序還需要在系統的臨時目錄/tmp中有100M以上的空閒空間。
  • 用戶發佈到WebSphere應用服務器上所有應用程序以及應用自身的應用日誌的佔用空間。這個大小與實際應用相關,而且不同應用可以差別很大。

如要了解不同平臺具體的磁盤空間要求,請參考WAS V6.1信息中心“爲產品安裝準備操作系統”一節的內容。

2.5. 針對特定操作系統的調整

前面提到WebSphere應用服務器對支持的操作系統版本有明確要求,除此之外,WAS信息中心還對特定的操作系統版本安裝的包、內核參數等有特殊要求。例如,對於RHEL AS4,信息中心中說明必須安裝compat-libstdc++-33-3.2.3-47.3.ppc.rpm包(這是保持 C++ 運行時兼容性所必需的,供諸如 GSKit 的組件、Java 2 軟件開發包(SDK)以及 Web 服務器插件使用)以及其他一些包。對於Linux、Solaris、HP等系統,還需要調整一些相應的內核參數。請參照請WAS V6.1信息中心“爲產品安裝準備操作系統”一節的內容。對於Solaris系統,需要調整的參數列表列舉如下:

set shmsys:shminfo_shmmax = 4294967295
set shmsys:shminfo_shmseg = 1024
set shmsys:shminfo_shmmni = 1024
set semsys:seminfo_semaem = 16384
set semsys:seminfo_semmni = 1024
set semsys:seminfo_semmap = 1026
set semsys:seminfo_semmns = 16384
set semsys:seminfo_semmsl = 100
set semsys:seminfo_semopm = 100
set semsys:seminfo_semmnu = 2048
set semsys:seminfo_semume = 256
set msgsys:msginfo_msgmap = 1026
set msgsys:msginfo_msgmax = 65535
set rlim_fd_cur=1024

2.6. 對於Linux/Unix系統,確認能啓動圖形界面

WAS的安裝可以使用人機交互的圖形界面安裝或批處理安裝(稱爲靜默安裝,silent installation,預先寫好響應文件,安裝過程中不需要啓動圖形界面或者人機交互)。如果使用圖形界面安裝,在服務器是Linux/UNIX平臺時,我們通常沒有機會直接使用服務器的顯示屏/控制檯,而是通過自己的機器telenet到服務器上去。這種命令行直接telnet的模式下,可能不支持啓動圖形界面,需要用到Xmanager、X-Win32等支持X Window的工具軟件。你可以在命令行下敲入命令xclock進行測試。如果出現如圖2所示的圖形顯示,表明你能夠在你的終端上啓動圖形界面。


圖 2. 驗證能夠啓動圖形界面
 

2.7. 準備合適的安裝介質

WAS是跨平臺的產品,不同的UNIX、Linux、Windows平臺、32位或者64位操作系統上,安裝介質都是不一樣的,而且產品中包含了Application Server、Web Server、Edge Component等多種組件,當搭建WebSphere環境時,您需要從訂購的WAS產品包(包括各個平臺、組件的多張CD)中選擇需要的安裝介質。因此,安裝前我們需要根據安裝的WAS組件、操作系統版本、操作系統位數,選擇所需要的介質。例如,如果我們要在x86架構、64位(注意,這裏的64位是指操作系統是64位的)的Linux AS 4上安裝WAS,就應該選擇WebSphere Application Server for x86 64-bit Linux的安裝介質;如果我們要安裝IBM Http Server或者update installer,這兩個組件都是在WebSphere Application Server Supplements CD中,同理,根據操作系統版本、位數、服務器的芯片,我們就可以選出所需要的介質了。如果WAS安裝中需要打補丁,建議在安裝WAS前提前下載這些補丁以備安裝過程中使用。具體內容在“打補丁”一節詳述。

2.8. 設計WebSphere環境的拓撲架構

根據實際應用場景的不同,我們需要決定WAS、Web 服務器分別裝在哪些服務器上,如果需要配置集羣環境,還需要考慮Deployment Manager、各個結點和集羣成員都分部在哪些服務器上。例如,如果我們要配置一個集羣環境,安裝前,我們通常會先設計出如圖3的一張拓撲結構圖,以決定安裝中每臺服務器上實際安裝、配置的組件。例如,如圖3所示,圖中實線是運行時的請求流,虛線是WAS各組件間的控制流。我們可以看出,在hosta機器上,應該安裝WAS組件,並創建Deployment Manager、NodeA概要文件,配置集羣成員C1和C2;在hostb機器上,應該安裝WAS組件,創建NodeB概要文件,配置集羣成員C3和C4。在machine3機器上,應該安裝IBM Http Server和Plug-in組件。其中,WAS集羣的配置是非常方便的,可以在創建完概要文件之後靈活調整。


圖 3. 設計WAS拓撲架構
 

2.9. 其他常見注意事項

其他一些常見注意事項還包括權限、端口控制等等。例如:

  • WebSphere應用服務器在Unix/Linux系統上支持root用戶和非root用戶。但爲了操作設置的簡便性,通常都會在root用戶下進行。
  • 有的生產系統對端口訪問有限制,或者系統中可以已經佔用了 WAS 即將使用的默認端口,因此,需要更改WAS使用的端口(此任務將在“更改WAS使用的端口”中詳述)等等。
  • 如果需要創建集羣,請確保參與Cell環境的各臺機器之間時間一致、時區一致,建議誤差控制在秒級。否則在add node過程中可能不成功。



3. 安裝WebSphere應用服務器

安裝WAS的過程非常簡單,通常分爲3步:安裝WAS產品,爲產品打補丁(如果有補丁),創建概要文件。如果您的環境很乾淨,沒有一些特殊的限制,安裝過程大多數時候是點擊默認的“Next”。當然,根據環境的不同,通常會要注意以下方面:

3.1. 安裝WAS產品中的注意事項

使用圖形界面方式安裝WAS的過程十分簡單,通常不需要做特定的修改。下面列舉安裝中常見的一些注意事項和提高安裝速度的小竅門:

  • 通常,如果您的系統曾經安裝過WAS產品,安裝WAS產品之前,建議停掉正在運行的WAS進程。如果安裝IBM Http Server,通常最好停掉正在運行的Apache Http Server或者其他IBM Http Server進程。在Unix/Linux系統上,可以用 ps –ef |grep java 命令,去查看當前系統是否有was進程,用 ps –ef |grep httpd 命令,去查看當前系統是否有http server進程在運行。
  • 安裝WAS可以執行launchpad.bat/luanchpad.exe,啓動“啓動板”,從啓動板中點擊“啓動WebSphere Application Server的安裝嚮導”。如果無法成功啓動“啓動板”,直接到安裝介質目錄下的WAS目錄中,執行install.exe/install.sh即可。
  • 亂碼:啓動板或WAS安裝嚮導顯示的語言與本地操作系統語言設置有關。如果本地操作系統語言設置爲中文,則 WAS安裝嚮導就會顯示中文。如果發現嚮導中語言顯示爲亂碼,可以先把本地操作系統語言設置爲英文,使用英文語言安裝WAS。這樣安裝完畢的WAS仍然具有中文支持,不必擔心。在Unix/Linux平臺上,更改語言爲英文使用下列命令: export LANG=en_US
  • 安裝 WAS 過程中可以選擇是否安裝樣本應用程序(samples),爲了在開發環境和生產環境中都能獲得更高性能,請不要安裝樣本。通過省略樣本,可以將應用程序服務器啓動時間縮短 60% 並節省 15% 的磁盤空間;可以節省相當程度的進程佔用量;並且可以節省WAS產品安裝以及每次創建應用服務器概要文件的時間。
  • 一個可運行的 WAS 環境至少要包含一個概要文件。因此,WAS產品安裝過程中會讓用戶選擇要創建的初始概要文件。如果在安裝完WAS產品之後還要打補丁,建議此時先不要選擇創建任何初始概要文件(圖4),以節省打補丁所需的時間。如果在安裝期間未創建概要文件,安裝WAS產品結束後會顯示用於啓動“概要文件創建”嚮導的選項。基於同樣原因,如果需要打補丁,我們將把創建概要文件這個工作放到打補丁之後進行,因此此處不必選擇啓動“概要文件創建”嚮導。


圖 4. 安裝時不選擇創建初始概要文件
 

3.2. 打補丁

如果您使用的WAS版本已經推出市場一段時間,根據用戶的測試和使用情況, WAS會定期公佈補丁包(Fix Pack)或補丁(Fix)。建議先在測試環境中安裝補丁,確認安裝的補丁不會對您的運行環境帶來負面影響,再將補丁安裝到生產環境中。一旦您經過了適當的測試後,主動地安裝預防補丁,將避免一些可能導致您系統出故障的問題。

一般來說,WAS補丁的命名規範爲:版本名-產品名-產品組件名-平臺名-補丁編號名.pak。例如,6.1.0-WS-WAS-SolarisSparc64-FP0000007.pak ,這是WAS V6.1的WAS組件針對Solaris Sparc64操作系統的FP0000007補丁。如果您安裝了WAS,就需要產品組件名爲WASSDK和WAS的補丁;如果您安裝了IBM Http Server,就需要產品組件名爲IHS的補丁;如果您安裝了Plugin就需要產品組件名爲PLG的補丁。通常,同樣補丁編號的補丁,先裝WASSDK補丁,再裝WAS補丁。以後,每一次打補丁的過程,都是:

1) 把補丁文件拷貝到補丁工廠安裝目錄的maintenance目錄下;

2) 在補丁工廠的安裝目錄下,執行./update.sh命令啓動補丁工廠;

3) 在“安裝目錄”中選擇將要打補丁的組件的安裝目錄。通常,對WAS組件,補丁會自動識別出安裝位置;對於IBM Http Server(簡稱IHS)或者Plug-in這樣的組件,需要選擇正確的安裝位置;

4)在maintenance package selection頁面中選擇想要打的補丁。

3.3. 創建概要文件

概要文件是一組用於定義運行時環境的文件,每個概要文件都是一組完全隔離的運行時環境。前面我們提到了概要文件有三種基本類型。在創建概要文件的過程中,通常我們要了解以下細節:

  • 概要文件創建有兩種方式,圖形化創建嚮導和命令行方式。爲了操作的簡便和直觀,我們通常採用圖形化創建嚮導(執行WAS_Home/ bin/ProfileManagement/pmt.sh啓動該向導)。如果安裝的是64位的WAS,則沒有該圖形化創建嚮導工具。這時,請直接使用./manageprofiles.sh命令。例如:在UNIX平臺上創建一個Application Server類型的名爲AppSrv01的profile,使用manageprofiles命令可以如下操作:
    			export WAS_HOME=/opt/IBM/WebSphere/AppServer
    echo $WAS_HOME
    cd $WAS_HOME/bin
    ./manageprofiles.sh -create -profileName AppSrv01
    -profilePath $WAS_HOME/profiles/AppSrv01
    -templatePath $WAS_HOME/profileTemplates/default
    -hostName kcgg1d7.itso.ibm.com -enableAdminSecurity true
    -adminUserName adminUser_ID -adminPassword adminPassword

    注意,命令和參數大小寫敏感的。Manageprofiles命令的語法和更多參數選項請參見紅皮書sg247304.pdf或信息中心。

  • 在“確認網絡配置/主機名滿足要求”一節中,提到了選擇適當的主機名;在創建概要文件(圖1)過程中,大多數情況下向導自動識別出的主機名就符合要求,否則我們需要向概要文件嚮導中填入適當的主機名。在同一臺機器上用概要文件創建嚮導創建多個profile時,自動識別的主機名可能是加上域名的全限定名稱例如hosta.cn.ibm.com,也可能是短名hosta。這兩種形式都支持,但是不要在一個cell (Cell指WAS多個實例組成的一個受管域)中混用這兩種名稱方式。
  • 創建應用程序服務器概要文件過程中,可以根據需要選擇創建適用於開發環境或生產環境使用的應用服務器實例。例如,對於開發環境,我們可以選擇使用開發模板來創建服務器,開發模板針對開發目的進行了優化的配置,減少了WAS啓動時間並允許服務器在功能較少的硬件上運行。但在生產環境中,不要選擇“使用開發模板”。
  •  概要文件創建過程中我們可以選擇“啓用管理安全性”,讓用戶在進行登陸管理控制檯、停止WAS實例等管理任務時需要輸入用戶名/密碼。注意,如果在創建概要文件過程中沒有啓用管理安全性,或者啓用管理安全性之後希望修改用戶名或密碼,都可以在概要文件創建完畢之後再次進行修改(請參見“管理安全性”)。
  • 創建概要文件過程中可查看/更改該概要文件所佔的port。圖5顯示了創建的這個概要文件實例啓動時將佔用的端口,我們可看到管理控制檯端口是9060,Http傳輸端口(也就是應用訪問端口)是9080。如果用命令行方式創建概要文件嚮導,無法通過圖形化顯示看到這些端口,如果希望查看端口,可以在概要文件創建完畢後查看配置得到端口值(請參見“查看/更改應用服務器端口”);如果希望修改這些端口,則可以在概要文件創建中用參數-portsFile或-startingPort指定端口。當然,所有這些端口值都可以在概要文件創建完畢之後再次修改。

    圖 5. 創建概要文件中顯示端口
     



4. 必要參數的調整

在生產環境中安裝WAS完畢並創建了一個可用的概要文件之後,必須根據實際情況進行必要參數的調整,以便提高WAS性能、方便錯誤診斷。這些參數通常要結合運行環境的實際情況、實際的併發量和服務器的資源利用情況進行調整。完整的調優涉及操作系統、應用、應用服務器和數據庫的綜合調整,具體要調整的參數、含義。本文提出的只是針對應用服務器本身一些重要的參數調整的指導原則和經驗之談,以便讀者能夠快速起步:

  • Java虛擬機堆大小(JVM Heap Size): 控制JVM代碼可使用的堆大小,單位M。該參數在服務器->應用程序服務器>進程定義>Java虛擬機中進行設置。JVM最大堆大小默認是256M,在生產環境中通常要根據機器物理內存情況、應用運行特性來設置,且多數情況下都要把此參數調大。根據經驗,內存充足時,通常的調整在500M到1024M之間。需要注意的是,建議JVM Heap的最大值不要超過1024M,如果JVM Heap Size過大,可能會引起內存分頁,或者造成JVM垃圾回收時間過長,反而影響應用服務器性能。
  • Web容器線程池:該參數在“服務器 > 應用程序服務器 > server1 > 線程池”的“WebContainer”中進行設置(如圖6),默認值是10到50。如果硬件資源允許,通常會把線程池的最大大小調到100。

    圖 6. 調整線程池
     
  • 數據源連接池:該參數在資源->JDBC->數據源->數據源名稱,選擇“連接池設置”中設置,默認大小爲1到10。根據資源設置的隊列(Queue)原則,從Web容器線程池,到數據源連接池的參數設置,應該是從大到小的管道。前面我們列舉了Web容器線程池的最大值設置100,對於數據源連接池,設置的最大值通常不超過50。多數情況下調整爲30。實際運行中可以修改此參數值,觀察調整對性能是否有正面影響。注意,如果把數據庫連接池最大大小調得過大,JVM有限的資源都耗費在維護連接池、處理與數據庫連接上,可能反而造成WAS性能的下降。
  • WAS 進程日誌參數:WAS進程日誌常用的有SystemOut.log和SystemErr.log。這兩份日誌默認大小爲1M,歷史日誌文件數爲1份。在生產環境中,這樣的設置通常不足以充分保存發生問題時的錯誤信息。我們可以通過修改日誌默認大小、歷史日誌文件數來保存更多的信息。注意,不要把單份日誌文件大小設置過大(例如,超過10M以上),否則可能影響WAS性能。另外,我們建議把應用日誌與WAS日誌分離開。如果應用中大量以System.out.print或者System.err.print來保存應用狀態日誌,也可能會影響服務器性能。

    圖 7. 修改WAS日誌屬性
     
  • Heapdump文件:前面我們提到,Heapdump文件對磁盤空間佔用很快,因此,可以設置IBM_HEAPDUMP參數把Heapdump文件存放到指定目錄下。
  • Web服務器的訪問日誌access.log:IBM Http Server的訪問日誌access.log默認是打開的,其中記錄了經過Http服務器的請求信息。在高併發的系統中,這一日誌增長非常過,當日志過大時,可能佔用過多磁盤空間或引起性能下降,如果您的系統不需要這份日誌,或者有其他技術手段保存用戶訪問信息,可以關閉該日誌。具體做法爲:打開IBM Http Server安裝目錄/conf目錄下的httpd.conf文件,搜索CustomLog,把CustomLog所在行用#註釋掉即可。



5. 常見的日常管理任務

由於生產環境訪問控制的需要,搭建WebSphere環境之後,通常可能會要求修改應用訪問端口,或者更改WAS管理員密碼,啓用/停用管理安全性等等。

5.1. 查看/更改應用服務器端口

應用服務器安裝完畢之後,爲了避免生產環境中的端口衝突、端口訪問控制,有時我們需要查看或更改應用服務器的端口。

  • 查看端口
  • 更改應用訪問端口

    默認情況下,WAS的管理控制檯和應用訪問是兩個不同的端口。訪問WAS的管理控制檯或者WAS上部署的應用,所使用的端口由應用服務器端口以及虛擬主機決定。假設我們要把應用訪問的端口從9080變成9082(實際工作中,如果沒有Web服務器,有的環境會希望把應用訪問端口變成80,方法類似),則按如下步驟進行:登陸WAS管理控制檯,選擇 左邊菜單 服務器 - 應用服務器,點擊 server1,選擇“端口”,點擊“WC_defaulthost”(如圖8),修改端口爲自己想要的任意端口(注意避免端口衝突),例如,9082。然後點擊“確定”。然後“保存”。



    圖 8. 修改應用訪問端口
     

    然後,選擇 左邊菜單 環境 - 虛擬主機,點擊”default_host”,選擇“主機別名”(如圖9),把原有端口9080改成與前面應用服務器/端口/WC_defaulthost一致的端口,例如,9082。或者點擊“新建”,把在WC_defaulthost修改之後的端口號填入,點擊“確定”、“保存”。



    圖 9. 修改虛擬主機
     

    當然,如果你在前面應用服務器/端口/WC_defaulthost中設置的端口已經出現在虛擬主機/default_host/主機別名的列表中,則不需要做改動或者新增主機別名端口的工作。目的就是要讓 應用服務器/端口/WC_defaulthost的端口出現在 虛擬主機/default_host的主機別名列表中。更改在重啓WAS服務器之後生效。

  • 更改WAS管理控制檯端口

    登陸WAS管理控制檯,選擇 左邊菜單 服務器 - 應用服務器,點擊 server1選擇“端口”。然後更改WC_adminhost爲自己希望的管理控制檯端口。然後點擊“確定”、“保存”。選擇 左邊菜單 環境 - 虛擬主機,點擊;然後選擇admin_host,選擇“主機別名”。把原有端口9060改成與前面應用服務器/端口/WC_adminhost一致的端口,例如,9063。或者點擊“新建”,創建一個主機別名 *, 9063。然後“確定”,“保存”。目的就是要讓 應用服務器/端口/WC_adminhost的端口出現在 虛擬主機/admin_host的主機別名列表中。

5.2. 管理安全性

針對生產環境要求的多變性,實際WAS環境搭建中可能涉及管理安全性的多種操作。

  • 啓用管理安全性

    啓用管理安全性將激活用於防止未經授權的用戶使用服務器的設置,簡單來說,進入管理控制檯、更改應用服務器配置、停止應用服務器進程這些管理任務,都需要輸入預先定義的用戶名和密碼才能完成。缺省情況下,創建概要文件時會啓用管理安全性(圖9)。如果在創建概要文件時沒有選擇“啓用管理安全性”,在隨後使用過程中又希望啓用,則可按如下步驟進行:

    首先進入控制檯,例如:http://was_ip:9060/admin,注意這裏登陸的用戶一定要是設置安全性的用戶。例如,admin。選擇“安全性”>“安全管理、應用程序和基礎結構”,然後點擊“安全配置嚮導”(圖10)。爲了配置的簡便性,在“指定保護範圍”中,可以不選擇“使用 Java 2 安全性來限制應用程序訪問本地資源”;在“選擇用戶存儲庫”中接受默認選項,用戶存儲庫爲“聯合存儲庫”,點擊“下一步”;在配置用戶存儲庫中填入用戶名、密碼。如果您是第一次啓用管理安全性,則輸入一個新的用戶名(您登陸管理控制檯的用戶名)和密碼。這個用戶名密碼是任意的,並不要求是操作系統用戶,因爲聯合存儲庫默認的用戶條目來自於文件;如果以前曾經使用該存儲庫啓用過管理安全性,則使用存儲庫中持有管理員特權的用戶名和密碼。點擊“下一步”、“完成”。保存之後重啓應用服務器,這時登陸管理控制檯等就需要提供您預定義的用戶名/密碼了。



    圖 10. 配置管理安全性
     
  • 停用管理安全性

    停用管理控制檯很簡單,在圖10所示頁面,不選擇“啓用管理安全性”,點擊“應用”,保存並重啓應用服務器即可。有一種特殊情況下,特如忘掉了管理員密碼,此時我們無法登陸管理控制檯,從而無法在管理控制檯中停用管理安全性。這時,可從$WAS_HOME/profiles/xxx概要文件名/bin目錄下,發出如下命令: wsadmin -conntype NONE 。當wsadmin的命令行窗口出現之後,發出下列命令: securityoff 。上述操作在應用服務器啓動或停止的狀態都能發出。再次啓用WAS時,就是停用管理安全性的狀態了。

  • 更改管理員密碼

    當我們需要更改管理員密碼時,可以選擇“用戶和組”>“管理用戶”,如圖11,在搜索內容爲“*”時點擊“搜索”,會列出該存儲庫中的所有用戶。選中管理用戶標識,可更改該用戶的密碼。更改即時生效。



    圖 11. 管理用戶
     
  • 忘記管理員密碼

    如果忘記管理員密碼,我們無法進入管理控制檯更改密碼。此時,需要先用“停用管理安全性”一節中wsadmin命令的方法,停用管理安全性,然後“更改管理員密碼”,再次“啓用管理安全性”即可。

  • 創建更多的管理用戶

    使用啓用管理安全性的WAS環境時,默認情況下只有一個管理員ID,這意味着同一時刻只有一個人能登陸管理控制檯。這對於多人開發小組在同一WAS環境發佈測試時並不方便。您可先在存儲庫中創建一個用戶,然後爲該用戶ID分配相應的管理角色。具體步驟如下:1)選擇“用戶和組”>“管理用戶”,如圖24,點擊“添加”,添加一個用戶ID,例如,admin1。保存。 2) 選擇“用戶和組”>“管理用戶角色”,如圖25,填入用戶名(必須是在存儲庫中已經存在的用戶名),選擇相應的管理角色,例如,“管理員”。點擊“確定”,保存。這樣,下次重啓WAS時,兩個用戶都能同時登陸管理控制檯。



    圖 12. 管理用戶角色
     

5.3. 備份/恢復概要文件

生產環境、概要文件配置過於複雜或經常更改時,我們需要定期備份概要文件,以便必要時快速恢復。您可使用backupConfig 命令備份配置文件。例如,要備份概要文件AppSrv01的當前配置,可以從$WAS_HOME/profiles/AppSrv01/bin目錄下,發出命令 backupConfig,它會將AppSrv01當前概要文件默認生成一個壓縮包,您也可以指定該壓縮包的名稱,例如:backupConfig WebSphereConfig_2007_05_30.zip。恢復配置時,使用restoreConfig WebSphereConfig_2007_05_30.zip。

5.4. 正確卸載WAS

需要提醒的是,WAS的卸載過程不是直接刪除目錄,如果這樣做,下次你可能無法在同一臺機器上成功安裝WAS。在卸載WAS之前,先停止機器上的WAS進程,用ps –ef |grep java確保沒有was進程在運行。然後,執行WAS_HOME/uninstall/uninstall.sh命令卸載WAS。如果因爲某些特殊原因卸載嚮導引導的卸載過程沒有成功(例如,您直接刪除了WAS安裝目錄),或者您希望在同一目錄再次安裝WAS,請參照信息中心“手工卸載”給出的建議。



6. 應用的部署

應用部署通常會涉及如下幾個任務:配置應用所需要的環境:如系統變量、虛擬主機、類路徑、安全性等等;配置應用所需要的資源如JMS資源、數據源等。其中,需要注意的是:

  • 應用打包:部署在 WebSphere 應用服務器上的應用可以是打包的*.ear/*.war文件,也可以是未打包但符合J2EE規範要求的組件。在生產環境中,推薦使用打包的*.ear/*.war文件,便於版本控制和管理。
  • 管理 Utility Jar包:大多數J2EE應用都會有一些公用的Utility Jar包,首先要強調的是:一定要避免在同一個類載入路徑下存在同一個類的多個版本!這會在實際運行中帶來很多莫名其妙且難以診斷的問題。其次,對於JDBC驅動這類通用等級較高的Utility Jar包,可以放置在<WAS_HOME>/lib/ext目錄下;對於多個應用共享的Utility Jar,可以放在 <WAS_HOME>/lib/ext中,也可以放在shared library(共享庫)中,推薦放在shared library中;對於單個應用使用的Utility Jar,可與應用打包在一起,或放入shared library中。共享庫的使用能夠避免Utility Jar包多個版本的混亂,以及Utility Jar包的衝突。共享庫配置方法請參見紅皮書sg247304 12.5.4 Step 4: Sharing utility JARs using shared libraries章節。
  • Jar 包衝突:Jar包衝突問題在大型Java軟件開發中經常遇到,簡單的說,當不同應用使用的公用Utility Jar包、應用服務器底層的Jar包中存在同名、且版本不同的類時,我們稱之爲Jar包衝突。
  • 會話超時:針對應用場景的不同,不同應用期望的會話超時時間各不相同。WebSphere應用服務器的會話管理分爲Application server、Application、Web Module三個級別。顧名思義,在每個特定級別上更改的會話管理的配置,對當前級別起作用。部署在WebSphere應用服務器上的應用,默認的會話超時時間爲30分鐘,默認的會話管理級別是Application Server。如果您期望更改您的應用,例如,DefaultApplication的會話超時時間,可按如下步驟進行:選擇應用程序>應用程序名>會話管理(圖13),選擇“覆蓋會話管理”,並在“設置超時”中填上期望的會話超時時間。點擊“確定”保存即可。

    圖 13. 會話管理
     
  • 當應用需要通過寫Java環境變量的方式配置一些變量時,可在應用服務器啓動腳本中用-D參數指定,也可以在應用程序服務器 > 應用程序服務器名(例如,server1) > 進程定義 > Java 虛擬機中設置“通用JVM參數” -Daaa=xxx。
發佈了43 篇原創文章 · 獲贊 1 · 訪問量 6萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章