赞
踩
目录
Nginx概述
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及用户的访问控制
支持速率限制及并发数限制
重新配置和在线升级而无须中断客户的工作进程
反向代理:
在服务端 配置,客户端 访问服务器A ,服务器A 为代理服务器 ,将客户服务再转发到服务器B
作用:缓存,将服务器的响应缓存在自己的内存中,减少服务器压力;
负载均衡,将用户请求分配给多个服务器;
访问控制;
正向代理:
在客户端 配置,配置完了再去访问具体服务,即代理服务器 代理了客户端 ,再去和目标服务器 进行交互
作用:提高访问速度
隐藏客户端真实IP地址
负载均衡:分摊到多个操作单元上进行执行,例如Web服务器、FTP服务器、企业关键应用服务器和其它关键任务服务器等,从而共同完成工作任务
nginx相对于apache的优点∶
轻量级,同样起web服务,比Apache占用更少的内存及资源。
高并发,Nginx处理请求是异步非阻塞的,而Apache是阻塞型的在高并发下,Nginx能保持低资源低消耗高性能。
高度模块化的设计。
编写模块相对简。
社区活跃,各种高性能模块出品速度
apache相对于nginx的优点∶
rewrite比nginx的rewrite强大
模块多,基本想到的都可以找到
少bug, Nginx的bug相对较超稳定
安装依赖包
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/
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 命令支持向其发送信号,实现不同功能
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;' | 前台运行命令 |
将旧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
添加新模块
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。