搭建一个简单的代理服务器,更新说明

原标题:nginx 1.17.7 主线版发布 来源:开源中国nginx
会同时维护着两个分支,分别为 mainline 主线版和 stable 稳定版。不过在
nginx
中,“稳定”指的是功能和更新频率,它与软件质量无关。稳定分支在其生命周期中从不接收新功能,并且通常仅接收一个或两个更新,用于修复严重的错误。nginx
1.17.7(mainline version)发布了,此版本主要是修复
bug,变更内容如下:Bugfix:如果在配置中使用了带有空替换字符串的”rewrite”指令,则可能在启动或重新配置期间发生分段错误Bugfix:如果将”break”指令与”alias”指令或带有
URI 的”proxy_pass”指令一起使用,则可能在 worker
进程中发生分段错误Bugfix:如果请求 URI 被重写为包含空字符的
URI,则”Location”的响应 header
行可能包含垃圾Bugfix:使用”error_page”指令返回重定向时,带有正文的请求会被错误处理;该错误在
0.7.12 中出现过Bugfix:使用 HTTP/2 时出现 socket 泄漏的情况Bugfix:在
SSL 连接中处理流水线请求时可能会发生超时; 该错误在 1.17.5
中出现过Bugfix: in the ngx_搭建一个简单的代理服务器,更新说明。http_dav_module.下载地址 | 更新说明

贝博体育 1

nginx初学者指南

本文为选译的官方文档,原文链接请点击此处跳转

启动,停止和重载配置
配置文件的组成结构
发布静态内容
搭建一个简单的代理服务器
搭建一个FastCGI代理

本指南提供了一个关于nginx的基本介绍,并描述里一些可以用它来做的简单事务。首先,你的机器上需要已经安装里nginx,如果没有,请前往安装nginx页面。这个指南描述了如何去启动和停止nginx,和重载它的配置文件,介绍了它的配置文件的组成结构,和如何搭建nginx去发布静态内容,如何配置nginx为一个代理服务器,和如何用它连接一个FastCGI应用。
nginx拥有一个主进程和多个工作进程,主进程的主要功能是加载和测试配置文件,和保证工作进程的正常运行。工作进程对请求做实际的处理,nginx采用基于事件的模型和依赖于操作系统的机制来高效的在工作进程之间分发请求,工作进程的数量可以在配置文件中指定,或者默认为有效的CPU核心数。(查看工作进程)
工作进程的工作模式由配置文件指定。默认的,配置文件名为nginx.conf,位于/usr/local/nginx/conf/,/etc/nginx/usr/local/etc/nginx目录。

  • Bugfix:如果在配置中使用了带有空替换字符串的”rewrite”指令,则可能在启动或重新配置期间发生分段错误

  • Bugfix:如果将”break”指令与”alias”指令或带有 URI
    的”proxy_pass”指令一起使用,则可能在 worker 进程中发生分段错误

  • Bugfix:如果请求 URI 被重写为包含空字符的 URI,则”Location”的响应
    header 行可能包含垃圾

  • Bugfix:使用”error_page”指令返回重定向时,带有正文的请求会被错误处理;该错误在
    0.7.12 中出现过

  • Bugfix:使用 HTTP/2 时出现 socket 泄漏的情况

  • Bugfix:在 SSL 连接中处理流水线请求时可能会发生超时; 该错误在
    1.17.5 中出现过

  • Bugfix: in the ngx_http_dav_module.

贝博体育,启动,停止和重载配置文件

启动nginx可直接运行nginx可执行文件即可。一旦nginx启动,可通过调用带有-s参数的执行命令来控制它。使用以下格式:

nginx -s signal

signal可以是以下几种:

stop    快速关闭
quit    优雅的关闭
reload  重载配置文件
reopen  重新打开工作日志

例如,需要等工作进程完成当前的请求后再关闭nginx,可以执行:
nginx -s quit #这个命令需要启动nginx时的用户才能够执行

在配置文件中做的改变不会立即生效,除非用重载命令或者重启nginx。重载配置文件可以执行:
nginx -s reload
一旦主进程接收到重载配置文件的信号,它将会检查新的配置文件的有效性,并尝试去应用其中的配置。如果成功,主进程将开启一个新的工作进程,并给老的工作进程发送一个消息,请求它们关闭。否则,主进程将回滚改变,继续使用老的配置进行工作,同时老的工作进程会收到一个关闭命令,停止接收新的连接,并继续当前的请求直至所有的请求处理完毕,然后关闭进程。

一个信号也可以在unix工具(如kill)的帮助下发送至nginx,在本例中信号将直接通过指定的ID发送至nginx进程,nginx主进程的ID默认在nginx.pid文件中,在/usr/local/nginx/logs或者/var/run目录下。例如一个主进程的ID是1628,给nginx主进程发送quit信号使其优雅的退出可以执行:
kill -s quit 1628
可以通过ps命令来获取所有正在运行的nginx进程:
ps aux | grep nginx
更多关于给nginx发送信号的信息,请看控制nginx

相关文章