1. Nginx基础和部署

最后更新于:2022-04-02 07:46:46

#### Nginx官网 ```shell www.nginx.org ``` #### Nginx的特点 - 擅长处理静态小文件(1M) - 支持高并发(支持epoll模型) - 占用资源少 - 2W并发连接,10个进程,200M内存 - 配置简单、灵活、轻量 - 功能丰富(Web、Proxy、Cache) - 工作在IOS第七层(支持限速、连接数限制等) #### Nginx基本功能 - 静态服务(图片、视频、css、js、html) - 基于域名/IP/端口的虚拟主机 - Http/Https、SMTP、POP3反向代理 - TCP/UDP反向代理 - FastCGI、uWSGI反向代理 - 负载均衡 - 页面缓存(CDN) - 支持gzip、expirse - URL Rewrite - 路径识别 - 基于IP、用户的访问控制 - 支持访问速率、并发限制 - 反向代理(适用2000WPV、并发连接1W/秒) #### Nginx原理 ##### master process 1. 与外界通讯和工作进程管理 2. 读取nginx配置文件并验证有效性 3. 建立、绑定和关闭Socket 4. 按照配置文件生成、管理和结束工作进程 5. nginx重启、停止、重载配置文件、平滑升级、管理日志文件 ##### worker process 1. 接收客户端请求,讲请求交给各个功能模块处理 2. 系统IO调用,获取相应的数据,发送相应给客户端 3. 数据缓存管理 4. 接收主进程指令,比如重启、关闭 ##### 缓存索引重建及管理进程 cache模块主要由缓存索引重建和缓存索引管理两个进程完成,缓存索引重建进程是在nginx服务启动一段时间后(默认1分钟),由主进程生成,对本地磁盘的索引文件在内存中建立元数据,包括扫描、过期更新等操作,完成后退出 - 模块只有使用时才加载 #### Nginx常用模块 核心模块 - Core functionality 标准模块 - ngx_http_core_module - ngx_http_access_module - ngx_http_fastcgi_module - ngx_http_gzip_module - ngx_http_rewrite_module - ngx_http_upstream_module - ngx_http_proxy_module - ngx_http_limit_conn_module - ngx_http_limit_req_module - ngx_http_auth_basic_module - ngx_http_log_module - ngx_http_ssl_module - ngx_http_status_module - ngx_http_realip_module #### Nginx(Proxy)支持的算法 rr 轮询 wrr 权重轮询 iphash hash算法(解决session命中) urlhash hash算法 fair 动态算法(响应时间最短) ### Nginx部署(1.8.1) #### 安装依赖 ```shell yum install openssl-devel pcre-devel pcre gcc zlib -y ``` - pcre 正则处理需要 - gcc 编译需要 - zlib 压缩需要 - openssl 安全链接需要 #### 编译安装 ```shell useradd nginx -s /sbin/nologin -M cd /opt && wget http://nginx.org/download/nginx-1.12.2.tar.gz tar xzf nginx-1.12.2.tar.gz && cd nginx-1.12.2 ./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_ssl_module --with-http_geoip_module --with-stream --with-http_stub_status_module --with-http_realip_module make && make install ``` #### 基本操作 ```shell #启动 /app/nginx/sbin/nginx #停止 /app/nginx/sbin/nginx -s stop # 检查语法 /app/nginx/sbin/nginx -t #重启 /app/nginx/sbin/nginx -s #重启原理:生成基于新配置的线程,新请求转发到新线程,旧线程处理完成后停止。 ```
';