- 浏览: 558225 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (262)
- oracle (43)
- 打包 (3)
- linux (33)
- nginx (20)
- ftp (1)
- tomcat (8)
- mysql (22)
- plsql (4)
- jms (3)
- nosql (2)
- 运维监控 (5)
- 数据采集 (0)
- 测试 (2)
- jvm (5)
- 自动化数据库迁移 (2)
- 密码 (1)
- java代码 (7)
- java多线程,线程安全 (8)
- xml (1)
- spring (6)
- svn (2)
- oracle备份 (1)
- oracle 诊断 (3)
- oracle 归档 (4)
- java 虚拟机(JVM) (2)
- hibernate (5)
- activemq (2)
- http (2)
- linux_shell (9)
- python (3)
- ant (1)
- oracle rac (1)
- php (2)
- js (1)
- mongo (1)
- java 反射 (1)
- jira (1)
- 打包 maven (1)
- zabbix (2)
- lvs+keepalive (1)
- 防火墙 (1)
- memcache (2)
- redis (1)
最新评论
-
di1984HIT:
学习了~~~~
服务器大量TIME_WAIT -
springdata_spring:
可以参考最新的文档:如何在eclipse jee中检出项目并转 ...
maven常用命令 -
李小斌_2014:
我也遇到了,现在完美解决。
ORA-01422: 实际返回的行数超出请求的行数 -
啸风8023:
...
tomcat启动报错 -
fke153:
这个问题确实很坑人啊,学习了
ORA-01422: 实际返回的行数超出请求的行数
本文抄自
[url]
http://blog.sina.com.cn/s/blog_5dc960cd0100gvk2.html
[/url]
[url]
http://blog.sina.com.cn/s/blog_5dc960cd0100gvk2.html
[/url]
需要第三方的ngx_cache_purge模块: wget http://labs.frickle.com/files/ngx_cache_purge-1.0.tar.gz tar zxvf ngx_cache_purge-1.0.tar.gz nginx机器IP地址:192.168.2.187 编译参数: configure arguments: --add-module=../ngx_cache_purge-1.0 --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module user nobody; worker_processes 1; pid logs/nginx.pid; worker_rlimit_nofile 65535; events { use epoll; worker_connections 65535; } http { include mime.types; default_type application/octet-stream; log_format main '$remote_addr - $remote_user [$time_local] ' '"$request_method $scheme://$host$request_uri $server_protocol" $status $body_bytes_sent ' '"$http_referer" "$http_user_agent"'; server_names_hash_bucket_size 128; #指定服务器名称哈希表的框大小 client_header_buffer_size 32k; large_client_header_buffers 4 128k; #以上两个是设定客户端请求的Header头缓冲区大小,对于 cookie内容较大的请求,应增大改值。(400或414错误) client_max_body_size 8m; #允许客户端请求的最大单文件字节数 client_body_buffer_size 32k; #缓冲区代理缓冲用户端请求的最大字节数,可以理解为保存 到本地再传给用户 proxy_connect_timeout 600; #nginx跟后端服务器连接超时时间(代理连接超时) proxy_read_timeout 600; #连接成功后,后端服务器响应时间(代理接收超时) proxy_send_timeout 600; #后端服务器数据回传时间(代理发送超时) proxy_buffer_size 32k; #设置代理服务器(nginx)保存用户头信息的缓冲区大小 proxy_buffers 4 32k; #proxy_buffers缓冲区,网页平均在32k以下的话,这样设置 proxy_busy_buffers_size 64k; #高负荷下缓冲大小(proxy_buffers*2) proxy_temp_file_write_size 1024m; #设定缓存文件夹大小,大于这个值,将从upstream服务器传 递请求,而不缓冲到磁盘 proxy_ignore_client_abort on; #不允许代理端主动关闭连接 sendfile on; tcp_nopush on; keepalive_timeout 65; tcp_nodelay on; gzip on; gzip_min_length 1k; gzip_buffers 4 16k; gzip_http_version 1.0; gzip_proxied any; 前端是squid的情况下要加此参数,否则squid上不缓存gzip文件 gzip_comp_level 2; gzip_types text/plain application/x-javascript text/css application/xml; gzip_vary on; server_tokens off; #注:proxy_temp_path和proxy_cache_path指定的路径必须在同一分区 proxy_temp_path /cache/proxy_temp_path; #设置Web缓存区名称为cache_one,内存缓存空间大小为200MB,1天没有被访问的内容自动清除,硬盘缓存空间大小为30GB。 proxy_cache_path /cache/proxy_cache_path levels=1:2 keys_zone=cache_one:200m inactive=1d max_size=30g; upstream my_server_pool { server 192.168.11.6:80; } server { listen 80 default; server_name _; return 500; access_log off; } server { listen 80; server_name testA.domian.com testB.domian.com testC.domian.com testD.domian.com; access_log logs/access.log; location / { proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-For $remote_addr; proxy_pass http://my_server_pool; expires 12h; } #扩展名以.gif、.jpg、.css等结尾的静态文件缓存。 location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|js|css)$ { #如果后端的服务器返回502、504、执行超时等错误,自动将请求转发到upstream负载均衡池中的另一台服 务器,实现故障转移。 proxy_next_upstream http_502 http_504 error timeout invalid_header; proxy_cache cache_one; #进行缓存,使用Web缓存区cache_one proxy_cache_valid 200 304 12h; #对不同的HTTP状态码设置不同的缓存时间 proxy_cache_valid 301 302 1m; proxy_cache_valid any 1m; proxy_cache_key $host$uri$is_args$args; #以域名、URI、参数组合成Web缓存的Key值,Nginx根据 Key值哈希,存储缓存内容到二级缓存目录内 proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $remote_addr; proxy_set_header Accept-Encoding "none"; #设定proxy_set_header Accept-Encoding ''; (或是后台服务器关闭gzip),这样这台机器才 不会缓存被压缩的文件,造成乱码 # proxy_set_header Accept-Encoding ""; 这个也可 proxy_ignore_headers "Cache-Control" "Expires"; #这段配置加上后,proxy_cache就能支持后台设 定的expires。 proxy_pass http://my_server_pool; expires 1h; } location ~ ^/NginxStatus { stub_status on; access_log off; if (-d $request_filename){ rewrite ^/(.*)([^/])$ http://$host/$1$2/ permanent; } } location ~ ^/(WEB-INF)/ { deny all; } #设置只允许指定的IP或IP段才可以清除URL缓存。 location ~ /purge(/.*) { allow 127.0.0.1; allow 192.168.0.0/16; allow all; proxy_cache_purge cache_one $host$1$is_args$args; } error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } } } 测试结果正常,第一次访问时,nginx和后端反向squid都有请求日志。当请求过一次后,nginx的/cache目录下多出缓存文件,并且再次请求页面(请过浏览器缓存),后端squid没有请求日志,说明是nginx提供的cache。 但是以上的配置不能使用purge命令,比如缓存了http://testA.domain.com/css.css使用 http://testA.domain.com/purge/css.css却由后端tomcat返回了404页面。参考了同事的blog,发现自己确实不善于思考了,明明之前有一个清除squid脚本的例子了... [root@test1 proxy_cache_path]# cat cache_purge.sh # !/bin/sh cache_dir=/cache/proxy_cache_path grep -ra $1 ${cache_dir} | awk -F':' '{print $1}' >/tmp/cache_list.txt for file in `cat /tmp/cache_list.txt` do rm -f ${file} done rm -f /tmp/cache_list.txt 这样通过执行./cache_purge.sh css.css 或./cache_purge.sh testA.domain.com/css.css就把缓存清掉了! [root@test1 proxy_cache_path]# grep -ar "testA.domain.com/images/200807_button_3.gif" */ e/e2/5b7880ae1d30d6d23f0666e0b926ce2e:KEY: testA.domain.com/images/200807_button_3.gif [root@test1 proxy_cache_path]# ./cache_purge.sh testA.domain.com/images/200807_button_3.gif [root@test1 proxy_cache_path]# grep -ar "testA.domain.com/images/200807_button_3.gif" */ 上述的脚本转自:http://www.wenzizone.cn/?p=330 记录一下: 问题一:开始的实验环境是nginx自己处理静态文件,将动态文件也proxy_pass到本机,及: upstream tomcat { ip_hash; server 192.168.2.187:8080; } 但是始终都缓存不上。 改成nginx作为负载均衡,反向代理时: upstream tomcat { ip_hash; server 192.168.2.189:8080; } 发现可以缓存上了。 [root@test1 data0]# ll * proxy_cache_path: total 4 drwx------ 3 nobody nobody 4096 Feb 2 14:09 3 是我的操作失误?还是nginx作为web服务器时,不能缓存自己? 问题二:就是上面所说的 比如缓存了http://testA.domain.com/css.css 但是使用http://testA.domain.com/purge/css.css却由后端tomcat返回了404页面。 问题二解决:这段解释来自于:http://raocl.spaces.live.com/blog/cns!3F6CFF93FD0E3B79!825.entry 因为nginx提供的过期控制是针对http_status_code的,我本想通过location中限定类型的方法完成曲线救国,结果发现:一旦location中限定了文件类型,缓存过期的定义就失效!! #也就是说,限定文件类型后的哈希缓存,是绝绝对对的强制永久缓存——不单过期失效,下面的purge也失效——或许换一个场景,这个刚好有用。 所以换了一个配置: server { listen 80; server_name testA.domian.com testB.domian.com testC.domian.com testD.domian.com; access_log logs/access.log; location / { proxy_next_upstream http_502 http_504 error timeout invalid_header; proxy_cache cache_one; proxy_cache_valid 200 304 12h; proxy_cache_valid 301 302 1m; proxy_cache_valid any 1m; proxy_cache_key $host$uri$is_args$args; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-For $remote_addr; proxy_set_header Accept-Encoding ""; proxy_pass http://my_server_pool; expires 12h; } # location ~ .*\.(html|gif|jpg|jpeg|png|bmp|swf|js|css)$ # { # proxy_cache cache_one; # proxy_cache_valid 200 304 12h; # proxy_cache_valid 301 302 1m; # proxy_cache_valid any 1m; # proxy_cache_key $host$uri$is_args$args; # proxy_set_header Host $host; # proxy_set_header X-Real-IP $remote_addr; # proxy_set_header X-Forwarded-For $remote_addr; # proxy_set_header Accept-Encoding ""; # proxy_pass http://my_server_pool; # expires 1h; # } #这部分定义不缓存而是透传的请求类型。介于无法通过类型来控制缓存,那么这里不缓存的控制就必须确保严格正确了 location ~ .*\.(php|jsp|cgi)?$ { proxy_set_header Host $host; proxy_set_header X-Forwarded-For $remote_addr; proxy_pass http://my_server_pool; } 这样一来的意思就是说缓存所有,除了我定义的php,jsp,cgi,当然能不能被缓存还要决定web服务器的header头了,至此。终于见到了久违的页面:
发表评论
-
nginx随机启动
2016-03-28 14:03 585#!/bin/bash # Tengine Startu ... -
据说这样并发可以到十万
2016-02-18 22:52 801一、一般来说nginx 配置文件中对优化比较有作用的为以下 ... -
502 upstream sent too big header while reading response header from upstream
2016-01-29 10:39 1396错误502 upstream sent too big h ... -
nginx用户认证配置( Basic HTTP authentication)
2015-11-26 11:49 842printf "admin:$(openssl ... -
nginx的upstream目前支持5种方式的分配
2015-09-19 00:30 808nginx的upstream目前支 ... -
nginx.conf 详解
2015-08-19 14:12 703#定义Nginx运行的用户 ... -
upstream prematurely closed connection while reading response header from upstre
2014-12-29 14:07 14777请求对方用nginx做了代理:但是error.log报 ... -
nginx concat 模块
2014-11-13 11:50 597mod_concat模块由淘宝开发,目前已经包含在teng ... -
Nginx添加模块(非覆盖安装)
2014-10-24 10:55 2326来源 http://www.linuxidc.com/ ... -
nginx 长连接
2014-07-31 14:23 8905出处: http://zhangxugg-163-com.it ... -
linux_nginx
2014-05-22 16:29 641#以下是一些反向代理的配置可删除. ... -
nginx 集群session复制
2013-08-08 16:30 7987原来写过一篇,为了加 ... -
nginx安装
2012-05-15 14:47 906wget ftp://ftp.csx.cam.ac.uk/ ... -
nginx日志分割
2012-04-05 09:39 1089脚本如下 #!/bin/bash logs_path=&q ... -
ngnix日志解析
2012-03-31 17:05 5853nginx 日志分析 # log_format ... -
nginx负载均衡设置
2011-11-24 11:03 1935nginx 的 upstream目前支持 4 种方式的分配 ... -
nginx安装重启脚本
2011-11-15 14:17 980该文章来自http://rq2-79.iteye.com/bl ... -
nginx配置
2011-10-26 17:49 1723#user nobody; worker_proces ... -
Nginx+tomcat负载均衡session问题解决
2011-09-01 18:46 3836文章来源:http://hi.baidu. ...
相关推荐
碰到问题:移动用户访问web服务器www.osyunwei.com很慢解决办法:1、在移动机房放置一台nginx反向代理服务器2、通过域名DNS智能解析,所有移动用户访问www.osyunwei.com时解析到nginx反向代理服务器3、nginx反向代理...
尝试使用Nginx进行反向代理过程中出现如下错误: 代码如下: nginx: [emerg] “proxy_cache_path” directive is not allowed here in /etc/nginx/conf.d/default.conf:29 提示意思“proxy_cache_path指令不被允许”...
Nginx的Web缓存服务主要由proxy_cache相关指令集和fastcgi_cache相关指令集构成,前者用于反向代理时,对后端内容源服务器进行缓存,后者主要用于对FastCGI的动态程序进行缓存。两者的功能基本上一样。 Nginx 0.8.32...
当然了Apache的 mod_proxy和mod_cache结合使用也可以实现对多台app server的反向代理和负载均衡,但是在并发处理方面apache还是没有 nginx擅长。 1)环境: a. 我们本地是Windows系统,然后使用VirutalBox安装
18.搭建nginx反向代理用做内网域名转发 19.Nginx+keepalived+proxy_cache配置高可用Nginx群集和高速缓冲 20.Nginx最难一战 优化指南 21.确保Nginx安全的10大关键技巧 Nginx变量详解 Nginx模块与实践案例 提供了目前...
第6章 Nginx HTTP负载均衡和反向代理的配置与优化.pdf 第7章 Nginx的Rewrite规则与实例.pdf 第8章 Nginx模块开发.pdf 第9章 Nginx的Web缓存服务与新浪网的开源NCACHE模块.pdf 第10章 Nginx在国内知名网站中的应用...
10.1 Nginx反向代理与负载均衡类网站应用案例 10.2 Nginx+PHP类网站应用案例 10.3 Nginx视频点播类网站应用案例 第11章 Nginx的非典型应用实例 11.1 用HTTPS( SSL) 构建一个安全的Nginx Web服务器 11.2 采用Nginx...
10.1 Nginx反向代理与负载均衡类网站应用案例 10.2 Nginx+PHP类网站应用案例 第11章 Nginx的非典型应用实例 11.1 用HTTPS(SSL)构建一个安全的Nginx Web服务器 11.2 采用Nginx搭建FLV视频服务器 11.3 Nginx+...
10.1 Nginx反向代理与负载均衡类网站应用案例 10.2 Nginx+PHP类网站应用案例 第11章 Nginx的非典型应用实例 11.1 用HTTPS(SSL)构建一个安全的Nginx Web服务器 11.2 采用Nginx搭建FLV视频服务器 11.3 Nginx+...
第6章 Nginx HTTP负载均衡和反向代理的配置与优化 第7章 Nginx的Rewrite规则与实例 第8章 Nginx模块开发 第9章 Nginx的Web缓存服务与新浪网的开源NCACHE模块 第10章 Nginx在国内知名网站中的应用案例 第11章 Nginx的...
另外,在反向代理、负载均衡、健康检查、后端服务器故障转移、Rewrite重写、易用性上,Nginx也比Squid强大得多。这使得一台Nginx可以同时作为“负载均衡服务器”与“Web缓存服务器”来使用。–by 张宴 下载2011-05-...
第6章Nginx http负载均衡和反向代理;第7章Nginx 的rewrite规则与实例;第8章 Nginx 模块开发;第9章Nginx 的web缓存服务与新浪网的开源NCACHE模块;第10章Nginx 在国内知名网站中的应用案例..........
重点介绍了Nginx的配置优化方法、Nginx与PHP/Ruby/Python/JSP/Perl/Memcached的结合配置方法、Nginx HTTP反向代理与负载均衡的配置与优化、Nginx模块开发等,最后还分析了新浪的开源软件项目──基于Nginx的NCache...
proxy_cache 在 Nginx 配置的 http 段、server 段(location 段)中分别写入不同的配置。http 段中的配置用于定义 proxy_cache 空间,server 段中的配置用于调用 http 段中的定义,启用对 server 的缓存功能。 http ...
6.Nginx HTTP负载均衡和反向代理的配置与优化 7.Nginx的Rewrite规则与实例 8.Nginx模块开发 9.Nginx的web缓存服务与新浪网的开源NCACHE模块 10.Nginx在国内知名站点中的应用案例 11.Nginx的非典型应用实例 12.Nginx...
第6章 Nginx HTTP负载均衡和反向代理的配置与优化 第7章 Nginx的Rewrite规则与实例 第8章 Nginx模块开发 第9章 Nginx的Web缓存服务与新浪网的开源NCACHE模块 第10章 Nginx在国内知名网站中的应用案例 第11章 Nginx的...
Nginx(发音同 engine x)是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,并在一个BSD-like 协议下发行。由俄罗斯的程序设计师Igor Sysoev所开发,最初供俄国大型的入口网站及搜寻...
主要内容包括:第1章 Nginx简介;第2章Nginx服务器安装与配置;...第6章Nginx http负载均衡和反向代理;第7章Nginx 的rewrite规则与实例;第8章 Nginx 模块开发;第9章Nginx 的web缓存服务与新浪网的开源NCACHE模块等