NGINX 是一個開源的 Web 服務器軟件。 您可以將 NGINX 部署為獨立的 Web 服務器,或作為其他 Web 服務器前面的代理(本質上是反向代理)。 Nginx 是託管高流量網站的最佳網絡服務器之一。
在本教程中,我們將重點介紹 安裝 NGINX 作為獨立的網絡服務器 Ubuntu 20.04.
在 Ubuntu 20.04 上安裝 NGINX
首先運行 sudo apt-get 更新 在繼續安裝 NGINX 之前檢索有關新包和更新包的信息。
Nginx 在 Ubuntu 包存儲庫中可用。 因此,使用以下命令很容易安裝 Nginx:
$ sudo apt-get install nginx
檢查 NGINX 服務狀態
讓我們快速檢查以確認 NGINX 服務的狀態,運行以下命令:
$ sudo systemctl status nginx
上面命令的輸出確認 NGINX 是 活動和運行. 如果您收到一條消息表明 NGINX 處於非活動狀態、未啟動或未運行,那麼您可以通過運行以下命令手動啟動 NGINX 服務。
$ sudo systemctl start nginx
要檢查 Nginx 版本,請運行:
$ sudo dpkg -l nginx

輸出顯示 Nginx 版本 1.18.0 在撰寫本教程時,它正在 Ubuntu 20.04 上運行。
測試 NGINX Web 服務器
在確認 NGINX 服務處於活動狀態並正在運行後,您現在可以通過打開首選 Web 瀏覽器並輸入安裝 NGINX 的服務器的 IP 地址 (https://your_server_ip) 來測試 Web 服務器。
您應該會看到標題為“的默認網頁”歡迎來到 Nginx!”

此外,請確認防火牆上的相應端口已打開。 例如,如果您啟用了 簡單防火牆 (ufw) 在您的 Ubuntu 服務器上,您應該嘗試更新防火牆規則以允許 NGINX 在端口 80 和/或 443 上進行通信,如下所示。
要在端口 80 上允許 NGINX:
$ sudo ufw allow 'Nginx HTTP'
要在端口 443 上允許 NGINX:
$ sudo ufw allow 'Nginx HTTPS'
設置 NGINX 服務器塊
如果你想在同一個 NGINX web 服務器上託管多個網站,那麼你需要設置服務器塊。 服務器塊也稱為虛擬主機(主要在 Apache)。
NGINX 只預配置了一個服務器塊,這就是 默認網站 (/etc/nginx/sites-available) 被存儲 (/var/www/html)。
讓我們來看看。
$ sudo ls -l /etc/nginx/sites-available
total 8
-rw-r--r-- 1 root root 2416 Mar 26 2020 default
運行以下命令以顯示默認服務器塊文件的內容。
$ sudo cat /etc/nginx/sites-available/default | more
按鍵盤上的空格鍵一次向下滾動一頁。 您將看到該文件包含默認服務器配置詳細信息,例如偵聽端口號、文檔根目錄(即用於存儲網站內容的基本文件夾)、索引文件和服務器名稱。
您還應該看到一個標題為 虛擬主機配置 如下所示。 您可以在此處配置您的其他網站,但最好創建一個單獨的服務器塊文件並保留默認文件。
/etc/nginx/sites-available/default
# Virtual Host configuration for example.com
#
# You can move that to a different file under sites-available/ and symlink that
# to sites-enabled/ to enable it.
#
#server {
# listen 80;
# listen [::]:80;
#
# server_name example.com;
#
# root /var/www/example.com;
# index index.html;
#
# location / {
# try_files $uri $uri/ =404;
# }
#}
同時,複製上面的示例配置信息並將其保存在文本編輯器中。 我們將很快使用這些信息。
創建網站根
接下來,您需要在下面創建一個根文件夾 / 無功 / 萬維網 存儲附加網站的內容。 為了 example,我將為我的 domain1.com 網站創建一個名為 domain1.com 的文件夾。
筆記: 您應該將 domain1 替換為您自己註冊的域名。 您還應該更新 DNS 記錄,將您的域名指向 NGINX Web 服務器的公共 IP 地址。
sudo mkdir /var/www/domain1.com
創建索引文件
索引文件是打開網站時顯示的主網頁。 運行以下命令為您的其他網站創建索引文件。
$ sudo nano /var/www/domain1.com/index.html
我在這個中使用納米 example 但是你可以使用你最喜歡的文本編輯器。 接下來,您可以復制並粘貼以下 HTML 代碼以進行測試。
<!DOCTYPE html>
<html>
<head>
<title>Welcome to Domain1!</title>
<style>
body {
width: 35em;
margin: 0 auto;
font-family: Tahoma, Verdana, Arial, sans-serif;
}
</style>
</head>
<body>
<h1>Welcome to Domain1!</h1>
<p>If you see this page, the Domain1 website is working!</p>
</body>
</html>
Save 變化和 close 文本編輯器。
創建服務器塊
下一步是創建一個服務器塊文件來保存附加網站的配置詳細信息。 運行以下命令。
$ sudo nano /etc/nginx/sites-available/domain1
複製您之前保存的示例虛擬主機配置信息並將其粘貼到新文件中。 從“服務器”行開始,確保刪除所有 # 符號來取消對指令的註釋。 另外,請記住相應地將“domain1”替換為您自己註冊的域名。
# Virtual Host configuration for example.com
#
# You can move that to a different file under sites-available/ and symlink that
# to sites-enabled/ to enable it.
#
server {
listen 80;
listen [::]:80;
server_name domain1.com www.domain1.com;
root /var/www/domain1.com;
index index.html;
location / {
try_files $uri $uri/ =404;
}
}
Save 變化和 close 這個文件。
啟用服務器塊
要讓 NGINX 知道附加網站可用,請運行以下命令以創建指向服務器塊文件的符號鏈接。
$ ln -s /etc/nginx/sites-available/domain1 /etc/nginx/sites-enabled
測試您的配置
跑 sudo nginx -t 測試您的服務器塊配置。 您應該會看到一條消息,表明一切正常。
$ sudo nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
你可以跑 sudo 服務 nginx 重新加載 重新加載配置文件。
測試您的新網站
打開網絡瀏覽器並輸入您的新網站地址。 您應該看到為新網站創建的索引文件的內容,而不是默認的 NGINX 網頁。

控制 NGINX 的基本命令
讓我們學習基本的 Nginx 命令來管理您的 Web 服務器。
這 重新開始 命令將停止服務,然後再次啟動它。
$ sudo systemctl restart nginx
這 重新加載 命令告訴 NGINX 重新加載其配置文件但不停止服務。
$ sudo systemctl reload nginx
這 停止 命令將停止 NGINX 服務。
$ sudo systemctl stop nginx
到 使能夠 在啟動時啟動的 Nginx 服務,運行
$ sudo systemctl enable nginx
注意:默認情況下,Nginx 服務啟用在服務器啟動時自動啟動。
基本的 NGINX 配置和日誌文件
/etc/nginx — 包含所有 NGINX 配置文件
/etc/nginx/sites-available —— 包含服務器塊文件,這些文件存儲用於為一個或多個網站提供服務的配置詳細信息
/etc/nginx/sites-enabled — 包含一個或多個已啟用網站的配置文件
/etc/nginx/nginx.conf — 主配置文件,它也讀取其他文件中的配置指令
/var/log/nginx/access.log — 用於存儲有關對您網站的所有訪問的信息的默認位置
/var/log/nginx/error.log — 存儲 NGINX 錯誤的默認位置
結論
通過遵循本指南,您應該能夠在 Ubuntu 20.04 服務器上啟動並運行一個或多個網站的 NGINX。 但是,如果您遇到任何問題,請隨時在下面的評論部分告訴我們,我們將盡力為您提供幫助。