nginx使用

  • 格式:docx
  • 大小:118.91 KB
  • 文档页数:5

nginx文档说明
1 安装
nginx需要依赖下面zlib 、pcre 、openssl 3个包,还需要依赖c++编译环境,所以需要先将依赖组件安装上,最后再安装nginx。

安装在172.16.0.27环境上。

按照如下的顺序安装即可:
1.gzip 模块需要 zlib 库 ( 下载: / )
2.rewrite 模块需要 pcre 库 ( 下载: / )
3.ssl 功能需要 openssl 库 ( 下载: / )
4.如果没有安装c++编译环境,还得安装,通过yum install gcc-c++完成安装
5.nginx: /en/download.html
本次搭建安装选用版本号如下:
nginx-1.12.2.tar
pcre-8.38.tar.gz
zlib-1.2.11.tar.gz
nginx编译和安装
./configure --prefix=/usr/local/nginx-1.7.0 \
--with-http_ssl_module --with-http_spdy_module \
--with-http_stub_status_module --with-pcre
–with-http_stub_status_module:支持nginx状态查询
–with-http_ssl_module:支持https
–with-http_spdy_module:支持google的spdy,想了解请百度spdy,这个必须有ssl的支持
–with-pcre:为了支持rewrite重写功能,必须制定pcre
设置之后,执行make 结束之后执行make install
2 常用命令
1、启动
/usr/local/nginx/sbin/nginx [-c /usr/local/nginx/conf/nginx.conf] (不知道nginx安装目录的时候,可以先使用whereis nginx查看)
2、查看是否已启动
3、验证nginx配置文件是否正确
/usr/local/nginx/sbin/nginx/nginx -t
4、重启nginx服务
/usr/local/nginx/sbin/nginx/nginx -s reload
5、快速停止
先查看进程号、然后杀死进程
ps -ef|grep nginx
kill -TERM 2132或kill -INT 2132
6、强制停止
pkill -9 nginx
3 nginx的特点
Ø跨平台:可以在大多数Unix like 系统编译运行。

而且也有Windows的移植版本。

Ø配置异常简单:非常的简单,易上手。

Ø非阻塞、高并发连接:数据复制时,磁盘I/O的第一阶段是非阻塞的。

官方测试能支持5万并发连接,实际生产中能跑2~3万并发连接数(得益于nginx采用了最新的epoll事件处理模型(消息队列)。

Ø nginx代理和后端Web服务器间无需长连接;
Ønginx接收用户请求是异步的,即先将用户请求全部接收下来,再一次性发送到后端Web服务器,极大减轻后端Web服务器的压力。

Ø发送响应报文时,是边接收来自后端Web服务器的数据,边发送给客户端。

Ø网络依赖性低,理论上只要能够ping通就可以实施负载均衡,而且可以有效区分内网、外网流量。

Ø支持内置服务器检测。

nginx能够根据应用服务器处理页面返回的状态码、超时信息等检测服务器是否出现故障,并及时返回错误的请求重新提交到其它节点上。

Ø采用Master/worker多进程工作模式
Ø此外还有内存消耗小、成本低廉(比F5硬件负载均衡器廉价太多)、节省带宽、稳定性高等特点。

4 基本功能
nginx的功能包括基本HTTP功能和扩展功能。

和Apache服务器一样,nginx服务器为了提供更多的功能并且能够有效地扩展这些功能。

每一个模块都提供了一个功能,通过编译这些功能模块来实现功能的扩展。

4.1基本HTTP功能
a)提供静态文件和index文件,处理静态文件,索引文件以及自动索引,打开文件描述符缓存;
b)使用缓存加速反向代理,反向代理加速(无缓存),简单的负载均衡和容错;
c)使用缓存机制加速远程FastCGI,简单的负载均衡和容错;
d)模块化的结构。

过滤器包括gzipping,byte ranges,chunked responses,以及SSI-filter。

在SSI过滤器中,到同一个proxy 或者FastCGI 的多个子请求并发处理;
e)支持SSL 和TLS SNI 支持;
f)IMAP/POP3代理服务功能;
g)使用外部HTTP 认证服务器重定向用户到IMAP/POP3 后端;
h)使用外部HTTP 认证服务器认证用户后连接重定向到内部的SMTP 后端;
4.2其他HTTP功能
a)基于名称和基于IP的虚拟服务器;
b)支持Keep-alive和管道连接;
c)灵活的配置和重新配置、在线升级的时候不用中断客户访问的处理;
d)访问日志的格式,缓存日志写入和快速日志轮循;
e)3xx-5xx错误代码重定向;
f)速度限制
/xlgen157387/article/details/49781487
5内部进程模型
nginx是以多进程的方式来工作的,当然nginx也是支持多线程的方式的,只是我们主流的方式还是多进程的方式,也是nginx的默认方式。

nginx采用多进程的方式有诸多好处。

nginx在启动后,会有一个master进程和多个worker进程。

master进程主要用来管理worker进程,包含:接收来自外界的信号,向各worker进程发送信号,监控worker进程的运行状态,当worker进程退出后(异常情况下),会自动重新启动新的worker进程。

而基本的网络事件,则是放在worker进程中来处理了。

多个worker进程之间是对等的,他们同等竞争来自客户端的请求,各进程互相之间是独立的。

一个请求,只可能在一个worker进程中处理,一个worker进程,不可能处理其它进程的请求。

worker进程的个数是可以设置的,一般我们会设置与机器CPU核数一致,这里面的原因与nginx的进程模型以及事件处理模型是分不开的。

6处理请求
首先,nginx在启动时,会解析配置文件,得到需要监听的端口与IP地址,然后在nginx 的master进程里面,先初始化好这个监控的socket(创建socket,设置addrreuse等选项,绑定到指定的IP地址端口,再listen),然后再fork(一个现有进程可以调用fork函数创建一个新进程。

由fork创建的新进程被称为子进程)出多个子进程出来,然后子进程会竞争accept 新的连接。

此时,客户端就可以向nginx发起连接了。

当客户端与nginx进行三次握手,与nginx 建立好一个连接后,某一个子进程会accept成功,得到这个建立好的连接的socket,然后创建nginx对连接的封装,即ngx_connection_t结构体。

接着,设置读写事件处理函数并添加读写事件来与客户端进行数据的交换。

最后,nginx 或客户端来主动关掉连接。

7配置多个虚拟主机
网上最全面nginx教程
/jinchaoh/article/details/49450435
server{
server_name ;
listen 80;
root /usr/local/nginx/data/site/;
access_log /usr/local/nginx/data/logs/nginx/-access.log main;
location / {
}
}
server{
server_name ;
listen 80;
root /usr/local/nginx/data/site/;
access_log /usr/local/nginx/data/logs/nginx/-access.log main;
location / {
proxy_pass http://172.20.0.15:8810/zookeeper/hello?name=qqq;
}
}
location ~* \.service\controller\.$ {
echo "all-png";
}。