### 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 上。