### Nginx Nginx 除了可以用來作為 Web 伺服器外,它還可以用來設定為 proxy,如果配上 virtual host 的話就可以在一台主機上部署多個不同的 applications。 ### Virtual host 像 apache2 一樣,nginx 也可以以不同的 domain 來分別處理的動作,只需要在 config 檔案內設定好就可以了。 設定檔位置 : `/etc/nginx/site-availables/default` 先來看一個最普通的設定: ```text # 設定 1 個 server 設置 server { # 監聽 port 80 listen 80 default_server; listen [::]:80 default_server; # 監聽 port 443 (使用 ssl 設定) listen 443 ssl default_server; listen [::]:443 ssl default_server; # 設定 ssl 使用的證書及密匙 ssl_certificate /etc/nginx/ssl/nginx.crt; ssl_certificate_key /etc/nginx/ssl/nginx.key; # 設定監聽的 domain (可以多於 1 個) server_name _; # 設定文件的根目錄 root /var/www/html/; # 設定預設要存取的文件 index index.htm index.html index.php index.nginx-debian.html; } ``` 在 `server_name` 的設定內,`_` 是指預設的情況,即是沒有配合到合適的 domain name 情況。 如果我們在 `server_name` 後加入了 domain name,就會指定這個 server 的設定為監聽指定的 domain name 訪問。例如 : ```text # 監聽 domain name 為 19site.net 及 www.19site.net 的訪問 server_name 19site.net www.19site.net; ``` 通過以上的設定就可以依 domain name 來設定多個不同的服務在相同的 port 上。