Nginx

什么是Nginx?

Nginx (engine x) 是一个高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务。其特点是占有内存少,并发能力强,事实上nginx的并发能力在同类型的网页服务器中表现较好,中国大陆使用nginx网站用户有:百度、京东、新浪、网易、腾讯、淘宝等。在全球活跃的网站中有12.18%的使用比率,大约为2220万个网站。

Nginx 是一个安装非常的简单、配置文件非常简洁(还能够支持perl语法)、Bug非常少的服务。Nginx 启动特别容易,并且几乎可以做到7*24不间断运行,即使运行数个月也不需要重新启动。你还能够不间断服务的情况下进行软件版本的升级。

Nginx代码完全用C语言从头写成。官方数据测试表明能够支持高达 50,000 个并发连接数的响应。

Nginx的作用

Http代理,反向代理:作为web服务器最常用的功能之一,尤其是反向代理。

Nginx提供的负载均衡策略有2种:内置策略和扩展策略。内置策略为轮询,加权轮询,Ip hash。扩展策略,就天马行空,只有你想不到的没有他做不到的。

正向代理

代理客户端发送请求,如加速器等。多对一

**反向代理 **

代理服务端接受客户端的请求。一对多

Nginx 反向代理模块的指令是由 ngx_http_proxy_module 模块进行解析,该模块在安装 Nginx 的时候已经自动加载到 Nginx 中了,接下来我们把反向代理中的常用指令一一介绍下:

  • proxy_pass:配置代理的服务器地址
  • proxy_set_header:转发给被代理服务器时,设置一些请求头信息
  • proxy_redirect:防止客户端可以看到被代理服务器的地址
轮询

请求以轮询的方式平均的打到不同的服务器上。

加权轮询

不同的服务器有不同的比重,比重高的接受到的请求多。

iphash

对客户端请求的ip进行hash操作,然后根据hash结果将同一个客户端ip的请求分发给同一台服务器进行处理,可以解决session不共享的问题。

动静分离

在我们的软件开发中,有些请求是需要后台处理的,有些请求是不需要经过后台处理的(如:css、html、jpg、js等等文件),这些不需要经过后台处理的文件称为静态文件。让动态网站里的动态网页根据一定规则把不变的资源和经常变的资源区分开来,动静资源做好了拆分以后,我们就可以根据静态资源的特点将其做缓存操作。提高资源响应的速度。

Nginx常用命令

  1. cd /usr/local/nginx/sbin/
  2. ./nginx 启动
  3. ./nginx -s quit 安全退出
  4. ./nginx -s stop 停止
  5. ./nginx -s reload 重新加载配置文件
  6. ps aux|grep nginx 查看nginx进程