forked from judasn/Linux-Tutorial
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathnginx.conf
More file actions
134 lines (119 loc) · 7.98 KB
/
nginx.conf
File metadata and controls
134 lines (119 loc) · 7.98 KB
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
user root;
worker_processes 2;#Nginx进程数, 建议设置为等于CPU总核心数
events {
use epoll; #nginx工作模式,epoll是linux平台下的高效模式,配合nginx的异步非阻塞作用
worker_connections 1024;#单个进程最大连接数
}
http {
include mime.types;#扩展名与文件类型映射表:#nginx通过服务端文件的后缀名来判断这个文件属于什么类型,再将该数据类型写入http头部的Content-Type字段中,发送给客户端。mime.types这个文件里面全是文件类型的定义。
default_type application/octet-stream;#当用户请求的文件后缀在mime.types这个文件没有定义,便使用默认的type为二进制流
sendfile on;#开启高效文件传输模式
tcp_nopush on;#启用之后,数据包会累积到一定大小才会发送,减小了额外开销,防止网络阻塞,提高网络效率
tcp_nodelay on;#启用之后,尽快发送数据。可以看到tcp_nopush是要等数据包累积到一定大小才发送,tcp_nodelay是要尽快发送,二者相互矛盾。实际上,它们可以一起用,最终的效果是先填满包,再尽快发送。
keepalive_timeout 65;
charset utf8;
#全局日志(也可以把这个配置到 server 中进行不同 server 的不同配置)
access_log /var/log/nginx/access.log;
error_log /var/log/nginx/error.log;
# gzip 压缩设置
gzip on;
gzip_min_length 1k;
gzip_buffers 4 16k;
gzip_http_version 1.0;
gzip_comp_level 2;#gzip的压缩程度,级别为1到9.级别越高,压缩程序越高,时间越多
gzip_types text/plain application/x-javascript text/css text/xml application/xml text/javascript application/javascript application/json;
gzip_vary on;#告诉接受方数据经过gzip压缩
gzip_disable "MSIE[1-6]\."; #因为IE6对gzip不支持,所以在IE6及更旧的版本不使用gzip压缩
server {
listen 80; #监听80端口
server_name localhost 127.0.0.1 120.77.84.121 gitnavi.com;
location / {
root /usr/program/tomcat8/webapps/ROOT;#静态文件直接读取硬盘,所有这里直接写tomcat的程序里面的静态资源目录
index index.html index.jsp;
}
location = / {
root /usr/program/tomcat8/webapps/ROOT;#静态文件直接读取硬盘,所有这里直接写tomcat的程序里面的静态资源目录
index index.html;
}
# 匹配用户导航静态 html 目录路径
location ^~ /u/ {
root /usr/program/tomcat8/webapps/ROOT;#静态文件直接读取硬盘,所有这里直接写tomcat的程序里面的静态资源目录
}
# Controller 中前台的请求标识
location ^~ /front/ {
proxy_pass http://127.0.0.1:8080; #转发请求交给tomcat处理
proxy_redirect off;
proxy_set_header Host $host; #后端的Web服务器可以通过X-Forwarded-For获取用户真实IP
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; #缓冲区代理缓冲用户端请求的最大字节数
proxy_connect_timeout 300; #nginx跟后端服务器连接超时时间
proxy_send_timeout 300; #后端服务器数据回传时间(代理发送超时)
proxy_read_timeout 300; #连接成功后,后端服务器响应时间
proxy_buffer_size 4k; #设置代理服务器(nginx)保存用户头信息的缓冲区大小
proxy_buffers 6 32k; #proxy_buffers缓冲区,网页平均在32k以下的话,这样设置
proxy_busy_buffers_size 64k; #高负荷下缓冲大小(proxy_buffers*2)
proxy_temp_file_write_size 64k; #设定缓存文件夹大小,大于这个值,将从upstream服务器传
}
# Controller 中后台的请求标识
location ^~ /admin/ {
proxy_pass http://127.0.0.1:8080; #转发请求交给tomcat处理
proxy_redirect off;
proxy_set_header Host $host; #后端的Web服务器可以通过X-Forwarded-For获取用户真实IP
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; #缓冲区代理缓冲用户端请求的最大字节数
proxy_connect_timeout 300; #nginx跟后端服务器连接超时时间
proxy_send_timeout 300; #后端服务器数据回传时间(代理发送超时)
proxy_read_timeout 300; #连接成功后,后端服务器响应时间
proxy_buffer_size 4k; #设置代理服务器(nginx)保存用户头信息的缓冲区大小
proxy_buffers 6 32k; #proxy_buffers缓冲区,网页平均在32k以下的话,这样设置
proxy_busy_buffers_size 64k; #高负荷下缓冲大小(proxy_buffers*2)
proxy_temp_file_write_size 64k; #设定缓存文件夹大小,大于这个值,将从upstream服务器传
}
#静态资源转发
#由nginx处理静态页面
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|ico|woff|woff2|ttf|eot)$ {
root /usr/program/tomcat8/webapps/ROOT;#这里直接写tomcat的程序里面的静态资源目录
expires 30d;#使用expires缓存模块,缓存到客户端30天(这个模块看下有没有安装)
}
#因为我的 html 页面经常变动,所以 html 我这里就不缓存了
location ~ .*\.(js|css)?$ {
root /usr/program/tomcat8/webapps/ROOT;#静态文件直接读取硬盘,所有这里直接写tomcat的程序里面的静态资源目录
expires 1d;#也可以指定小时,比如:12h
}
# 读取一些静态页面,比如隐私政策等
location ~ .*\.(html|htm)?$ {
root /usr/program/tomcat8/webapps/ROOT;#静态文件直接读取硬盘,所有这里直接写tomcat的程序里面的静态资源目录
expires 1d;#也可以指定小时,比如:12h
}
#其他请求都视为动态请求处理
#location ~ .*$ {
# proxy_pass http://127.0.0.1:8080; #转发请求交给tomcat处理
# proxy_redirect off;
# proxy_set_header Host $host; #后端的Web服务器可以通过X-Forwarded-For获取用户真实IP
# 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; #缓冲区代理缓冲用户端请求的最大字节数
# proxy_connect_timeout 300; #nginx跟后端服务器连接超时时间
# proxy_send_timeout 300; #后端服务器数据回传时间(代理发送超时)
# proxy_read_timeout 300; #连接成功后,后端服务器响应时间
# proxy_buffer_size 4k; #设置代理服务器(nginx)保存用户头信息的缓冲区大小
# proxy_buffers 6 32k; #proxy_buffers缓冲区,网页平均在32k以下的话,这样设置
# proxy_busy_buffers_size 64k; #高负荷下缓冲大小(proxy_buffers*2)
# proxy_temp_file_write_size 64k; #设定缓存文件夹大小,大于这个值,将从upstream服务器传
#}
#常见错误页面设置
error_page 404 /404.html;
location = /404.html {
root /usr/program/tomcat8/webapps/ROOT;
}
error_page 500 502 503 504 /500.html;
location = /500.html {
root /usr/program/tomcat8/webapps/ROOT;
}
}
}