Java Web 環境設定

      在〈Java Web 環境設定〉中尚無留言

Tomcat for Linux

移除apt所安裝的tomcat9

Tomcat 11 的版本比 Tomcat 9 更快更穩定,所以先前若有使用 apt-get 安裝過 Tomcat 9 的人,請依如下步驟移除。

sudo apt-get purge tomcat9
sudo apt autoremove
sudo rm -rf /etc/tomcat9

下載及安裝

請到 https://tomcat.apache.org/download-11.cgi 下載Core版 .tar.gz檔,然後依如下步驟安裝。

🔒 底下內容僅限會員閱讀。

立即登入

更改 port

Tomcat 預設的 port 為 8080,如果跟系統相衝,請執行如下指令

vim /opt/tomcat/conf/server.xml

然後將 8080 修改成 8085

<Connector port="8085" protocol="HTTP/1.1"
		   connectionTimeout="20000"
		   redirectPort="8443" />

啟動及測試

執行如下指令即可啟動 Tomcat

cd /opt/tomcat/bin
./startup.sh #啟動 Tomcat
./shutdown.sh #關閉 Tomcat

然後於瀏覽器輸入伺服器虛擬 ip,即可看到 Tomcat 首頁。請注意工作機及伺服器必需在相同區域網路內。

http://192.168.1.10:8085

更改網頁根目錄

sudo vim /opt/tomcat/conf/server.xml,新增如下藍色部份。//server/JavaWeb 是整個 JavaWeb 專案根目錄,exploded 為專案編譯好發佈的目錄。

🔒 底下內容僅限會員閱讀。

立即登入

設定首頁

假設首頁的網址是 http://localhost:8085/index,若希望輸入 http://localhost:8085 也可以顯示首頁,請先開啟 /opt/tomcat/conf/web/xml,新增如下藍色部份。

注意,只能寫 「index」,不能寫 「/index」。

<welcome-file-list>
	<welcome-file>index</welcome-file>
	<welcome-file>index.html</welcome-file>
	<welcome-file>index.htm</welcome-file>
	<welcome-file>index.jsp</welcome-file>
</welcome-file-list>

設定啟動服務

sudo vim /etc/systemd/system/tomcat.service,並寫入如下指令

🔒 底下內容僅限會員閱讀。

立即登入

啟用服數及啟動Tomcat

sudo systemctl daemon-reload
sudo systemctl enable tomcat.service
sudo systemctl start tomcat.service
sudo systemctl status tomcat.service

Nginx設定

新增 /etc/nginx/sites-available/mahalrtc.ddns.net,撰寫如下設定

🔒 底下內容僅限會員閱讀。

立即登入

然後重新啟動 nginx

sudo systemctl restart nginx

設定SSL

執行如下指令,新增 SSL

sudo certbot --nginx

Tomcat for Window

本篇說明如何在Windows下安裝 Tomcat,若要在 Linux 下安裝 Tomcat,請參照本站 Ubuntu Tomcat 說明。

OpenJDK

安裝 Tomcat 之前,必需先安裝 OpenJDK,請到 Adoptium 或到微軟的 https://learn.microsoft.com/zh-tw/java/openjdk/download 下載。 

下載 Tomcat

Tomcat 本身可以把 Java 語法編譯成 Servlet,然後轉換成 Html 傳送給客戶端,所以它其實也是一個 Web server。那為什麼還要搭配 Apache 或 Nginx 這種 Web Server呢? 一來 Tomcat 在回應客戶端靜態請求的效能不佳,二來它只能編譯 Java,無法解讀PHP。

所以大部份的網站都是使用 Apache 或 Nginx 來當作 Web Server,然後外掛 PHP 來解讀 PHP 網頁,外掛Tomcat 編譯 Java。

若不考慮 Apache 或 Nginx,只想安裝 Tomcat 當作 Web Server 及 Java 編譯器,也是可以運作的。雖說效能較差,但在學習測試階段是撮撮有餘。

請到 http://tomcat.apache.org/ 下載 Tomcat。到 2025/06 最新的版本為 Tomcat 11.0,選擇 10.0 或 11.0 皆可,下載時請依如下圖所示選取 Windows Service Installer。

安裝

安裝時,Connector Port 預設為 80,考慮後面要與 nginx 搭配,所以請把 80 port 改為 8085。然後設定 User Name 及 Password。日後可以使用瀏覽器簡易管理 Tomcat,登入的帳密即為此時的設定,如下圖所示。

啟動權限

系統會將 Tomcat 安裝到 C:\Program Files\Apache Software Foundation 之下,但底下的 Tomcat 11.0 目錄無法進入。請在 Tomcat 11.0 按「右鍵/內容/安全性」,「權限」頁面按「繼續/新增/選取一個主體」,新增登入 Windows 的帳號,把「完全控制」打勾,最後按下「確定」,這樣就可以進入 Tomcat 11.0 目錄。

