9月 21, 2020 Nginx
### 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 上。
過去文章
2025 (9)
4 (5)
3 (1)
2 (3)
2024 (25)
11 (3)
10 (3)
9 (1)
3 (18)
2022 (6)
10 (1)
6 (2)
5 (1)
3 (1)
1 (1)
2021 (21)
11 (7)
7 (1)
6 (2)
5 (2)
4 (6)
3 (2)
2 (1)
2020 (92)
12 (1)
11 (2)
10 (4)
9 (10)
8 (5)
7 (1)
6 (3)
5 (1)
4 (4)
3 (25)
2 (7)
1 (29)
2019 (57)
12 (25)
11 (7)
9 (25)