Nginx配置文件详解

完整示例

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
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
# 使用的用户和组
user www www;

# 指定工作衍生进程数
worker_processes 2;

# 指定pid存放的路径,进程文件
pid /var/run/nginx.pid;

# [ debug | info | notice | warn | error | crit ]
# 可以在下方直接使用 [debug | info | notice | warn | error | crit] 参数,日志级别,全局错误日志定义类型
error_log /var/log/nginx.error_log info;

events {

# 允许的连接数(单个进程最大连接数,最大连接数=连接数*进程数)
worker_connections 2000;

# use [ kqueue | epoll | /dev/poll | select | poll ];
# 参考事件模型,epoll模型是Linux2.6以上版本内核中高性能网络I/O模型,如果跑在FreeBSD上面,就用kqueue模型
use kqueue;
}

http {

# 文件扩展名与文件类型映射表
include conf/mime.types;

# 默认文件类型
default_type application/octet-stream;


log_format main '$remote_addr - $remote_user [$time_local] '
'"$request" $status $bytes_sent '
'"$http_referer" "$http_user_agent" '
'"$gzip_ratio"';

log_format download '$remote_addr - $remote_user [$time_local] '
'"$request" $status $bytes_sent '
'"$http_referer" "$http_user_agent" '
'"$http_range" "$sent_http_content_range"';

client_header_timeout 3m;
client_body_timeout 3m;
send_timeout 3m;

client_header_buffer_size 1k;
large_client_header_buffers 4 4k;

gzip on;
gzip_min_length 1100;
gzip_buffers 4 8k;
gzip_types text/plain;

output_buffers 1 32k;
postpone_output 1460;

sendfile on;
tcp_nopush on;
tcp_nodelay on;
send_lowat 12000;

keepalive_timeout 75 20;

#lingering_time 30;
#lingering_timeout 10;
#reset_timedout_connection on;


server {
listen one.example.com;
server_name one.example.com www.one.example.com;

access_log /var/log/nginx.access_log main;

location / {
proxy_pass http://127.0.0.1/;
proxy_redirect off;

proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;

#proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

client_max_body_size 10m;
client_body_buffer_size 128k;

client_body_temp_path /var/nginx/client_body_temp;

proxy_connect_timeout 70;
proxy_send_timeout 90;
proxy_read_timeout 90;
proxy_send_lowat 12000;

proxy_buffer_size 4k;
proxy_buffers 4 32k;
proxy_busy_buffers_size 64k;
proxy_temp_file_write_size 64k;

proxy_temp_path /var/nginx/proxy_temp;

charset koi8-r;
}

error_page 404 /404.html;

location = /404.html {
root /spool/www;
}

location /old_stuff/ {
rewrite ^/old_stuff/(.*)$ /new_stuff/$1 permanent;
}

location /download/ {

valid_referers none blocked server_names *.example.com;

if ($invalid_referer) {
#rewrite ^/ http://www.example.com/;
return 403;
}

#rewrite_log on;

# rewrite /download/*/mp3/*.any_ext to /download/*/mp3/*.mp3
rewrite ^/(download/.*)/mp3/(.*)\..*$
/$1/mp3/$2.mp3 break;

root /spool/www;
#autoindex on;
access_log /var/log/nginx-download.access_log download;
}

location ~* \.(jpg|jpeg|gif)$ {
root /spool/www;
access_log off;
expires 30d;
}
}
}

相关

nginx 配置文件详解

完整例子

Nginx学习——Nginx基本配置

Nginx安装及配置文件 nginx.conf 详解

推荐文章