nginx worker进程循环的实现

nginx worker进程循环的实现

worker进程启动后,其首先会初始化自身运行所需要的环境,然后会进入一个循环,在该循环中不断检查是否有需要执行的事件,然后处理事件。在这个过程中,worker进程也是需要与master进程交互的,更有甚者,worker进程作为一个子进程,也是可以接收命令行指令(比如kill等)以进行相应逻辑的处理的。那么worker进程是如何与master或者命令行指令进行交互的呢?本文首先会对worker进程与master进程交互方式,以及worker进程如何处理命令行指令的流程进行讲解,然后会从源码上对worker进程交互的整个工作流程进行介绍。
Nginx设置日志打印post请求参数的方法

Nginx设置日志打印post请求参数的方法

【前言】         我们项目的短信功能是接第三方,原来对接第三方给我们回执确认请求是get请求我们在排查问题的时候可以通过nginx的日志拿到对方给我们请求的参数;最近我们换了另外一家第三方,新的第三方给我们的确认请求是post,遇到问题排查,发现nginx没有打印具体参数,于是查阅一些资料和运维一起做了实验和线上调整,调整后我们可以拿到请求参数,更方便我们排查问题;
Nginx反向代理多个服务器的实现方法

Nginx反向代理多个服务器的实现方法

Nginx反向代理多个服务器,意思是说,当我们发起了不同的请求到nginx,nginx会根据请求的不同,转发到不同的服务器,如下图,当我们通过8000端口访问资源a时,nginx会将请求转发到8080服务器,当访问资源b时,会转发到8081服务器
Nginx重定向的配置实例

Nginx重定向的配置实例

在/usr/local/nginx/conf/nginx.conf中: server { ... ##begin add by guozhenbin 20100727 location /b2c/ { if (!-e $request_filename) { rewrite ^/b2c/(.*)$ /b2c/index.php?$1 last; } } ##end add by guozhenbi ···
nginx 关闭默认站点的方法

nginx 关闭默认站点的方法

当别人把垃圾域名转向至你的服务器时, 如果不采取措施,那么后果不堪设想。 国内机房一般都要求网站主关闭空主机头,防止未备案的域名指向过来造成麻烦。 Nginx默认的虚拟主机允许用户经过IP访问,或者经过未设置的域名访问(比如有人把他本人的域名指向了你的ip)你的VPS或服务器。 默认情况下,只要将域名解析到VPS的IP上,就可以访问安装lnmp的VPS。 如果想避免这种情况的出现,可以修改nginx.conf ,将默认的虚拟主机修改为如下即可屏蔽未绑定域名访问: 代码如下: server { listen 80 default; return 500; } 也可以把这些流量收集起来,导进到本人的网站,只需做以下跳转设置就可以: 代码如下: server { listen 80 default; rewrite ^(.*) http://jb51.net permanent; } 以此类推, 禁止通过IP访问,可以写成: 代码如下: server { listen 80 default; server_name _; return 500; }
如何让Nginx支持中文文件名具体设置步骤

如何让Nginx支持中文文件名具体设置步骤

首先得让你的系统有中语语言包: 设置前可以执行:locale 看一下,如果显示是en_US.UTF-8,即是正常,不用按下面的步骤设置。如果显示其他编码需要按如下步骤设置。 CentOS 编辑/etc/sysconfig/i18n 文件,内容修改为:(可以使用vi、nano或winscp图形管理软件,依个人口味选择) LANG="en_US.UTF-8" SYSFONT="latarcyrheb- ···
nginx不支持apk ipa文件下载的设置方法

nginx不支持apk ipa文件下载的设置方法

.apk 和 .ipa分别是android应用和ios应用的扩展名。 如果在浏览器下载这些文件为后缀的文件时,会自动重命名为zip文件。 当然可以下载后手动修改后缀,依然可以安装。 如果想下载后缀直接就是apk ipa的,可以修改 /usr/local/nginx/conf目录下的mime.types 增加如下配置,重启nginx生效 代码如下: application/vnd.android.p ···
Nginx if语句加正则表达式实现字符串截断

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

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