单线程应用
稳定性高
系统资源消耗低 线程切换消耗小
对HTTP并发连接处理能力高
单台服务器可支持2w个并发请求
nginx与apache区别
Nginx相对于Apache的优点:
轻量级,同样是 web 服务,比Apache 占用更少的内存及资源,高并发,Nginx 处理请求是异步非塞的,而Apache 则是阻塞型的,在高并发下Nginx 能保持低资源低消耗高性能;高度模块化的设计
编写模块相对简单;社区活跃,各种高性能模块出品迅速
Apache 相对于Nginx 的优点:
rewrite,比Nginx 的rewrite强大; 模块超多,基本想到的都可以找到; 少bug,Nginx 的bug 相对较多; 超稳定存在就是理由,一般来说,需要性能的web 服务,用Nginx 。如果不需要性能只求稳定,那就Apache。Nginx处理动态请求是弱项,一般动态请求要Apache去做,Nginx只适处理静态网页或反向代理。
Apache 阻塞需要一个一个处理响应
nginx 异步非阻塞同时接收,再回复(基于事件)
make j2(两个cpu)
ngix有两个进程
master process进程
管理worker 读取配置文件
和worker process进程
处理用户连接请求(可修改多个工作子进程)
停止nginx
启动路径
/usr/local/nginx/sbin/nginx
kill -3 $(cat /usr/local/nginx/logs/nginx.pid)
killall -3 nginx
按进程名杀
pkill nginx 关键词杀(可能会误杀)
pid号 cat /usr/local/nginx/logs/nginx.pid
kill -1重载 不中断
nginx -v产看当前版本号
nginx -V产看安装时的配置
查看状态 netstat ss
echo $? 0启动
升级
make j2后在/objs中生成新的nginx
make upgrade平滑升级
配置nginx快捷服务
方法一
#!/bin/bash
#chkconfig: 35 20 99
#desc: this is nginx service control script
NGINX_CMD="/usr/local/nginx/sbin/nginx"
NGINX_PID=" /usr/local/nginx/logs/nginx.pid"
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 runing!'
else
echo 'nginx is not runing'
fi
;;
*)
echo "Usage: $0 {start|stop|restart|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
主配置文件nginx.conf
events块 一个工作进程的连接数(I/o时间配置)
http块 配置代理缓存,日志
server块 虚拟主机相关参数 一个http块中可以有多个server块
location块:用于配置匹配的url;
upstream 配置后端服务器具体地址,负载均衡配置不可或缺
worker_processes auto;#工作进程数量,一般设置为cpu核数
ulimit -a 查看文件最多打开多少个文件
ulimit -n 15000 临时需改进程打开文件个数
永久vim /etc/security/limits.conf
item向上找
日志文件监视 http
日志格式设定
remote_addr上一个节点的地址
http_x_forworded_for 路径所有的地址
http_referer 记录从哪个页面连接访问过来的
http_user_agent 纪录客户的刘丹信息
反向代理服务器,网关服务器
vim access.log
cd /usr/local/nginx/conf/nginx.conf
location /abc {
root /var/www/html
}
http://www.accp.com/abc/test.html --> /var/www/html/abc/test.html
localtion /abc {
alias /var/www/html
}
http://www.accp.com/abc/test.html --> /var/www/html/test.html
localtion
nginx -t
systemctl reload nginx
server accepts handled requests
curl -Ls 192.168.232.7/state | grep 'Active connections' | awk '{print $3}'
后台运行监控
常链接为零
ssh 日志文件
cat /var/log/secure
多次被爆破
ssh password
vim /etc/hosts.deny黑名单
nginx 日志
cd /usr/local/nginx/logs/access.log
用户交互
which htpasswd
/usr/local/nginx
cat userlist
htpasswd ./userlist fengchu
chown niginx userlist
chmod 400 userlist
vim /conf/nginx.conf
nginx -t
systemctl restart nginx
黑白名单
cd /usr/local/nginx/logs/access.log
百名单
allow 192.168.232.105
deny all
自定义端口号要http://
基于域名的虚拟主机配置实验
vim /usr/local/nginx/conf/nginx.conf
重启服务即可