- 浏览: 568180 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (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 625#!/bin/bash # Tengine Startu ... -
据说这样并发可以到十万
2016-02-18 22:52 839一、一般来说nginx 配置文件中对优化比较有作用的为以下 ... -
502 upstream sent too big header while reading response header from upstream
2016-01-29 10:39 1434错误502 upstream sent too big h ... -
nginx用户认证配置( Basic HTTP authentication)
2015-11-26 11:49 885printf "admin:$(openssl ... -
nginx的upstream目前支持5种方式的分配
2015-09-19 00:30 843nginx的upstream目前支 ... -
nginx.conf 详解
2015-08-19 14:12 738#定义Nginx运行的用户 ... -
upstream prematurely closed connection while reading response header from upstre
2014-12-29 14:07 14934请求对方用nginx做了代理:但是error.log报 ... -
nginx concat 模块
2014-11-13 11:50 631mod_concat模块由淘宝开发,目前已经包含在teng ... -
Nginx添加模块(非覆盖安装)
2014-10-24 10:55 2362来源 http://www.linuxidc.com/ ... -
nginx 长连接
2014-07-31 14:23 8956出处: http://zhangxugg-163-com.it ... -
linux_nginx
2014-05-22 16:29 667#以下是一些反向代理的配置可删除. ... -
nginx 集群session复制
2013-08-08 16:30 8019原来写过一篇,为了加 ... -
nginx安装
2012-05-15 14:47 942wget ftp://ftp.csx.cam.ac.uk/ ... -
nginx日志分割
2012-04-05 09:39 1120脚本如下 #!/bin/bash logs_path=&q ... -
ngnix日志解析
2012-03-31 17:05 5903nginx 日志分析 # log_format ... -
nginx负载均衡设置
2011-11-24 11:03 1965nginx 的 upstream目前支持 4 种方式的分配 ... -
nginx安装重启脚本
2011-11-15 14:17 1015该文章来自http://rq2-79.iteye.com/bl ... -
nginx配置
2011-10-26 17:49 1750#user nobody; worker_proces ... -
Nginx+tomcat负载均衡session问题解决
2011-09-01 18:46 3870文章来源:http://hi.baidu. ...
相关推荐
本文将深入探讨如何通过Nginx配置HTTPS服务器,实现443端口的反向代理,以及与SSL连接相关的域名访问应用服务器的设置。 首先,我们需要了解HTTPS的基本原理。HTTPS是HTTP协议的安全版本,它通过添加SSL(Secure ...
### 一、Nginx反向代理配置 反向代理是Nginx的核心功能之一,它充当服务器和客户端之间的中介。当用户请求到达Nginx时,Nginx会根据配置将请求转发到后端服务器处理,然后将响应返回给用户。以下是一个基本的反向...
**一、Nginx反向代理原理** 反向代理是指客户端请求到达Nginx服务器时,Nginx并不直接返回内容,而是根据配置将请求转发到实际的后端服务器,获取内容后再返回给客户端。这样做的好处包括负载均衡、安全防护以及提高...
"nginx反向代理相关文件.rar"这个压缩包很可能包含了一些配置文件、文档或者示例,用于帮助我们理解和设置Nginx的反向代理功能。下面将详细阐述Nginx反向代理的相关知识点。 首先,了解什么是反向代理。在Web服务...
**NGINX反向代理与缓存详解** NGINX是一款高性能的HTTP和反向代理服务器,常用于负载均衡和内容缓存,以提高网站的响应速度和整体性能。在本文中,我们将深入探讨如何利用NGINX进行反向代理和缓存配置,特别是对于...
综上所述,Nginx 作为反向代理服务器,不仅能够提供高性能的服务,还能通过各种配置实现丰富的功能,是构建高效、安全、可扩展网络应用的得力工具。在实际应用中,可以根据业务需求调整和优化Nginx 配置,以达到最佳...
2. **Nginx反向代理配置** 在Nginx中,通过配置`http`、`server`和`location`等块来实现反向代理。例如,你可以创建一个`server`块监听80端口,将所有请求转发到8080端口上的后端应用服务器: ```nginx server { ...
Nginx 详解及反向代理设置 Nginx 是一个功能强大且高性能的 Web 服务器软件,广泛应用于 Web 服务器、反向代理、负载均衡等领域。下面对 Nginx 进行详细的介绍,包括 Linux 和 Windows 下的安装方法、nginx.conf ...
在Nginx配置中,通过`location`指令和`proxy_pass`属性设置反向代理。例如,以下配置将所有/luban/开头的请求转发到本地8010端口: ``` location /luban/ { proxy_pass http://127.0.0.1:8010; } ``` 2. 负载均衡...
2. **性能优化**:通过调整Nginx的配置参数,例如`proxy_cache`等,提高反向代理的性能。 3. **安全防护**:设置访问控制规则,如IP白名单、黑名单等,增强安全性。 #### 五、Nginx之负载均衡 负载均衡是指将...
尝试使用Nginx进行反向代理过程中出现如下错误: 代码如下: nginx: [emerg] “proxy_cache_path” directive is not allowed here in /etc/nginx/conf.d/default.conf:29 提示意思“proxy_cache_path指令不被允许”...
在IT行业中,Nginx是一款广泛应用的高性能HTTP和反向代理服务器,它的高效性和灵活性使得在配置代理转发方面具有显著优势。Nginx通过代理转发功能可以将客户端的请求转发到不同的后端服务,实现负载均衡、服务隔离、...
Nginx作为一个反向代理服务器,可以接收来自客户端的请求,然后转发到后端服务器。我们可以通过配置Nginx,让它在转发请求前添加适当的响应头,使得浏览器允许跨域请求。 3. **Nginx 配置跨域** 在Nginx的配置...
这个配置涉及到FastDFS分布式文件系统、Nginx反向代理服务器以及缓存服务的集成,旨在优化文件访问性能,提高系统整体效率。 首先,我们来看FastDFS。FastDFS是一款开源的高性能、轻量级的分布式文件系统,主要用于...
Nginx的Web缓存服务主要由proxy_cache相关指令集和fastcgi_cache相关指令集构成,前者用于反向代理时,对后端内容源服务器进行缓存,后者主要用于对FastCGI的动态程序进行缓存。两者的功能基本上一样。 Nginx 0.8.32...
Nginx,以其高性能、稳定性以及模块化的特性,成为了许多网站首选的反向代理和负载均衡服务器。在Nginx中,缓存机制可以显著提升静态资源的访问速度,降低服务器压力。然而,如何有效地管理和清除这些缓存呢?这就是...