13. 設定 Ubuntu 伺服器以託管網站和 Web 應用程式:終極指南

簡介:設定 Ubuntu 伺服器以託管網站和 Web 應用程式

Ubuntu Server 是一款強大而靈活的作業系統,深受開發人員和系統管理員信賴,廣泛用於託管和 Web 應用程式部署。無論您是架設伺服器來託管網站、管理基於雲端的服務,還是部署現代 Web 應用程式,Ubuntu Server 都能提供您成功所需的可靠性、可擴充性和工具。

在本指南中,我們將帶您完成為託管和 Web 應用程式環境設定 Ubuntu 伺服器的基本步驟。從架設 Web 伺服器(Apache 或 Nginx),到使用 SSL 保護您的網站,再到針對生產環境最佳化效能,本文將協助您建置一台功能完備的伺服器,隨時滿足您的託管和應用程式需求。


往期文章:

01. Ubuntu Server 簡介 – SysOSX: AI & Cloud

02. 如何架設您的第一台 Ubuntu 伺服器:初學者指南 – SysOSX: AI & Cloud

03.精通 Ubuntu Server 的 Linux 命令列 – SysOSX: AI & Cloud

04. 在 Ubuntu Server 上管理使用者和權限:綜合指南 – SysOSX: AI & Cloud

05. Ubuntu Server 網路基礎:綜合指南 – SysOSX: AI & Cloud

06. 在 Ubuntu Server 上安裝和管理軟體:完整指南 – SysOSX: AI & Cloud

07.Ubuntu Server 的修補程式與更新:綜合指南 – SysOSX: AI & Cloud

08. 保護您的 Ubuntu 伺服器:強化與防護的實用步驟 – SysOSX: AI & Cloud

09. Ubuntu 伺服器稽核與日誌記錄

10. Ubuntu Server 系統監控工具:綜合指南 – SysOSX: AI & Cloud

11. Ubuntu 伺服器集中式日誌記錄:必讀指南 – SysOSX: AI & Cloud

12. Ubuntu Server 稽核與合規:最佳實務 – SysOSX: AI & Cloud



📋 先決條件清單

  • Ubuntu Server 22.04 LTS(或更新版本)
  • 具有 sudo 權限的終端存取
  • 網域名稱(建議用於 SSL)
  • 基本的 Linux 指令知識
  • 最少 1GB 記憶體(建議 2GB)

🛠 初始伺服器設定

# Update system packages
sudo apt update && sudo apt upgrade -y

# Install essential tools
sudo apt install -y curl wget

🔥 防火牆設定

服務允許的連接埠指令
Apache80, 443sudo ufw allow 'Apache Full'
Nginx80, 443sudo ufw allow 'Nginx Full'
SSH22sudo ufw allow OpenSSH

啟用防火牆: sudo ufw enable


🌐 Web 伺服器比較

特性ApacheNginx
架構處理程序驅動事件驅動
最適合傳統 Web 應用程式高流量/靜態內容
設定語法.htaccess 檔案伺服器區塊
效能良好優秀
SSL 設定mod_sslOpenSSL

🐧 Apache 設定指南

1. 安裝 Apache

sudo apt install apache2 -y

2. 虛擬主機設定

檔案: /etc/apache2/sites-available/yourdomain.conf

<VirtualHost *:80>
    ServerAdmin [email protected]
    ServerName yourdomain.com
    DocumentRoot /var/www/yourdomain
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

啟用設定:

sudo a2ensite yourdomain.conf
sudo systemctl reload apache2

🚀 Nginx 設定指南

1. 安裝 Nginx

sudo apt install nginx -y

2. 伺服器區塊設定

檔案: /etc/nginx/sites-available/yourdomain

server {
    listen 80;
    server_name yourdomain.com www.yourdomain.com;
    root /var/www/yourdomain;
    
    location / {
        try_files $uri $uri/ =404;
    }
}

啟用設定:

sudo ln -s /etc/nginx/sites-available/yourdomain /etc/nginx/sites-enabled/
sudo nginx -t && sudo systemctl reload nginx

🔒 使用 Let’s Encrypt 設定 SSL

對於 Apache:

sudo apt install certbot python3-certbot-apache -y
sudo certbot --apache --agree-tos -m [email protected] -d yourdomain.com

對於 Nginx:

sudo apt install certbot python3-certbot-nginx -y
sudo certbot --nginx --agree-tos -m [email protected] -d yourdomain.com

自動續期測試:

sudo certbot renew --dry-run

🧪 驗證測試

  1. HTTP 狀態檢查: curl -I http://yourdomain.com
  2. SSL 驗證: openssl s_client -connect yourdomain.com:443
  3. 伺服器標頭檢查: curl -I | grep "Server"

🚨 故障排除技巧

  • 權限問題: sudo chown -R www-data:www-data /var/www/yourdomain
  • 連接埠衝突: sudo lsof -i :80
  • 設定錯誤: sudo journalctl -xe
  • SSL 續期: sudo certbot renew --force-renewal

📚 重要資源

  1. Apache 安全強化指南
  2. Nginx 效能調校
  3. Let’s Encrypt 文件
  4. Ubuntu Server 安全性

💡 專業技巧

  • 使用 systemd 進行服務管理:
sudo systemctl [start|stop|restart|status] apache2/nginx
  • 啟用 HTTP/2 以獲得更好的效能
  • 使用以下工具設定自動備份: rsync
  • 使用以下工具監控流量: goaccess 或 ngxtop

最終建議:
對於大多數使用者,Nginx 開箱即用效能更好,而 Apache 則透過 .htaccess 檔案提供更大的靈活性。請根據您的具體應用需求進行選擇。

敬請期待下一篇文章

在下一篇文章中,我們將深入探討 在單一 Ubuntu 伺服器上託管多個網站! 在單一 Ubuntu 伺服器上託管多個網站 對於開發人員、小型企業和愛好者來說是一種經濟高效的解決方案。在下一篇文章中,我將引導您設定 虛擬主機 ,即在 Apache 和 Nginx 中進行設定,以便在同一伺服器上託管多個網站。

3 thoughts on “13.Setting Up Your Ubuntu Server for Hosting and Web Applications: Ultimate Guide”

發表留言