草庐IT

nginx 根据IP 进行灰度发布

灰度发布,简单来说,就是根据各种条件,让一部分用户使用旧版本,另一部分用户使用新版本。nginx的语法本身可以看作是一门小型的编程语言,通过简单的编程,可以轻松实现基于IP的灰度发布。需求:搭建准生产环境,供开发人员/运维在线上做最后的调整。如果OK,直接用rsync推送至生产环境。条件:办公室网络出口有固定IP解决办法:nginx负载均衡器判断客户端IP地址,如果是办公室IP,则反向代理到准生产环境;如果不是,则反向代理到生产环境。upstreamprod{server192.168.1.10;server192.168.1.11;}upstreampre-prod{server192.16

Nginx配置proxy_pass转发的/路径问题

在nginx中配置proxy_pass时,如果是按照^~匹配路径时,要注意proxy_pass后的url最后的/,当加上了/,相当于是绝对根路径,则nginx不会把location中匹配的路径部分代理走;如果没有/,则会把匹配的路径部分也给代理走。location^~/static_js/{proxy_cachejs_cache;proxy_set_headerHostjs.test.com;proxy_passhttp://js.test.com/;}如上面的配置,如果请求的url是http://servername/static_js/test.html会被代理成http://js.tes

为Nginx配置图片防盗链

在Nginx上配置图片防盗链非常简单,通过用户客户端http请求头中的Referer信息来做为主要判断,如果图片链接嵌套在非指定的网站上,可以限制其访问。主要配置代码如下:location ~*\.(gif|jpg|jpeg|png|bmp|swf)$ {  valid_referers none blocked *.yourname.com;  if ($invalid_referer) {  rewrite ^/ http://youname.com/error.html;  #return 403; } } 以上代码解释如下:1、location中指定要防篡改的文件类型;2、valid_

源码编译安装Nginx全程视频演示

基本步骤:1.首先停止现有web系统,#/etc/init.d/apache2stop2.将源码拷贝到/usr/local/src#cp/home/ditatompel/Public/Nginx-1.0.5.tar.gz/usr/loca/src/#cd/usr/loca/src/#tarzxvfnginx-1.0.5.tar.gz#cdnginx-1.0.53.安装libpcre3libpcre3-devapt-getinstalllibpcreclibpcre3-dev./configuremakemakeinstall4.修改/etc/init.d/nginx配置文件(见视频文件,配置文

sendfile()对nginx性能的提升

Linuxkernel2.2之前,(如图)读写数据基本都是使用read系统调用和write系调用,以nginx来说如果一个请求建立,从磁盘的文件到网络连接之间会通过硬件(DMA)---内核层---用户层多次读写系统来完成文件数据的复制传输:从内核层用read系统调用读到用户层,再从用户层用write系统调用写到内核层,每一次用户层到内核层的进行一次上下文转换,这种代价是非常昂贵的。甚至在没有数据变化时这种复制尤其显得多余。如果nginx接受大量并发请求,这种系统调用就会非常频繁,服务器的性能就会下降。  在Linuxkernel2.2版本之后出现了一种叫做“零拷贝(zero-copy)”系统调

sendfile()对nginx性能的提升

Linuxkernel2.2之前,(如图)读写数据基本都是使用read系统调用和write系调用,以nginx来说如果一个请求建立,从磁盘的文件到网络连接之间会通过硬件(DMA)---内核层---用户层多次读写系统来完成文件数据的复制传输:从内核层用read系统调用读到用户层,再从用户层用write系统调用写到内核层,每一次用户层到内核层的进行一次上下文转换,这种代价是非常昂贵的。甚至在没有数据变化时这种复制尤其显得多余。如果nginx接受大量并发请求,这种系统调用就会非常频繁,服务器的性能就会下降。  在Linuxkernel2.2版本之后出现了一种叫做“零拷贝(zero-copy)”系统调

nginx编译参数输出问题

网站最近在做年中大促,其中图片业务使用的是nginx集群,为了满足大促时负载规模需要扩容,我们现在使用的自动化运维工具是基于saltstack的,自动化部署后有个小需求,想把nginx编译安装时的参数重定向备份到一个文件里,查看编译参数使用-V,这里说下大V和小v的区别,-v:showversionandexit查看版本后退出-V:showversionandconfigureoptionsthenexit查看版本和配置参数后退出于是,/usr/local/nginx/sbin/nginx-V>nginx_configure.txt问题来了,无法把信息定向到文件里而是直接定向到终端显示为什么会

nginx编译参数输出问题

网站最近在做年中大促,其中图片业务使用的是nginx集群,为了满足大促时负载规模需要扩容,我们现在使用的自动化运维工具是基于saltstack的,自动化部署后有个小需求,想把nginx编译安装时的参数重定向备份到一个文件里,查看编译参数使用-V,这里说下大V和小v的区别,-v:showversionandexit查看版本后退出-V:showversionandconfigureoptionsthenexit查看版本和配置参数后退出于是,/usr/local/nginx/sbin/nginx-V>nginx_configure.txt问题来了,无法把信息定向到文件里而是直接定向到终端显示为什么会

nginx禁止访问robots.txt防泄漏web目录

关于robots.txt文件:搜索引擎通过一种程序robot(又称spider),自动访问互联网上的网页并获取网页信息。您可以在您的网站中创建一个纯文本文件robots.txt,在这个文件中声明该网站中不想被robot访问的部分,这样,该网站的部分或全部内容就可以不被搜索引擎收录了,或者指定搜索引擎只收录指定的内容。访问www.linuxom.com/robots.txt,可以得知我们网站中存在/admin和/bbs,其中/admin是关于后台管理的目录,把这个路径轻易的暴漏显然是不×××全的,下面我们可以通过禁止访问.txt类型的文件来,增加网站的安全性。 修改nginx.conf文件,vi

nginx禁止访问robots.txt防泄漏web目录

关于robots.txt文件:搜索引擎通过一种程序robot(又称spider),自动访问互联网上的网页并获取网页信息。您可以在您的网站中创建一个纯文本文件robots.txt,在这个文件中声明该网站中不想被robot访问的部分,这样,该网站的部分或全部内容就可以不被搜索引擎收录了,或者指定搜索引擎只收录指定的内容。访问www.linuxom.com/robots.txt,可以得知我们网站中存在/admin和/bbs,其中/admin是关于后台管理的目录,把这个路径轻易的暴漏显然是不×××全的,下面我们可以通过禁止访问.txt类型的文件来,增加网站的安全性。 修改nginx.conf文件,vi