如何在 Ubuntu 20.04 和主機網站上安裝 NGINX

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

在 Ubuntu 20.04 上檢查 Nginx 狀態

上面命令的輸出確認 NGINX 是 活動和運行. 如果您收到一條消息表明 NGINX 處於非活動狀態、未啟動或未運行,那麼您可以通過運行以下命令手動啟動 NGINX 服務。

$ sudo systemctl start nginx

要檢查 Nginx 版本,請運行:

$ sudo dpkg -l nginx

檢查 nginx 版本 Ubuntu在 Ubuntu 上檢查 Nginx 版本

輸出顯示 Nginx 版本 1.18.0 在撰寫本教程時,它正在 Ubuntu 20.04 上運行。

測試 NGINX Web 服務器

在確認 NGINX 服務處於活動狀態並正在運行後,您現在可以通過打開首選 Web 瀏覽器並輸入安裝 NGINX 的服務器的 IP 地址 (https://your_server_ip) 來測試 Web 服務器。

您應該會看到標題為“的默認網頁”歡迎來到 Nginx!

NGINX 默認網頁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。 但是,如果您遇到任何問題,請隨時在下面的評論部分告訴我們,我們將盡力為您提供幫助。