鏡像下載、域名解析、時間同步請點擊 阿里巴巴開源鏡像站
一個服務器配置塊是一個 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)
,你將會看到下面的畫面:
四、總結
我們已經向你展示如何創建 Nginx 服務器配置塊,並且在一個簡單的 CentOS 服務器上託管很多域名。
你可以重複上面的步驟,並且為你所有的域名添加額外的服務器配置塊。
如果你想要使用 SSL 證書加密你的網站,你可以生成並且安裝一個免費的 Letsencrypt 免費SSL證書。
“ 阿里巴巴開源鏡像站 提供全面,高效和穩定的系統鏡像、應用軟件下載、域名解析和時間同步服務。”