nginx
1.nginx
1.nginx应用场景
http服务器? ? Nginx是一个http服务可以独立提供http服务。可以做网页静态服务器。
虚拟主机? ? ? 可以实现在一台服务器虚拟出多个网站,例如个人网站使用的虚拟机。
反向代理,负载均衡? ? ?当网站的访问量达到一定程度后,单台服务器不能满足用户的请求时,需要用多台服务器集群可以使用nginx做反向代理。并且多台服务器可以平均分担负载,不会应为某台服务器负载高宕机而某台服务器闲置的情况。
nginz? ?中也可以配置安全管理、比如可以使用Nginx搭建API接口网关,对每个接口服务进行拦截
2.nginx优点
跨平台、配置简单
非阻塞、高并发连接:处理 2-3 万并发连接数,官方监测能支持 5 万并发
内存消耗小: 开启 10 个 Nginx 才占 150M 内存。
成本低廉,且开源。
稳定性高,宕机的概率非常小。
内置的健康检查功能: 如果有一个服务器宕机,会做一个健康检查,再发送的请求就不会发送到宕机的服务器了。重新将请求提交到其他的节点上
3.nginx和apache的区别
轻量级,同样起web服务,比apache占用更少的内存和资源
抗并发,nginx 处理请求是并步非阻塞的,而apache是阻塞性的,在高并发下nginx能保持滴资源,低消耗,高性能
高度模块化的设计,编写模块相对简单
最核心的区别在于apache是同步多进程模型,一个连接对应一个程序,nginx是异步的,多连接可以对应一个进程
4.Nginx服务的主配置文件
nginx.conf
1、全局块:全局配置,对全局生效;
2、events块:配置影响 Nginx 服务器与用户的网络连接;
3、http块:配置代理,缓存,日志定义等绝大多数功能和第三方模块的配置;
4、server块:配置虚拟主机的相关参数,一个 http 块中可以有多个 server 块;
5、location块:用于配置匹配的 uri ;
6、upstream:配置后端服务器具体地址,负载均衡配置不可或缺的部分。
2.nginx所需环境
1.编译安装nginx服务
1.将nginx文件安装到/opt下,关闭安全措施
systemctl stop firewalld
setenforce 0
2.安装所需依赖包
yum -y install pcre-devel zlib-devel openssl-devel gcc gcc-c++ make
3.创建运行用户、组
useradd -M -s /sbin/nologin nginx
4.编译安装nginx
cd /opt
tar zxvf nginx-1.12.0.tar.gz -C /opt/
[root@localhost nginx-1.24.0]# ./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_stub_status_module
指定nginx的安装路径
指定用户名
指定组名
启用 http_stub_status_module 模块以支持状态统计
?
?
make && make install
ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/
让系统识别nginx的操作命令
5.检查、启动、重启、停止 nginx服务
nginx -t ? 检查配置文件是否配置正确?
nginx ? 启动?
? ??? ??? ?
?? ??? ??? ??? ??? ??? ?
cat /usr/local/nginx/logs/nginx.pid?? ??? ?先查看nginx的PID号
停止kill -3 <PID号>
kill -s QUIT <PID号>
killall -3 nginx
killall -s QUIT nginx
重载
kill -1 <PID号>
kill -s HUP <PID号>
killall -1 nginx
killall -s HUP nginx
日志分割,重新打开日志文件
kill -USR1 <PID号>平滑升级
kill -USR2 <PID号>
新版本升级:
tar -zxvf nginx-1.xx.xx.tar.gz?
cd nginx-1.xx.xx
./configure \
--prefix=/usr/local/nginx \
--user=nginx \
--group=nginx \
--with-http_stub_status_module
--with-http_ssl_module
6.添加nginx方法
方法一 脚本
vim /etc/init.d/nginx
#!/bin/bash
#chkconfig: - 99 20
#description:Nginx Service Control Script
COM="/usr/local/nginx/sbin/nginx"
PID="/usr/local/nginx/logs/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 1
esac
exit 0
chmod +x /etc/init.d/nginx?
添加执行权限
systemctl start nginx?
启动服务
systemctl status nginx查看服务状态
方法二? 修改配置
vim /lib/systemd/system/nginx.service
[Unit]
Description=nginx 描述服务
After=network.target 依赖,当依赖的服务启动之后再启动自定义的服务
[Service] 服务运行参数的设置
Type=forking 是后台运行的形式,使用此启动类型应同时指定PIDFile=,以便systemd能够跟踪服务的主进程
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
vim /lib/systemd/system/nginx.service
chmod 754 /lib/systemd/system/nginx.service? ?
赋权
systemctl start nginx.service
systemctl enable nginx.service
?
3.实验
访问状态统计配置
/usr/local/nginx/sbin/nginx -V
查看已安装的 Nginx 是否包含 HTTP_STUB_STATUS 模块
cat /opt/nginx-1.12.0/auto/options | grep YES
可查看 nginx 已安装的所有模块
修改 nginx.conf 配置文件,指定访问位置并添加 stub_status 配置
cd /usr/local/nginx/conf
cp nginx.conf nginx.conf.bak
vim /usr/local/nginx/conf/nginx.conf##添加 stub_status 配置##
?? ??? ?location /status { ?? ??? ??? ??? ??? ?#访问位置为/status
?? ??? ??? ?stub_status on; ?? ??? ??? ??? ?#打开状态统计功能
?? ??? ??? ?access_log off; ?? ??? ??? ??? ?#关闭此位置的日志记录
systemctl restart nginx
重启服务,访问测试
nginx -t?查看nginx服务状态
浏览器访问 http://192.168.80.10/status
Active connections:表示当前的活动连接数,即当前与 Nginx 服务器建立的连接数。
server accepts handled requests :表示已经处理的连接信息
三个数字依次表示服务器已接收的连接数;服务器成功处理的连接数;服务器累计处理的总请求数(在保持连接模式下,请求数量可能会大于连接数量)
Reading:表示当前正在从客户端读取数据的连接数。
Writing:表示当前正在向客户端写入数据的连接数。
Waiting:表示当前空闲并等待请求的连接数。
可 curl -Ls http://192.168.17.130/status 结合 awk与if 语句进行性能监控
?基于授权的访问控制
生成用户密码认证文件
yum install -y httpd-tools? 安装服务
htpasswd -c /usr/local/nginx/passwd.db zhangsan? 设置用户和密码
chown nginx /usr/local/nginx/passwd.db??
chmod 400 /usr/local/nginx/passwd.db
vim /usr/local/nginx/conf/nginx.conf
修改主配置文件相对应目录,添加认证配置项
auth_basic "secret";?? ??? ??? ??? ?#设置密码提示框文字信息
重启服务,访问测试
nginx -t
systemctl restart nginx浏览器访问 http://192.168.17.130
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!