一款高性能、轻量级Web服务软件
- 稳定性高
- 系统资源消耗低
- 对HTTP并发连接的处理能力强
单台物理服务器可支持3w-5w个并发请求
Nginx相对于Apache的优点:
轻量级,同样是 web 服务,比Apache 占用更少的内存及资源,高并发,Nginx 处理请求是异步非塞的(效率高),而Apache 则是阻塞型的,在高并发下Nginx 能保持低资源低消耗高性能;高度模块化的设计
编写模块相对简单;社区活跃,各种高性能模块出品迅速
Apache 相对于Nginx 的优点:
rewrite,比Nginx 的rewrite强大; 模块超多,基本想到的都可以找到; 少bug,Nginx 的bug 相对较多; 超稳定
存在就是理由,一般来说,需要性能的web 服务,用Nginx 。
如果不需要性能只求稳定,那就Apache。
Nginx处理动态请求是弱项,一般动态请求要Apache去做,Nginx只适处理静态网页或反向代理。
Nginx两个进程:工作进程worker process 处理用户连接请求的工作进程;(可修改生成多个子进程)
主进程:master process启动读取进程文件,管理工作进程
kill -3 $(cat /usr/local/nginx/logs/nginx.pid)结束nginx
kill -s QUIT (cat /usr/local/nginx/logs/nginx.pid)结束nginx
killall -3 ngnix
nginx -v查看版本号 -V 显示版本号和配置参数
chkconfig – 在所有的运行级别都不做开机自启
方法一:
#!/bin/bash
#chkconfig: 35 23 42
#desc: this is nginx service control script
NGINX_CMD=”/usr/local/nginx/sbin/nginx”
NGINX_PID=” /usr/local/nginx/logs/nginx.pid”
case $1 in
start)
$NGINX_CMD
;;
stop)
kill -3 $(cat $NGINX_PID)
;;
restart)
$0 stop
$0 start
;;
reload)
kill -1 $(cat $NGINX_PID)
;;
status)
if ss -lntp | grep nginx &>/dev/null
then
echo ‘nginx is running!!! ‘
else
echo ‘nginx is not running!!!’
fi
;;
*)
echo ‘Usage: $0 {start | stop | reestart | reload |status}’
exit 1
esac
exit 0
方法二:
vim /lib/systemd/system/nginx.service
[Unit]
Description=nginx
After=network.target
[Service]
Type=forking
PIDFile=/usr/local/nginx/logs/nginx.pid
ExecStart=/usr/local/nginx/sbin/nginx
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s QUIT $MAINPID
PrivateTmp=true
[Install]
WantedBy=multi-user.target
cat nginx.conf | grep -v “^$” | grep -v “^#” | egrep -v “^\s+#”
优化:cat nginx.conf | egrep -v “^$|^\s*#”
Nginx服务得住配置文件nginx.conf:
全局块:全局配置,对全局生效;
event块:配置影响Nginx服务器与用户的网络连接;
http块:配置代理,缓存,日志,定义等绝大多数功能和第三方模块配置;
server块:配置虚拟主机的相关参数,一个http块中可以有多个server块;(一个server块就是一个虚拟主机)
location块:用于配置匹配的url;
upstream:配置后端服务器具体地址,负载均衡配置不可或缺的部分。
ulimit -a 查看当前最大打开文件数
ulimit -n 设置临时最大打开文件数
vim /etc/security/limits.conf #永久修改最大打开文件数
epoll:提高I/O使用率,能显著减少程序在大量并发连接中只有少量活跃的情况下的系统CPU利用率。