当前位置 主页 > 服务器问题 > nginx问题汇总 >

    nginx 基本入门教程

    栏目:nginx问题汇总 时间:2018-09-25 18:35

    本篇文章主要介绍了详解nginx 基本入门,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

    这篇教程简单介绍了 nginx 并且讲解了一些 nginx 可以解决的简单任务。这里,我们假设 nginx 已经安装在读者的机器上。如果没有,可以看一下如何安装 nginx。这篇教程主要讲解的是如何启用和停止nginx,和重新加载配置,描述配置文件的基本结构和怎样搭建一个 nginx 静态辅助器,怎样配置 nginx 作为一个代理服务器来。

    nginx 有一个主进程和其他子进程。主进程的主要工作是加载和执行配置文件,并且驻留子进程。子进程用来作为实际的请求处理。nginx 采取基于事件的模型和 OS 依赖的机制,在多个子进程之间高效的分配请求。子进程的个数会直接写在配置文件中并且,对于给定的配置可以是固定的,或者根据可用的 CPU 核数自动的进行调整(参考 子进程)。

    nginx 和它模块的工作方式是在配置文件中写好的。默认情况下,这个配置文件通常命名为 nginx.conf 并且会放置在 /usr/local/nginx/conf/etc/nginx,或者 /usr/local/etc/nginx

    启用,停止和重载配置

    运行可执行文件就可以开启 nginx,比如:

    // -c 为 nginx 的配置文件nginx -c /usr/local/nginx/conf/nginx.conf

    如果,nginx 已经开启,那么它就可以通过使用 -s 参数的可执行命令控制。使用下列格式:

    nginx -s signal

    signal 可以为下列命令之一:

    stop — 直接关闭 nginx quit — 会在处理完当前正在的请求后退出,也叫优雅关闭 reload — 重新加载配置文件,相当于重启 reopen — 重新打开日志文件

    比如,等待当前子进程处理完正在执行的请求后,结束 nginx 进程,可以使用下列命令:

    nginx -s quit

    执行该命令的用户需要和启动的 nginx 的用户一致。

    如果重载配置文件的命令没有传递给 nginx 或者 nginx 没有重启,那么配置文件的改动是不会被使用的。重载配置文件的命令可以使用:

    nginx -s reload

    一旦主进程接收到重载配置文件的命令后,它会先检查配置文件语法的合法性,如果没有错误,则会重新加载配置文件。如果成功,则主进程会重新创建一个子进程并且发送关闭请求给以前的子进程。如果没有成功,主进程会回滚改动并且继续使用以前的配置。老的子进程在接受关闭的命令后,会停止接受新的请求并且继续处理当前的请求,直到处理完毕。之后,该子进程就直接退出了。

    在 Unix 工具的帮助下,比如使用 kill 工具,该信号会被发送给 nginx 进程。在这种情况下,信号会被直接发送给带有进程 ID 的进程。nginx 的主进程的进程 ID 是写死在 nginx.pid 文件中的。该文件通常放在 /usr/local/nginx/logs 或者 /var/run 目录下。比如,如果主进程的 ID 是 1628,为了发送 QUIT 信号来使 nginx 优雅退出,可以执行:

    kill -s QUIT 1628

    为了得到所有正在运行的 nginx 进程,我们可能会使用到 ps 工具,比如,像下列的方式:

    $ ps -ax | grep nginx// 结果为:(下面是单核 CPU 的情况) 516 pts/0  D+   0:00 grep --color=auto nginx 1156 ?    S   1:22 nginx: worker process27999 ?    Ss   0:00 nginx: master process ./nginx

    更多关于发送信号给 nginx,可以参考nginx 控制。

    配置文件结构

    nginx 是由一些模块组成,我们一般在配置文件中使用一些具体的指令来控制它们。指令被分为简单指令和块级命令。一个简单的指令是由名字和参数组成,中间用空格分开,并以分号结尾。例如: