Nginx配置入门教程

Nginx配置入门教程

基本概念Nginx 最常的用途是提供反向代理服务,那么什么反向代理呢?正向代理相信很多大陆同胞都在这片神奇的土地上用过了,原理大致如下图:
Nginx反斜杠自动解码问题解决方法

Nginx反斜杠自动解码问题解决方法

nginx 会对uri中的字符进行解码然后传递给fastCGI,一般情况下也无妨,偏偏我的搜索词中含有反斜杠,编码后的地址 代码如下: /search/Madmanfoo%2fLovesong/ nginx传递给php的地址就变成了,我用的PATHINFO所以无法得到正确的结果 代码如下: /search/Madmanfoo/Lovesong/ 把nginx官网找了个遍也没找到阻止自动解码的配置,实在不想二次编码,从找到了一个类似的帖子,看样只能二次编码了,据说官方就是这么建议的。为了保持地址的美观只对影响PATHINFO的反斜杠进行了二次编码。 代码如下: $keyword=urlencode($keyword); $keyword=str_replace(array('%2F','%2f'),'%252F',$keyword); 如果有更好的解决办法欢迎指正。
nginx try_files指令判断文件是否存在实例

nginx try_files指令判断文件是否存在实例

现在有这样一个需求,网站根目录下有静态文件,static目录下也有静态文件,static目录下的静态文件是程序批量生成的,我想让nginx在地址不变的前提下优先使用static目录里面的文件,如果不存在再使用根目录下的静态文件,比如访问首页http://example.com/index.html则nginx返回/static/index.html,如果不存在返回/index.html。
Nginx和Apache几种防盗链配置方法实例

Nginx和Apache几种防盗链配置方法实例

要实现防盗链,我们就必须先理解盗链的实现原理,提到防盗链的实现原理就不得不从HTTP协议说起,在HTTP协议中,有一个表头字段叫 referer,采用URL的格式来表示从哪儿链接到当前的网页或文件。换句话说,通过referer,网站可以检测目标网页访问的来源网页,如果是资源 文件,则可以跟踪到显示它的网页地址。有了referer跟踪来源就好办了,这时就可以通过技术手段来进行处理,一旦检测到来源不是本站即进行阻止或者返 回指定的页面。
Nginx中IF语句实现数学比较功能

Nginx中IF语句实现数学比较功能

nginx的if支持=、!= 逻辑比较, 但不支持if中 <、<、>=、<= 比较. 本示例使用了 代码如下: location = /test/ {     default_type html;     set_random $a 0 9;      #$a 随机 从0-9取     if ( $a <= 4 ){         #$a 如果 < 4 这是错误的写法         echo 'a: $a is lte 4';     }     if ( $a >= 5 ){         #$a 如果 > 5 这是错误的写法         echo 'a: $a is gte 5';     } } 上面的配置, 在启动nginx时会报错误的.
Nginx if语句加正则表达式实现字符串截断

Nginx if语句加正则表达式实现字符串截断

在给大家讲述这个问题之前,先给大家看一段nginx配置. 我们用到了 代码如下: location /test/ {     default_type text/html;     set_md5 $hash "secret"$remote_addr;     echo $hash; } 这样输出来的内容,可能是下面这样的 代码如下: 202cb962ac59075b964b07152d234b70 但如果我们要截取某几位字符怎么办呢? 首先大家想到的肯定是使用模块来实现, 但只能这样吗? 有没有更方便的方式呢?
Nginx DNS resolver配置实例

Nginx DNS resolver配置实例

nginx 通过 proxy_pass 和 upstream server 通信的时候需要手动指定 resolver。某些时候 DNS 解析失败就会出现这个错误: 代码如下: domain.com could not be resolved. 可以指定多个 DNS 并重置域名 TTL 延长 nginx 解析缓存来保障解析成功率: 代码如下: resolver 223.5.5.5 223.6.6.6 1.2.4.8 114.114.114.114 valid=3600s; 如果还有解析错误,可以用 dnsmasq 在本地自建 DNS,顺带还有加速解析的好处: 代码如下: #/etc/dnsmasq.conf domain-needed bogus-priv cache-size=51200 listen-address=127.0.0.1
nginx connect() to unix:/var/run/php-fpm.sock failed (11: Resource temporarily unavailable)

nginx connect() to unix:/var/run/php-fpm.sock failed (11: Resource temporarily unavailable)

网站常出现502 bad gateway,程序没有问题。根据nginx日志: 代码如下: connect() to unix:/var/run/php-fpm.sock failed (11: Resource temporarily unavailable) 发现phpfpm的listen是unix sock方式运行的,问题可能出在php fpm上。php fpm配置文件里有backlog,backlog是linux服务器在socket处理连接数的定义,phpfpm默认为-1,将-1改为4096,重启php fpm问题解决。
nginx location语法使用介绍

nginx location语法使用介绍

nginx location介绍Nginx 中的 Location 指令 是NginxHttpCoreModule中重要指令。Location 指令,是用来为匹配的 URI 进行配置,URI 即语法中的”/uri/”,可以是字符串或正则表达式。但如果要使用正则表达式,则必须指定前缀。
使用Nginx做WebSockets代理教程

使用Nginx做WebSockets代理教程

WebSocket 协议提供了一种创建支持客户端和服务端实时双向通信Web应用程序的方法。作为HTML5规范的一部分,WebSockets简化了开发Web实时通信程序的难度。目前主流的浏览器都支持WebSockets,包括火狐、IE、Chrome、Safari以及Opera等,而且,越来越多的服务器应用框架也开始支持WebSockets。