CodeGym /Adesua ahorow /Docker SELF /安裝和配置網頁伺服器 (Nginx/Apache)

安裝和配置網頁伺服器 (Nginx/Apache)

Docker SELF
等級 7 , 課堂 0
開放

安裝和配置網頁伺服器 (Nginx/Apache)

1. 什麼是網頁伺服器?

今天我們要聊的是 NginxApache,這兩個最受歡迎的網頁伺服器。等到講座結束,你的伺服器就可以自信滿滿地向網路上的使用者打招呼啦!

在動手輸入指令之前,我們先搞清楚我們到底要幹嘛。網頁伺服器是一個用來接收 HTTP 請求(比方說使用者打開瀏覽器輸入網站地址的時候),處理這些請求並回應相應內容的程式(可能是一個 HTML 頁面、一個檔案,或者一個「404 Not Found」錯誤)。它是使用者和你的內容之間的橋樑。

Nginx vs Apache: 網頁伺服器之戰

如果 Nginx 和 Apache 在咖啡館碰上了,那麼:

  • Nginx 可能會點一杯薰衣草拿鐵,然後用非同步的方式快速解決所有事情:「你把請求給我,我一分鐘內把檔案傳回去,別打擾我!」
  • Apache 則比較傳統,為每個任務建立一個執行緒,慢條斯理地回應,雖然在處理大量請求時稍慢些。

簡單比較:

特點 Nginx Apache
架構 非同步 基於執行緒
效能 高負載時效能優越 適合動態內容 (PHP/Perl)
簡易性 配置簡單,但有些細節需要注意 更通用,但也更複雜

什麼時候選擇什麼?

  • 如果你的網站是一些靜態檔案(比如部落格或著陸頁),Nginx 是你的好朋友。
  • 如果你在處理動態網頁應用程式(比如 PHP 網站),Apache 會提供更多的靈活性。

2. 安裝 Web 伺服器

現在,你已經明白了為什麼需要這個,現在該開始安裝了。我們將介紹如何安裝 Nginx 和 Apache。選擇你比較喜歡的,或者同時安裝兩個,這樣更有專業感喔。

安裝 Nginx

  1. 更新套件列表:

    sudo apt-get update
    
  2. 安裝 Nginx:

    sudo apt-get install nginx
    
  3. 檢查伺服器狀態:

    sudo systemctl status nginx
    

    如果一切正常,你會看到像這樣的東西:active (running)

  4. 測試預設頁面: 打開瀏覽器,輸入 http://localhost。你應該可以看到 Nginx 的歡迎頁面,這表示安裝成功了。

安裝 Apache

  1. 更新套件列表:

    sudo apt-get update
    
  2. 安裝 Apache:

    sudo apt-get install apache2
    
  3. 檢查伺服器狀態:

    sudo systemctl status apache2
    

    和 Nginx 一樣,狀態應該是「active (running)」。

  4. 測試預設頁面: 打開瀏覽器,輸入 http://localhost。這時候應該會顯示 Apache 的預設頁面。


3. Web 伺服器的基本設定

設定藏在哪裡?

  • Nginx 的主要設定檔案路徑是:

    /etc/nginx/nginx.conf
    
  • Apache 的路徑是:

    /etc/apache2/apache2.conf
    

試著用你喜愛的編輯器(例如 nano)來打開設定檔案:

sudo nano /etc/nginx/nginx.conf
重要!

這是你第一次冒險的起點:一開始可能會完全看不懂,因為設定檔看起來像角色扮演遊戲裡的咒語。但別擔心—我們會一起弄清楚。

啟動、停止與重啟伺服器

如果你懂得如何在 Linux 中管理服務,那麼「事情已經完成一半了」。以下是管理我們 Web 伺服器的主要指令:

對於 Nginx:

sudo systemctl start nginx   # 啟動
sudo systemctl stop nginx    # 停止
sudo systemctl restart nginx # 重啟
sudo systemctl reload nginx  # 重載設定

對於 Apache:

sudo systemctl start apache2
sudo systemctl stop apache2
sudo systemctl restart apache2
sudo systemctl reload apache2

檢查設定

在重啟伺服器之前,務必要檢查你是否犯錯:

  • 對於 Nginx

      sudo nginx -t
    
  • 對於 Apache

      sudo apachectl configtest
    

任何設定錯誤都會顯示出來—你不會不小心弄壞伺服器。


4. 示範:運行我們的第一個網站

現在我們要做的是每個網頁開發者都很喜歡的事情——創建一個網站,取一個超級有創意的名字「Hello Server」。

對於 Nginx

  1. 創建網站目錄:

    sudo mkdir -p /var/www/hello
    sudo nano /var/www/hello/index.html
    

    在文件中寫下這些內容(沒錯,所有的天才創意都很簡單):

    <h1>Hello, Nginx Server!</h1>
  2. 配置設置:

    sudo nano /etc/nginx/sites-available/hello
    

    以下是簡單的配置樣例:

    server {
        listen 80;
        server_name hello.local;
    
        root /var/www/hello;
        index index.html;
    
        location / {
            try_files $uri $uri/ =404;
        }
        }
  3. 啟用配置:

    sudo ln -s /etc/nginx/sites-available/hello /etc/nginx/sites-enabled/
    sudo nginx -t
    sudo systemctl reload nginx
    
  4. /etc/hosts 添加條目,把域名 hello.local 配置到本地機器上:

    127.0.0.1 hello.local
    
  5. 在瀏覽器中檢查網站:http://hello.local

重要!

hosts 文件包含 IP 地址到域名的映射。這是你的本地 DNS 伺服器。每個操作系統中都會有這個文件。在 Windows 系統中,這個文件的位置是 C:\Windows\System32\drivers\etc\hosts

對於 Apache

  1. 創建目錄:

    sudo mkdir -p /var/www/hello
    sudo nano /var/www/hello/index.html
    

    填寫文件:

    <h1>Hello, Apache Server!</h1>
  2. 創建虛擬主機配置:

    sudo nano /etc/apache2/sites-available/hello.conf
    

    以下是配置樣例:

    <VirtualHost *:80>
        ServerName hello.local
        DocumentRoot /var/www/hello
    
        <Directory /var/www/hello>
            Options Indexes FollowSymLinks
            AllowOverride All
            Require all granted
        </Directory>
    </VirtualHost>
  3. 啟用配置:

    sudo a2ensite hello.conf
    sudo systemctl reload apache2
    
  4. 添加條目到 /etc/hosts

    127.0.0.1 hello.local
    
  5. 檢查運行狀況:http://hello.local


今天的課程後,大家已經準備好能夠自行安裝和配置主要的網頁伺服器了。再稍微努力一下,就能部署真正的網站和應用程式,再也不像兒童的畫作了。HTTPS 正在某個角落潛伏,但我們稍後再學。

留言
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION