要在一台主機上部署很多個網站是很普遍的事情,如果我們要在一台機器上設定很多個網站,我們簡單的說要做兩件事:
- 設定 DNS
- 設定 NGINX
兩個哪個先做都可以,但一定都要設定好才會生效。
設定 DNS
當你買好網域後,可以透過 DNS 後台來設定,假設主機的 ip 是 111.111.111.111,我要設定的網域是 test.wingzero.tw,只要像這樣在 DNS 新增一筆紀錄即可。
設定 NGINX
首先要到 nginx 所在的路徑,用 cd 移過去,順便看一下裡面有什麼內容。
cd /etc/nginx ls
接著要在 conf.d 的資料夾中新增 .conf 檔,有幾個網站要設定就新增幾個。
進入資料夾:
cd conf.d/
建立 .conf 檔
sudo touch test.conf
檔名跟你的網站比較相關會比較好辨識,接著進入編輯:
sudo vi test.conf
進去後要按 i 才可以編輯,然後貼上這段。
server{ listen 80; server_name test.wingzero.tw; root /var/www/html/test; location / { index index.php index.html index.hml; } location ~ \.php$ { include snippets/fastcgi-php.conf; fastcgi_pass unix:/var/run/php/php8.1-fpm.sock; } }
修改好要儲存要先按 esc,然後輸入 :wq 後按 enter 跳出。
其中 server_name 就是你的網域,而 root 那些是你的網站內容要放哪,後面的部分因為我的網站是跑 php,所以如果是執行不同的程式語言,這邊也要改成對應的內容。
接著在 nginx.conf 檔案引入所有的 .conf,找到 nignx.conf
cd /etc/nginx sudo vi nginx.conf
在這隻檔案裡加入這行:
include /etc/nginx/conf.d/*.conf;
接著一樣按 esc 後輸入 :eq 按 enter 儲存跳出。
最後重新啟動 nginx,如果設定都沒問題,就能在你指定的網址看到內容了。
sudo systemctl restart nginx