雲計算

CentOS 8 上設置 Nginx 服務器配置塊

1.png
鏡像下載、域名解析、時間同步請點擊 阿里巴巴開源鏡像站

一個服務器配置塊是一個 Nginx 指令,它定義了對於一個指定域名的設置,允許你在一個單機服務器上運行多個網站。對於每一個網站,你可以設置網站文件根目錄(包含網站文件的目錄),創建一個獨立的安全策略,使用不同的 SSL 證書等等。本文描述瞭如何在 CentOS 8 上設置 Nginx 服務器塊。

一、前提條件

在繼續這個指南之前,請確保你滿足了下面的前提條件:

  • 指向你公共服務器 IP 的域名
  • 在你的 CentOS 系統上安裝了 Nginx
  • 以 root 或者其他有 sudo 權限的用戶身份登錄

在一些文檔中,術語Server Blocks也被稱為Virtual host。一個虛擬主機是一個 Apache 的術語。

二、創建文件結構

文檔根目錄是每個域名對應網站文件所存儲並且響應請求的地方。
文檔根目錄可以被設置到任何你想要設置的地方。
我們將會使用下面的文件夾結構:

/var/www/
├── example.com
│   └── public_html
├── example2.com
│   └── public_html
├── example3.com
│   └── public_html

對於每一個被託管在服務器上的域名,我們將在/var/www目錄下創建一個獨立的文件夾。在文件夾域名文件夾下,我們創建一個public_html文件夾,它將作為域名的文件根目錄,並且將會存儲該域名的網站文件。
我們開始為域名example.com創建根目錄:

sudo mkdir -p /var/www/example.com/public_html

為了方便測試,我們在域名的文檔根目錄下創建一個index.html文件。

sudo nano /var/www/example.com/public_html/index.html

拷貝並且粘貼下面的代碼到文件中:

<!DOCTYPE html>
<html lang="en" dir="ltr">
  <head>
    <meta charset="utf-8">
    <title>Welcome to example.com</title>
  </head>
  <body>
    <h1>Success! example.com home page!</h1>
  </body>
</html>

想要避免任何權限問題,修改域名的文檔根目錄的所有者到用戶nginx

sudo chown -R nginx: /var/www/example.com

三、創建一個服務器塊

在 CentOS 上,Nginx 服務器塊配置文件默認以.conf結尾並且被存儲在/etc/nginx/conf.d目錄。
打開你的文本編輯器,並且為域名創建一個配置文件:

sudo nano /etc/nginx/conf.d/example.com.conf

配置文件可以命名為任何你想要的名字,但是通常情況下,我們最好使用域名名字。
拷貝並且粘貼下面的代碼到文件:

server {
    listen 80;
    listen [::]:80;
    root /var/www/example.com/public_html;
    index index.html;
    server_name example.com www.example.com;
    access_log /var/log/nginx/example.com.access.log;
    error_log /var/log/nginx/example.com.error.log;
    location / {
        try_files $uri $uri/ =404;
    }
}

保存文件,並且檢測 Nginx 配置文件是否有語法錯誤:

sudo nginx -t

如果沒有錯誤,輸出將會像下面這樣:

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

重啟 Nginx 服務,使應用生效:

sudo systemctl restart nginx

最後,驗證服務器配置區塊是否正常運行,在你的瀏覽器中打開[http://example.com](http://example.com),你將會看到下面的畫面:
2.png

四、總結

我們已經向你展示如何創建 Nginx 服務器配置塊,並且在一個簡單的 CentOS 服務器上託管很多域名。
你可以重複上面的步驟,並且為你所有的域名添加額外的服務器配置塊。
如果你想要使用 SSL 證書加密你的網站,你可以生成並且安裝一個免費的 Letsencrypt 免費SSL證書

阿里巴巴開源鏡像站 提供全面,高效和穩定的系統鏡像、應用軟件下載、域名解析和時間同步服務。”

Leave a Reply

Your email address will not be published. Required fields are marked *