要在一台主機上部署很多個網站是很普遍的事情,如果我們要在一台機器上設定很多個網站,我們簡單的說要做兩件事:

  1. 設定 DNS
  2. 設定 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