如何优化移动端网站,网站开发教程,兰州装修公司排名前十口碑推荐,什么软件能搜索关键词能快速找到目录 一、nginx的特点
那么nginx有哪些特点#xff1f;
先讲nginx的优点#xff1a;
缺点#xff1a;
二、nginx与Apache的区别
三、nginx的应用场景
四、nginx为什么能支持高并发
五、为什么nginx不使用多线程
六、nginx的两种进程分别有什么作用
七、编译安装ngi…目录 一、nginx的特点
那么nginx有哪些特点
先讲nginx的优点
缺点
二、nginx与Apache的区别
三、nginx的应用场景
四、nginx为什么能支持高并发
五、为什么nginx不使用多线程
六、nginx的两种进程分别有什么作用
七、编译安装nginx并实现版本平滑升级
1.关闭防火墙将安装nginx所需软件包传到/opt目录下
2.安装依赖包
3.创建运行用户、组
4.编译安装Nginx
5.想要使用nginx命令直接启动服务两种方式 6.详解nginx的命令
7.nginx版本编译安装平滑升级的方式
8.使用systemd管理的两种办法
方法一添加nginx系统服务可以通用centos5-7三个版本 方法二使用systemd 进行管理 一、nginx的特点
首先介绍nginx是什么再讲nginx的特点
nginx是一种轻量级/高性能的反向代理web服务器用于HTTP、HTTPS、SMTP、POP3和IMAP协议他实现非常高效的反向代理、负载均衡可以支持处理2-3万的并发连接数官方检测能支持5万并发目前在中国为主流的web服务器。因为咱国家人多
那么nginx有哪些特点
先讲nginx的优点
1、可以跨平台配置简单内存消耗少10个nginx才占用150M内存。
2、使用的是epoll模型这种模型是I/O多路复用技术I/O多路复用是一种技术它允许一个进程或线程监控多个网络连接当其中某个或某几个连接有数据时当前程序可以拿到网卡收到的数据进行下一步的处理异步非阻塞的模型异步非阻塞模型可以提高程序的效率在等待I/O操作完成的同时可以继续执行其他代码。
3、nginx支持高并发连接处理2-3万并发连接数官方监测能支持5万并发。
4、成本低且开源稳定性高宕机概率非常小
5、内置的健康检查功能可以允许在服务器宕机的时候做健康检查再发送的请求就不会发给宕机的服务器会重新提交到其他节点上。
nginx的缺点
nginx有个不太友好的地方是nginx不方便处理动态资源可以进行动静分离将动态请求交给后端程序去进行处理。
二、nginx与Apache的区别
nginx和Apache的区别 1、nginx是轻量级nginx比apache 占用更少的内存及资源 2、静态处理Nginx 静态处理性能比 Apache 高 3、Nginx可以实现无缓存的反向代理加速提高网站运行速度 4、Nginx的性能和可伸缩性不依赖于硬件Apache依赖于硬件; 5、Nginx支持热部署启动速度迅速可以在不间断服务的情况下对软件版本或者配置进行升级 6、nginx是异步进程基于事件的web服务器多个连接对应一个进程 apache是同步多进程基于流程的web服务器一个连接对应一个进程 7、Nginx高度模块化编写模块相对简单且组件比Apache少 8、nginx抗并发nginx处理请求是异步非阻塞的而Apache则是阻塞性的在高并发下的nginx能够保持低资源低消耗高性能。
三、nginx的应用场景
1、可以做web服务器nginx是一个http服务可以独立地提供http服务可以做静态服务器
2、虚拟主机。可以实现一台服务器虚拟多个站点例如基于ip、不同端口、或者不同域名的站点
3、反向代理服务器负载均衡。当网站的访问量达到一定的程度时单台服务器就不能满足用户的请求此时需要多台服务器集群此时可以使用nginx做反向代理并且多台服务器可以平均分担负载不会让某台服务器负载高或者闲置。也可以使用ip hash技术 进行负载均衡分配
4、nginx中还可以配置安全管理比如支持nginx搭建API接口网关对每一个接口服务进行拦截
5、nginx还能做缓存服务器
四、nginx为什么能支持高并发
最核心的原因nginx是异步非阻塞使用 epoll 和并且可以进行简单的配置细节优化。
假设一个server采用一个进程或者线程负责一个请求的方式那么进程的数量就是并发的数量那么会有很多进程在等待中等待网络的传输非常耗时耗资源。
但是nginx是使用了异步非阻塞的程序运行方式解决了等待浪费时间的痛点有一个专门进行调度进程每次有一个request请求就可以分配给worker进程去进行处理web server 的工作性质决定了每个 request 的大部份生命都是在网络传输中实际上花费在 server 机器上的时间片不多。这是几个进程就解决高并发的秘密所在。
五、为什么nginx不使用多线程
nginx采用单线程来异步非阻塞处理请求 (管理员可以配置 Nginx 主进程的工作进程的数量)(epoll)不会为每个请求分配 cpu 和内存资源节省了大量资源同时也减少了大量的 CPU 的上下文切换。所以才使得 Nginx 支持更高的并发。
六、nginx的两种进程分别有什么作用
nginx有两种进程master进程和worker进程
master进程用于管理worker进程读取nginx的配置文件信息
worker进程处理连接请求 七、编译安装nginx并实现版本平滑升级
编译安装nginx的步骤
1.关闭防火墙将安装nginx所需软件包传到/opt目录下
systemctl stop firewalld
systemctl disable firewalld
setenforce 0
2.安装依赖包
#nginx的配置及运行需要pcre、zlib、openssl等软件包的支持因此需要安装这些软件的开发包以便提供相应的库和头文件。
yum -y install pcre-devel zlib-devel openssl-devel gcc gcc-c make
3.创建运行用户、组
Nginx 服务程序默认以 nobody 身份运行建议为其创建专门的用户账号以便更准确地控制其访问权限
useradd -M -s /sbin/nologin nginx
4.编译安装Nginx
cd /opt
tar zxvf nginx-1.12.0.tar.gz -C /opt/
cd nginx-1.12.0/./configure \
--prefix/usr/local/nginx \ #指定nginx的安装路径
--usernginx \ #指定用户名
--groupnginx \ #指定组名
--with-http_stub_status_module #启用 http_stub_status_module 模块以支持状态统计make -j2 make install
make -j2 ##表示cpu有2核使用2个cpu同时一起编译make是将源代码翻译成二进制
make install ##表示将二进制文件放到指定的目录中
安装完成 5.想要使用nginx命令直接启动服务两种方式
ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/ #让系统识别nginx的操作命令
##做软连接创建二进制文件到PATH路径中
##一般是安装在/usr/local中就放到/usr/local下的/sbin下还有一种当时是在PATH环境变量中加入nginx程序的目录这种不常用 6.详解nginx的命令
nginx -t
nginx -v
nginx -V
nginx -s 信号 ##cat /usr/local/nginx/logs/nginx.pid 先查看nginx的pid
##停止nginx服务的三种方式
kill -3 nginx的pid号
kill -s QUIT nginx的pid号
killall -3 nginx
killall -s QUIT nginx
nginx -s quit kill -1 nginx的pid
kill -s HUP nginx的pid
killall -1 nginx
killall -s HUP nginx
nginx -s reload7.nginx版本编译安装平滑升级的方式
新版本升级
tar xf nginx-1.25.3.tar.gz
cd nginx-1.25.3/
./configure \
--prefix/usr/local/nginx \
--usernginx \
--groupnginx \
--with-http_stub_status_module \ ##加上状态收集模块
--with-http_ssl_module ##最新的版本需要加上ssl模块make
mv /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx_old ##将原来的程序进行备份
cp objs/nginx /usr/local/nginx/sbin/nginx ##将新编译好的二进制文件放到安装目录下
make upgrade #要保证当前 nginx 进程是通过 /usr/local/nginx/sbin/nginx 启动的而不是通过查找环境变量中那个 nginx 命令启动的
#或者先 killall nginx 再/usr/local/nginx/sbin/nginx 8.使用systemd管理的两种办法
方法一添加nginx系统服务可以通用centos5-7三个版本
先创建一个nginx脚本文件
vim /etc/init.d/nginx
#!/bin/bash
#chkconfig: - 99 20 ##这一步必须要有其中 - 表示为任何级别都不开启99为第99个程序启动20为第20个程序关闭
#description:Nginx Service Control Script ##脚本目的描述
COM/usr/local/nginx/sbin/nginx ##nginx启动的绝对路径
PID/usr/local/nginx/logs/nginx.pid ##nginx的pid号的文件
case $1 in
start)$COM
;;stop)kill -s QUIT $(cat $PID)
;;restart)$0 stop$0 start
;;reload)kill -s HUP $(cat $PID)
;;*)
echo Usage: $0 {start|stop|restart|reload}
exit 1esac
exit 0
chmod x /etc/init.d/nginx ##给脚本加上执行权限
chkconfig --add nginx ##添加为系统服务
chkconfig --list nginx ##查看运行级别中是否开机自启动
chkconfig --level 35 nginx on|off ##设置字符多用户和图形化界面可以开机自启动|关闭service nginx start ##启动
service nginx stop ##关闭命令与/etc/init.d/nginx脚本中相呼应 方法二使用systemd 进行管理
vim /lib/systemd/system/nginx.service
[Unit] ##服务说明
Descriptionnginx ##描述服务
Afternetwork.target ##依赖当依赖的服务启动的时候再启动自定义的服务
[Service] ##服务运行参数的设置
Typeforking ##表示后台运行使用启动类型应该同事指定PIDFile这样便于systemd能够追踪
PIDFile/usr/local/nginx/logs/nginx.pid ##指定pid的文件
ExecStart/usr/local/nginx/sbin/nginx ##服务启动的命令就是绝对路径启动的命令
ExecReload/bin/kill -s HUP $MAINPID ##加载
ExecStop/bin/kill -s QUIT $MAINPID ##关闭
PrivateTmptrue ##表示给服务分配独立的临时空间
[Install]
WantedBymulti-user.target ##服务安装的相关设置可设置多用户 chmod 754 /lib/systemd/system/nginx.service
systemctl start nginx.service
systemctl enable nginx.service 需要注意的是service启动和systemctl启动不能相互混用使用其一即可 总结nginx是一款可以轻量级体现在内存消耗少高性能体现在抗高并发 能够实现反向代理多台nginx服务的时候做客户端和服务端的请求转发并且可以做静态处理的web服务器。最牛的核心优势支持异步非阻塞处理请求使用的是epollI/O多路复用技术