nginx详解-1

nginx的特性:

1、模块化设计、较好的扩展性;
2、高可靠性;master进程/worker进程;
3、支持热部署;不停止服务更新配置文件、更换日志、更新服务器程序版本(平滑升级);
4、低内存消耗;10000个keepalived连接模式下的非活动连接仅消耗2.5M内存;
5、nginx支持事件驱动IO和异步IO和内存映射等技术;

nginx的功能:

静态资源的web服务器,
支持反向代理,http协议的反向代理服务;
pop3、smpt、imap4等邮件协议的反向代理;
能缓存打开的文件(元数据);
支持fastcgi(php-fpm)、uwsgi(python的web框架)等协议;
模块化机制(非DSO机制)、过滤器zip,ssl;

web服务功能:

虚拟主机(server);
支持keepalived;
支持访问日志(支持基于日志缓冲提高其性能);
url-rewrite、路径别名、基于ip及用户的访问机制、支持速率限制及并发数限制;

nginx的基本架构:

master/worker进程:
一个master进程,可生成一个或多个worker进程;每一个worker进程基于复用型IO机制响应客户端请求;
消息通知:select、poll;
支持sendfile以及sendfile64;
支持异步IO以及内存映射;

master进程:加载配置文件,管理worker进程,平滑升级等;
worker进程:响应客户端请求,提供http服务,提供http代理,fastcgi代理;

nginx的模块类型:

核心模块:core module
standard HTTP modules:标准HTTP模块
optional HTTP modules:可选的HTTP模块
Mail modules:邮件模块
3rd party modules:第三方模块

用来做什么?

静态资源的web服务器;
http服务器的反向代理;

nginx的安装

1、官网下载包

2、安装编译环境:

# yum -y  groupinstall "Development Tools" "Server Platform Development"

3、安装基本组件:
pcre:支持URL-rewrite
zlib:支持传输压缩
openSSL:支持https协议

# yum -y install openssl-devel pcre-devel zlib-devel

4、编译安装nginx:

# tar zxvf nginx-1.8.1.tar.gz 
# cd nginx-1.8.1
# ./configure --help  查看编译帮助信息
# ./configure --prefix=/usr/local/nginx --conf-path=/etc/nginx/nginx.conf --user=nginx --group=nginx --http-log-path=/var/log/nginx/access.log --pid-path=/var/run/nginx/nginx.pid --lock-path=/var/lock/nginx.lock --with-http_ssl_module --with-http_stub_status_module --with-http_gzip_static_module  --with-debug
# make && make install 编译并安装

5、nginx的启动

# /usr/local/nginx/sbin/nginx -t 检查nginx是否安装正确
# /usr/local/nginx/sbin/nginx 启动nginx
# netstat -untlp | grep nginx 查看nginx的80端口是否开启

# ps -aux | grep nginx 查看nginx的进程

默认只有一个master进程和一个worker进程,怎么开启多个worker进程?
(1)、查找nginx的配置文件在哪,修改配置文件:

# /usr/local/nginx/sbin/nginx -V  因为刚才编译安装时指定了配置文件的路径,所以这样可以看到nginx的版本和编译安装的参数,根据参数去找配置文件

# vim /etc/nginx/nginx.conf   修改nginx的配置文件
worker_processes  2;  将配置文件中的worker_process修改为2

(2)、重新启动nginx:

 # /usr/local/nginx/sbin/nginx -s stop 平滑关闭nginx
 # /usr/local/nginx/sbin/nginx start  启动nginx
然后现在ps -aux | grep nginx 查看worker进程已经有两个了;

你可能感兴趣的:(nginx详解-1)