标签归档:nginx

Nginx配置proxy_pass的参数路径问题

在nginx中配置proxy_pass时,如果是按照^~匹配路径时,要注意proxy_pass后的url最后的/,当加上了/,相当于是绝对根路径,则nginx不会把location中匹配的路径部分代理走;如果没有/,则会把匹配的路径部分也给代理走。 location ^~ /static_js/{proxy_cache js_cache;proxy_set_header Host js.test.com;proxy_pass http://js.test.com/;} 如上面的配置,如果请求的url是http://servername/static_js/test.html会被代理成http://js.test.com/test.html 而如果这么配置 location ^~ /static_js/{proxy_cache js_cache;proxy_set_header Host js.test.com;proxy_pass http://js.test.com;} 则会被代理到http://js.test.com/static_js/test.htm 当然,我们可以用如下的rewrite来实现/的功能 location ^~ /static_js/{proxy_cache js_cache;proxy_set_header Host js.test.com;rewrite /static_js/(.+)$ /$1 break;proxy_pass http://js.test.com;} 本文出自 “王伟” 博客,请务必保留此出处http://wangwei007.blog.51cto.com/68019/1103734

发表在 学习笔记 | 标签为 , | 留下评论

nginx平滑升级

1. 开始之前先查看一下当前使用的版本。 # /usr/local/nginx/sbin/nginx -V nginx: nginx version: nginx/1.0.5 nginx: built by gcc 4.1.2 20080704 (Red Hat 4.1.2-50) nginx: TLS SNI support disabled nginx: configure arguments: –user=www –group=www –prefix=/usr/local/nginx –with-http_stub_status_module –with-http_ssl_module –with-http_flv_module –with-cc-opt=-O3 –with-cpu-opt=opteron –with-http_gzip_static_module 2.下载新版本:http://nginx.org/en/download.html 然后:解压 > 便以前的准备 > … 继续阅读

发表在 日记 | 标签为 | 留下评论

[转]nginx 反向代理实现负载均衡

转自 http://www.jb51.net/article/25643.htm 以下我们举例说明如何使用 nginx 实现负载均衡。因为nginx在处理并发方面的优势,现在这个应用非常常见。 nginx 这个轻量级、高性能的 web server 主要可以干两件事情:〉直接作为http server(代替apache,对PHP需要FastCGI处理器支持);〉另外一个功能就是作为反向代理服务器实现负载均衡以下我们就来举例说明如何使用nginx 实现负载均衡。因为nginx在处理并发方面的优势,现在这个应用非常常见。当然了Apache的 mod_proxy和mod_cache结合使用也可以实现对多台app server的反向代理和负载均衡,但是在并发处理方面apache还是没有nginx擅长。1)环境:介绍两种方法实现server cluster的负载均衡。我们假设前端nginx(为127.0.0.1:80)仅仅包含一个静态页面index.html;后台的两个apache服务器(分别为localhost:80和158.37.70.143:80),一台根目录放置phpMyAdmin文件夹和test.php(里面测试代码为print “server1“;),另一台根目录仅仅放置一个test.php(里面测试代码为 print “server2“;)。2)针对不同请求的负载均衡:a. 在最简单地构建反向代理的时候 (nginx仅仅处理静态不处理动态内容,动态内容交给后台的apache server来处理),我们具体的设置为:在nginx.conf中修改: 代码如下: location ~ \.php$ {proxy_pass 158.37.70.143:80 ;} 〉 这样当客户端访问localhost:8080/index.html的时候,前端的nginx会自动进行响应;〉当用户访问localhost:8080/test.php的时候(这个时候nginx目录下根本就没有该文件),但是通过上面的设置 location ~ \.php$(表示正则表达式匹配以.php结尾的文件,详情参看location是如何定义和匹配的 http://wiki.nginx.org/NginxHttpCoreModule) ,nginx服务器会自动pass给 158.37.70.143的apache服务器了。该服务器下的test.php就会被自动解析,然后将html的结果页面返回给nginx,然后 nginx进行显示(如果nginx使用memcached模块或者squid还可以支持缓存),输出结果为打印server2。如上是最为简单的使用nginx做为反向代理服务器的例子;b. 我们现在对如上例子进行扩展,使其支持如上的两台服务器。我们设置nginx.conf的server模块部分,将对应部分修改为: 代码如下: location … 继续阅读

发表在 学习笔记 | 标签为 | 留下评论