Nginx 快速入门教程

2,505 阅读4分钟
原文链接: www.shiyanlou.com
开 始 体 验 Nginx是一款高性能的HTTP和反向代理服务器软件,第一个开源版本诞生于2004年,经过十多年的发展,已经成为非常流行的web服务器软件。Nginx 具备轻量级,性能强,支持热部署,负载均衡,具备很强大的代理功能等特点。

Nginx 快速入门教程

Nginx是什么?

Nginx ("engine x") 是一个轻量级且高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP服务器。由俄罗斯的程序设计师Igor Sysoev所开发。其特点是占有内存少,并发能力强,事实上nginx的并发能力确实在同类型的网页服务器中表现较好,中国大陆使用nginx网站用户有:百度、京东、新浪、网易、腾讯、淘宝等。

Nginx的优点

1.Nginx 可以在大多数 UnixLinux OS 上编译运行,并有 Windows 移植版。

2.在连接高并发的情况下,Nginx是Apache服务器不错的替代品

3.Nginx能作为负载均衡服务器

4.Nginx代码完全用C语言从头写成,已经移植到许多体系结构和操作系统,包括:Linux、FreeBSD、Solaris、Mac OS X、AIX以及Microsoft Windows

5.能作为邮件代理服务器

6.安装非常的简单、配置文件非常简洁(还能够支持perl语法)、Bug非常少的服务器

启动、停止和重新加载配置

小提示:由于系统是最初始的,因为里面很多命令没有安装,如果需要安装自己需要的命令,则可以自行安装,安装的方式为:

apt-get update
apt-get install 命令名

要启动nginx,请运行可执行文件。

查看是否启动了nginx

/etc/init.d/nginx status

如果没有启动,则启动,启动的命令是:(-c参数指定了要加载的nginx配置文件路径)

nginx -c  etc/nginx/nginx.conf

一旦nginx启动,它可以通过使用参数调用可执行文件来-s控制。使用以下语法:

nginx -s 信号

当信号可以是下列之一:

  • stop - 快速关机
  • quit - 正常关机
  • reload - 重新加载配置文件
  • reopen - 重新打开日志文件

例如,要通过等待工作进程完成服务当前请求来停止nginx进程,可以执行以下命令:

nginx -s 退出

该命令应该在启动nginx的同一用户下执行。

在将重新配置命令的命令发送到nginx或重新启动之前,配置文件中的更改将不会被应用。要重新加载配置,请执行:

nginx -s重新加载

一旦主进程收到要重新加载配置的信号,它将检查新配置文件的语法有效性,并尝试应用其中提供的配置。如果这是成功的,主进程将启动新的工作进程,并向旧的工作进程发送消息,请求它们关闭。否则,主进程回滚更改,并继续使用旧配置。老工作进程,接收关闭命令,停止接受新连接,并继续维护当前请求,直到所有这些请求得到维护。之后,旧的工作进程退出。

还可以借助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

查看nginx运行状态

etc/init.d/nginx status

此处输入图片的描述

配置成功并且启动后的截图如下:

此处输入图片的描述

配置文件及目录

查看nginx的安装路径

    whereis nginx

此处输入图片的描述

nginx最重要的配置文件nginx.conf目录

此处输入图片的描述

查看配置文件是否正确:

进入nginx安装目录sbin下,输入命令./nginx -t

此处输入图片的描述

另一个方法是:在启动命令 -c 之前加 -t

配置文件的结构

nginx由由配置文件中指定的指令控制的模块组成。指令分为简单指令和块指令。一个简单的指令由空格分隔的名称和参数组成,以分号(;)结尾。块指令具有与简单指令相同的结构,但不是以分号结尾,而是以大括号({和})包围的一组附加指令结束。如果块指令可以在大括号内部有其他指令,则称为上下文(例如: events, http, server和 location)。

配置文件中放置在任何上下文之外的伪指令都被认为是 主要的上下文。在events和http指令驻留在main上下文server 中http,并location在 server。

设置简单的代理服务器、设置FastCGI代理、提供静态内容等可详见官方文档

参考文献:nginx.org/en/docs/beg…