|
| 1 | +user root; |
| 2 | + |
| 3 | +worker_processes 2;#Nginx进程数, 建议设置为等于CPU总核心数 |
| 4 | + |
| 5 | +events { |
| 6 | + use epoll; #nginx工作模式,epoll是linux平台下的高效模式,配合nginx的异步非阻塞作用 |
| 7 | + worker_connections 1024;#单个进程最大连接数 |
| 8 | +} |
| 9 | + |
| 10 | +http { |
| 11 | + include mime.types;#扩展名与文件类型映射表:#nginx通过服务端文件的后缀名来判断这个文件属于什么类型,再将该数据类型写入http头部的Content-Type字段中,发送给客户端。mime.types这个文件里面全是文件类型的定义。 |
| 12 | + default_type application/octet-stream;#当用户请求的文件后缀在mime.types这个文件没有定义,便使用默认的type为二进制流 |
| 13 | + sendfile on;#开启高效文件传输模式 |
| 14 | + tcp_nopush on;#启用之后,数据包会累积到一定大小才会发送,减小了额外开销,防止网络阻塞,提高网络效率 |
| 15 | + tcp_nodelay on;#启用之后,尽快发送数据。可以看到tcp_nopush是要等数据包累积到一定大小才发送,tcp_nodelay是要尽快发送,二者相互矛盾。实际上,它们可以一起用,最终的效果是先填满包,再尽快发送。 |
| 16 | + keepalive_timeout 65; |
| 17 | + charset utf8; |
| 18 | + |
| 19 | + #全局日志(也可以把这个配置到 server 中进行不同 server 的不同配置) |
| 20 | + access_log /var/log/nginx/access.log; |
| 21 | + error_log /var/log/nginx/error.log; |
| 22 | + |
| 23 | + # gzip 压缩设置 |
| 24 | + gzip on; |
| 25 | + gzip_min_length 1k; |
| 26 | + gzip_buffers 4 16k; |
| 27 | + gzip_http_version 1.0; |
| 28 | + gzip_comp_level 2;#gzip的压缩程度,级别为1到9.级别越高,压缩程序越高,时间越多 |
| 29 | + gzip_types text/plain application/x-javascript text/css text/xml application/xml text/javascript application/javascript application/json; |
| 30 | + gzip_vary on;#告诉接受方数据经过gzip压缩 |
| 31 | + gzip_disable "MSIE[1-6]\."; #因为IE6对gzip不支持,所以在IE6及更旧的版本不使用gzip压缩 |
| 32 | + |
| 33 | + server { |
| 34 | + |
| 35 | + listen 80; #监听80端口 |
| 36 | + server_name localhost 127.0.0.1 120.77.84.121 gitnavi.com; |
| 37 | + |
| 38 | + location / { |
| 39 | + root /usr/program/tomcat8/webapps/ROOT;#静态文件直接读取硬盘,所有这里直接写tomcat的程序里面的静态资源目录 |
| 40 | + index index.html index.jsp; |
| 41 | + } |
| 42 | + #静态资源转发 |
| 43 | + #由nginx处理静态页面 |
| 44 | + location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|ico)$ { |
| 45 | + root /usr/program/tomcat8/webapps/ROOT;#这里直接写tomcat的程序里面的静态资源目录 |
| 46 | + expires 30d;#使用expires缓存模块,缓存到客户端30天(这个模块看下有没有安装) |
| 47 | + } |
| 48 | + #因为我的 html 页面经常变动,所以 html 我这里就不缓存了 |
| 49 | + location ~ .*\.(js|css)?$ { |
| 50 | + root /usr/program/tomcat8/webapps/ROOT;#静态文件直接读取硬盘,所有这里直接写tomcat的程序里面的静态资源目录 |
| 51 | + expires 1d;#也可以指定小时,比如:12h |
| 52 | + } |
| 53 | + #其他请求都视为动态请求处理 |
| 54 | + location ~ .*$ { |
| 55 | + proxy_pass http://127.0.0.1:8080; #转发请求交给tomcat处理 |
| 56 | + proxy_redirect off; |
| 57 | + proxy_set_header Host $host; #后端的Web服务器可以通过X-Forwarded-For获取用户真实IP |
| 58 | + proxy_set_header X-Real-IP $remote_addr; |
| 59 | + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; |
| 60 | + client_max_body_size 10m; #允许客户端请求的最大单文件字节数 |
| 61 | + client_body_buffer_size 128k; #缓冲区代理缓冲用户端请求的最大字节数 |
| 62 | + proxy_connect_timeout 300; #nginx跟后端服务器连接超时时间 |
| 63 | + proxy_send_timeout 300; #后端服务器数据回传时间(代理发送超时) |
| 64 | + proxy_read_timeout 300; #连接成功后,后端服务器响应时间 |
| 65 | + proxy_buffer_size 4k; #设置代理服务器(nginx)保存用户头信息的缓冲区大小 |
| 66 | + proxy_buffers 6 32k; #proxy_buffers缓冲区,网页平均在32k以下的话,这样设置 |
| 67 | + proxy_busy_buffers_size 64k; #高负荷下缓冲大小(proxy_buffers*2) |
| 68 | + proxy_temp_file_write_size 64k; #设定缓存文件夹大小,大于这个值,将从upstream服务器传 |
| 69 | + } |
| 70 | + |
| 71 | + #常见错误页面设置 |
| 72 | + error_page 404 /404.html; |
| 73 | + error_page 500 502 503 504 /50x.html; |
| 74 | + location = /50x.html { |
| 75 | + root /usr/program/tomcat8/webapps/ROOT; |
| 76 | + } |
| 77 | + } |
| 78 | +} |
0 commit comments