限制用IP訪問網站

1
2
3
4
5
6
7
8
9
server {
#使用IP訪問則回傳404
listen 80;
listen [::]:80;
server_name 1.1.1.1;
location ~ / {
return 404;
}
}

Nginx

Nginx主要提供功能:

  • 反向代理(Reverse Proxy)
    反向代理是一種代理模式,它將客戶端的請求轉發給不同的伺服器,並將伺服器的回應轉發給客戶端。wiki
  • 負載平衡(Load Balancing)
    負載平衡是一種將請求分配給多個伺服器的方法,以達到平衡伺服器負載的目的。wiki
  • 靜態資源服務(Static Resource Service)
    靜態資源服務是一種將靜態資源(如圖片、CSS、JavaScript等)儲存於網頁伺服器上,並由網頁伺服器直接提供給客戶端的服務。
  • 動態資源服務(Dynamic Resource Service)
    動態資源服務是一種將動態資源(如PHP、ASP、JSP等)儲存於網頁伺服器上,並由網頁伺服器將請求轉發給應用伺服器,再由應用伺服器產生回應,
    最後由網頁伺服器將回應轉發給客戶端的服務。
  • Http憑證存取服務(Http Certificate Access Service)
    Http憑證存取服務是一種將HTTP憑證(如SSL憑證)儲存於網頁伺服器上,並由網頁伺服器直接提供給客戶端的服務。

nginx.conf

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
#常用設定

# Define the number of worker processes; recommended value is the number of
# cores that are being used by your server
# auto will default to number of vcpus/cores
#
# vcpus(Virtual CPUs): 虛擬核心,例如EC2 t3a.small(vCPU: 2, Memory: 2 GiB),則worker_processes 2
# ref: https://aws.amazon.com/tw/ec2/instance-types/
#
# cores: 實體核心,intel Xeon E5-1428L (6 cores),則worker_processes 6
# ref: https://ark.intel.com/content/www/tw/zh/ark/products/66662/intel-xeon-processor-e51428l-15m-cache-1-8-ghz.html
#
# 設定策略:
# 1. 沒有想法或不確定,使用預設auto
# 2. 如果是單核心,設定為1
# 2. 如果有SSL、gzip這樣比較消耗CPU的工作,同時有多個CPU核心的話,可以設定與CPU的數量一樣。(worker_processes: CPU核心數)
worker_processes auto;
# 最小:1, 最大:CPU核心數

# 進程最大開檔數,如果想調高worker_connections上限,可透過這參數強制調高
worker_rlimit_nofile 65535;

# Max Number of Clients/Second = worker_processes * worker_connections
events {
# Define the maximum number of simultaneous connections that can be opened by a worker process
# 如果瀏覽器同時發出一隻API以及一張圖片請求,這時候瀏覽器將佔領兩個連線,
# worker_connections 513的設定代表同時只能有512/2的瀏覽器進行連線
# TODO worker_connections 1時 每隻API都會延遲10秒再進行回覆,使用併發同時觀察每個API的回覆時間
# 設定策略:
# 1. 沒有想法或不確定,使用預設512
# 2. 最大值為系統進程最大開啟數,可用ulimit -a|grep "open files"觀看
# 3.
worker_connections 512;
#https://www.gushiciku.cn/pl/pHDk/zh-tw
#https://linyencheng.github.io/2019/07/13/tool-nginx/
}

http {
# Specifies the maximum accepted body size of a client request, as
# indicated by the request header Content-Length. If the stated content
# length is greater than this size, then the client receives the HTTP
# error code 413. Set to 0 to disable.
# client_max_body_size 0;
# Request Body內容大小上限
client_max_body_size 1M;
}


}

# 與後端Application server 連線的timeout時間
fastcgi_connect_timeout 1800;

# 向後端Application server 傳送資料的timeout時間
fastcgi_send_timeout 1800;

# 從後端Application server 接收資料的timeout時間
fastcgi_read_timeout 1800;
1
2
3
4
5
6
反向代理, Reverse Proxy, re-ver-se pro-xy
負載平衡, Load Balancing, load ba-lan-ce-ing
靜態資源服務, Static Resource Service, sta-tic re-source ser-vice
動態資源服務, Dynamic Resource Service, dy-na-mic re-source ser-vice
Http憑證存取服務, Http Certificate Access Service, cer-ti-fi-cate ac-ce-ss ser-vice
效能, Performance, per-form-an-ce