目录

一、Nginx概述

二、Nginx三大作用:反向代理、负载均衡、动静分离

三、Nginx和Apache

3.1Nginx和Apache的差异 

3.2Nginx和Apache的优缺点比较

四、编译安装niginx

五、创建Nginx 自启动文件 

 六、Nginx的信号使用

6.1信号

七、升级 nginx1.18 nginx1.20

一、Nginx概述

Nginx概述

一款高新能、轻量级Web服务软件稳定性高系统资源消耗低对HTTP并发连接的处理能力高单台物理服务器可支持30 000~50 000个并发请求。

Nginx 功能介绍

静态的web资源服务器html,图片,js,css,txt等静态资源 http/https协议的反向代理 7层 结合FastCGI/uWSGI/SCGI等协议反向代理动态资源请求 tcp/udp协议的请求转发(反向代理) 4层

基础特性

模块化设计,较好的扩展性 高可靠性 支持热部署:不停机更新配置文件,升级版本,更换日志文件 低内存消耗:10000个keep-alive连接模式下的非活动连接,仅需2.5M内存 event-driven,aio,mmap,sendfile

Web 服务相关的功能

虚拟主机(server) 支持 keep-alive 和管道连接(利用一个连接做多次请求) 访问日志(支持基于日志缓冲提高其性能) url rewirte 路径别名 基于IP及用户的访问控制 支持速率限制及并发数限制 重新配置和在线升级而无须中断客户的工作进程

二、Nginx三大作用:反向代理、负载均衡、动静分离

反向代理:

在服务端 配置,客户端 访问服务器A ,服务器A 为代理服务器 ,将客户服务再转发到服务器B 

作用:缓存,将服务器的响应缓存在自己的内存中,减少服务器压力;

           负载均衡,将用户请求分配给多个服务器;

           访问控制;

正向代理:

在客户端 配置,配置完了再去访问具体服务,即代理服务器 代理了客户端 ,再去和目标服务器 进行交互

 作用:提高访问速度

            隐藏客户端真实IP地址

负载均衡:分摊到多个操作单元上进行执行,例如Web服务器、FTP服务器、企业关键应用服务器和其它关键任务服务器等,从而共同完成工作任务

三、Nginx和Apache

3.1Nginx和Apache的差异 

轻量级,Nginxt比Apache占用更少的内存及资源:静态处理,Nginx静态处理性能比Apache高;Nginx可以实现无缓存的反向代理加速,提高网站运行速度;Nginx支持热部署,启动速度迅速,可以在不间断服务的情况下,对软件版本或者配置进行升级;Nginx高度模块化,编写模块相对简单,且组件比Apache少;高并发下Nginx能保持低资源低消耗高性能;Nginx是异步进程,多个连接可以对应一个进程;Apache是同步多进程,一个连接对应一个进程;Nginx的性能和可伸缩性不依赖于硬件,Apache依赖于硬件;Nginx配置简洁,Apache配置复杂。

3.2Nginx和Apache的优缺点比较

nginx相对于apache的优点∶

轻量级,同样起web服务,比Apache占用更少的内存及资源。 高并发,Nginx处理请求是异步非阻塞的,而Apache是阻塞型的在高并发下,Nginx能保持低资源低消耗高性能。 高度模块化的设计。 编写模块相对简。 社区活跃,各种高性能模块出品速度apache相对于nginx的优点∶

rewrite比nginx的rewrite强大 模块多,基本想到的都可以找到 少bug, Nginx的bug相对较超稳定

四、编译安装niginx

安装依赖包

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

下载安装包

nginx安装官网:https://nginx.org/en/download.html

wget http://nginx.org/download/nginx-1.18.0.tar.gz

 新建运行用户、组

 编译安装nginx

tar xf nginx-1.18.0.tar.gz  cd nginx-1.18.0/ mkdir /apps/nginx -p   ./configure --prefix=/apps/nginx \ --user=nginx \ --group=nginx \ --with-http_ssl_module \ --with-http_v2_module \ --with-http_realip_module \ --with-http_stub_status_module \ --with-http_gzip_static_module \ --with-pcre \ --with-stream \ --with-stream_ssl_module \ --with-stream_realip_module     make -j2 && make install   chown -R nginx.nginx /apps/nginx

 创建软连接后直接 nginx启动

ln -s /apps/nginx/sbin/nginx /usr/sbin/

 

五、创建Nginx 自启动文件 

vim /usr/lib/systemd/system/nginx.service   [Unit] Description=nginx - high performance web server Documentation=http://nginx.org/en/docs/ After=network-online.target remote-fs.target nss-lookup.target Wants=network-online.target [Service] Type=forking PIDFile=/apps/nginx/logs/nginx.pid ExecStart=/apps/nginx/sbin/nginx -c /apps/nginx/conf/nginx.conf ExecReload=/bin/kill -s HUP $MAINPID ExecStop=/bin/kill -s TERM $MAINPID [Install] WantedBy=multi-user.target

 

 重新加载配置、设置开机自启并开启服务

systemctl daemon-reload               重新加载配置 systemctl enable --now nginx         设置开机自起 systemctl status nginx.service        查看服务状态

 若出现

问题其一(1) 如果卡主是应为logs下有 nginx.pid  文件  删除即可

问题其二(2)检查80端口是否被占用

 六、Nginx的信号使用

6.1信号

nginx 命令支持向其发送信号,实现不同功能

nginx 当做单独命令使用有以下选项

信号意义nginx -v显示版本显示编译详细情况、模块等信息检查语法格式打印当前配置发送信号立即关闭优雅退出,不影响业务重新加载配置文件分割日制优雅升级

信号意义nginx -v显示版本nginx -V显示编译详细情况、模块等信息nginx -t检查语法格式nginx -T打印当前配置nginx -s发送信号nginx -s stop立即关闭nginx -s quit优雅退出,不影响业务nginx -s reload重新加载配置文件nginx -s  USR1分割日制nginx -s  USR2优雅升级nginx -g 'user lisi;’以lisi身份运行,默认是以nginx身份nginx -g 'daemon off;'前台运行命令

七、升级 nginx1.18 nginx1.20

将旧Nginx文件换成新Nginx文件(注意备份) 向master进程发送USR2信号 master进程修改pid文件名,加后缀.oldbin master进程用新Nginx文件启动新master进程,系统中将有新旧两个Nginx主进程共同提供Web服务 向旧的Nginx服务进程发送WINCH信号,使旧的Nginx worker进程平滑停止,并删除Nginx.pid.oldbin文件 向旧master进程发送QUIT信号,关闭老master 如果发现升级有问题,可以回滚向老master发送HUP,向新master发送QUIT

 

 

 添加新模块

 

好文推荐

评论可见,请评论后查看内容,谢谢!!!
 您阅读本篇文章共花了: