Nginx設定通用語法

2020-08-13 14:37:03

轉載自品略圖書館 http://www.pinlue.com/article/2020/07/0222/5010943860746.html

 

Nginx的組態檔只是一個普通的文字檔案,這裏借用《深入理解Nginx模組開發與架構解析》上的例子記錄Nginx設定的通用語法。

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

user nobody;

worker_processes 8;

error_log varlog/nginx/error.log error;

#pid logs/nginx.pid;

events {

use epoll;

worker_connections 50000;

}

http {

include mime.types;

default_type application/octet-stream;

log_format main "$remote_addr [$time_local] "$request" "

"$status $bytes_sent "$http_referer" "

""$http_user_agent" "$http_x_forwarded_for"";

access_log logs/access.log main buffer=32k;

...

}

1.塊設定項

塊設定由一個塊設定項名和一對大括號組成,如下:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

events {

...

}

http {

upstream backend {

server 127.0.0.1:8080;

}

gzip on;

server {

...

location /webstatic {

gzip off;

}

}

上述程式碼中的events、http、server、location、upstream等都是塊設定項,塊設定項後大括號中的就是這個設定項的設定。塊設定項可以巢狀,內層的塊設定會直接繼承外層塊的設定,如上述的server就繼承了http的設定。但是當內層設定與外層設定衝突時,該塊設定會採用哪種設定(這裏不解釋,在Nginx塊內設定衝突一文中介紹)?

語言方法

19375SecTnf4lQ

CRK79李亞倩

36092006-11-19 23:19:54

2.設定項格式

從上述中可以瞭解到,最基本的設定項語法格式就是設定項名+設定項值,設定項名與設定項值之間使用空格符來隔開,而且一個設定項可以對應多個值,最後在每一行設定的結尾都需要加上分號。

3.註釋

不管是程式碼還是設定中,註釋都是不能少的一部分,而nginx組態檔中的行註釋與python一樣,使用「#」符號可以註釋掉這一行內容,如下。

1

#pid logs/nginx.pid;

4.設定項單位

大部分的模組都遵從一些通用規定,如指定空間大小時不需要每次都定義到位元組,指定時間是不需要到毫秒級。

當指定空間大小的時候,可以使用K、M爲單位。

當指定時間時,可以使用ms、s、m、h、d、w、m、y爲單位。如下:

gzip_buffers 4 8k;client_max_body_size 64M;expires 10y;proxy_read_timeout 600;client_body_timeout 2m;

5.設定中使用變數

Nginx中有一些模組容許在設定項中使用變數,比如在日誌記錄部分,我們可以在變數前新增「$」符號,代表該值是一個變數。不過要特別注意的是這種變數只是少數模組支援,並不是通用的。

1

2

3

log_format main "$remote_addr - $remote_user [$time_local] "$request" "

"$status $bytes_sent "$http_referer" "

""$http_user_agent" "$http_x_forwarded_for"";