手動修改 Port

如果安裝 Tomcat 忘了把 80 port 改掉,請把 Tomcat 11.0 目錄下的 conf\server.xml 打開,會看到如下

<Connector port="80" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443"/>

把 port 改成所需的數字,比如 8085

<Connector port="8085" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443"/>

修改儲存完後,記得在右下角的工作區把 Tomcat Stop 再 Start ,這樣設定才會生效。

測試

如果上述的 port 設定為 80,打開瀏覽器輸入 http://localhost。若 port 設定為 8085,設輸入 http://localhost:8085,即可看到如下網頁。

更改網頁根目錄

開啟 C:\Program Files\Apache Software Foundation\Tomcat 11.0\conf\server.xml檔案,新增如下藍色的部份,docBase即為網頁根目錄。

<Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true">
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs" prefix="localhost_access_log" suffix=".txt" pattern="%h %l %u %t &quot;%r&quot; %s %b" />
<Context path="/" docBase="e:/server/mahalrtc/build/web" debug="0" reloadable="true"/>
</Host>

更改上述設定儲存後,請記得重新啟動 Tomcat 才能生效。請由右下角的Tomcat圖示按右鍵,Stop service後,再按下 Start service。

然後在網頁根目錄 (e:\server\mahalrtc\build\web) 下撰寫 first.jsp,內容如下

<html>
    <head>
        <meta charset="utf-8">
    </head>
    <body>
        <h1>Hello World</h1>
    </body>
</html>

然後在瀏覽器上輸入 http://localhost/first.jsp,即可看到Hello World的網頁。

開機自動啟動

在右下圖示按右鍵/configure,在 Startup type 選取 Automatic。

防火牆

防火牆的 8085 port 不需手動開啟,因為是由 nginx 直接轉換的。

Nginx 設定

使用 Nginx + Tomcat時請把 Tomat port 改成 8085,把 80 port 留給 Nginx。安裝好 Nginx 後,在 conf\nginx.conf 新增如下藍色的部份,將所有的檔案全都轉向給 Tomcat http://localhost:8085。

🔒 底下內容僅限會員閱讀。

立即登入

測試新網址

新的網址則改為如下

http://mahaljsp.ddns.net/first.jsp

新的網址省略了 8085 這個 port。

設定最大記憶体 -Xmx

Tomcat 啟動時,預設最大的記憶体是 256G。這對要處理 2 億像素的圖片會照成 OOM(Out of Memory),所以需把 Maximum memory pool 調大。

請點選右下角工作列的 Tomcata 圖示,選取 Configure,再選 Java 頁籤,將 Maximum memory pool 改成1024,如下圖所示,最後一定要重啟 Tomcat。

SSL for Windows Nginx

為了讓瀏覽器不再出現不安全的字樣,並防止駭客攔截資料,就必需使用 SSL 將資料加密,經過加密後的網址開頭會改成 https://

SSL 全名為 Secure Sockets Layer,由 Netscape 在1994 年推出。伺服器與客戶端之間的通訊,皆經過加密才傳遞,所以就算訊息被攔截,攔截者也只會看到一堆亂碼而以,完全無法解碼。

大部份的第三方 SSL 認証都需要付費,實在會讓人傾家盪產,還好有 Let’s Encrypt 可以免費使用,不過每三個月就要更新一次認証。在取得安全認証前,前面的正式網址 mahaljsp.ddns.net 一定要打通

Let’s Encrypt 的 Certbot 已停止支援 Windows 版本,所以需使用 Win-ACME 取代。Win-ACME 是社群開發的工具,此工具其實還是由 Let’s Encrypt 取得免費憑証服務。

請到官網 https://www.win-acme.com 由 Download 頁面下載 win-acme.zip 檔並置於 e:\server 下,執行「解壓縮至此」即可在 e:\server 下看到 wacs.exe。

nginx 加入 .well-know

ACME 取得SSL 憑証時,會將 .well-know 資料夾儲存在網頁根目錄(e:\server\tomcat)下,然後使用 http://xxx.ddns.net/.well-know 驗証這個網域是否為您所擁有。為了讓 ACME 能夠上述的網址連線,需先修改 nginx.conf 如下藍色部份。

🔒 底下內容僅限會員閱讀。

立即登入

設定 SSL

系統管理員啟動 Console 命令視窗,執行如下指令。

e:
cd e:\server
.\wacs.exe

一開始詢問該如何建立認証,請選取 M。

🔒 底下內容僅限會員閱讀。

立即登入

nginx 加入 SSL

使用 notepad++ 開啟 nginx\conf\nginx.conf,更改如下藍色設定

🔒 底下內容僅限會員閱讀。

立即登入

測試

在瀏覽器輸入 https://xxx.ddns.net/test.html 即可看到網頁

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *