HTTP服务器Nginx服务介绍续
HTTP服务器Nginx服务
什么是Nginx
在此之前也介绍过相关的内容与安装过程,介于实际生产运维环境中使用之多,还是有必要详细了解和理解它的一些强大的功能与特性。
Nginx作为一个轻量级的HTTP服务器,相比Apache优势也是比较明显的,在性能上它占用资源少,能支持更高更多的并发连接,从而达到提高访问效率;在功能上它是一款非常优秀的代理服务器与负载均衡服务器;在安装配置上它安装,配置都比较简单
Nginx的优势简介:
经常在运维面试中,面试官会问到,你们用什么HTTP服务器啊?为什么用它??
1、作为WEB服务器而言,Nginx处理静态文件的效率比较高
2、作为代理服务器而言,Nginx可以实现无缓存的反向代理加速来提高WEB站点的运行速度,提高用户访问的体验
3、作为负载均衡服务器而言,支持的应用较多,同时也支持容错功能,自带算法进行负载均衡调度
4、性能方面而言,采用内核poll模型,支持更多的并发连接,官方显示最大可支持50000个并发连接的请求响应,但占用资源很少且非常稳定
Nginx日常配置优化
1、日志切割
由于Nginx没有Apache服务的cronolog日志切割功能,所以需要进行相关优化处理,可以编写脚本来自动切割日志文件
#!/bin/sh
logpath="/nginx/logpath"
nginxlogs="/var/log/nginx/"
mkdir -p $logpath/$(date +%Y)
mv $nginxlogs/access.log $logpath/$(date +%Y)/access_$(date +F).log
mv $nginxlogs/error.log $logpath/$(date +%Y)/access_$(date +F).log
kill -USR1 `cat /var/log/nginx/nginx.pid`
##通过USR1信号来控制进程,从而重新生成一个新的日志文件
nginx对进程的控制功能非常强,可以通过信号指令来控制进程,常用信号如下
QUIT 处理完当前请求后关闭进程
HUP 重新加载配置,不会中断用户的访问请求
USR1 用于切割日志
USR2 用于平滑升级可执行程序
最后将脚本执行命令加入到定时任务来实现自动切割日志
2、nginx中FastCGI参数优化
提高nginx环境下PHP的运行效率,可以将下面的配置加入到主配置文件中
fastcgi_cache_path /application/nginx/fastcgi_cache_levels=1:2 keys_zone=TEST:10m inactive=5m;
fastcgi_connect_timeout 300;
fastcgi_send_timeout 300;
fastcgi_read_timeout 300;
fastcgi_buffer_size 64k;
fastcgi_buffers 4 64k;
fastcgi_busy_buffers_size 128k;
fastcgi_cache TEST;
fastcgi_cache_valid 200 302 1h;
fastcgi_cache_valid 3011d;
fastcgi_cache_valid any 1m;
##应答缓存时间
3、nginx的HTTPgzip模块配置
[root@centos7 ~]# /usr/local/nginx/sbin/nginx -V
nginx version: nginx/1.12.0
built by gcc 4.8.5 20150623 (Red Hat 4.8.5-11) (GCC)
built with OpenSSL 1.0.1e-fips 11 Feb 2013
TLS SNI support enabled
configure arguments: --with-http_stub_status_module --with-http_gzip_static_module --with-http_ssl_module --prefix=/usr/local/nginx
可以看出在编译时已加上此模块,因此只需要在配置文件里进行配置即可
gzip on;
gzip_min_length 1k;
gzip_buffers 4 16k;
gzip_http_version 1.1;
gzip_comp_level 2;
gzip_types text/plain application/x-javascript text/css application/xml;
gzip_vary on;
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 【DIY数字仪表】RT-Thread移植touchgfx使用sd卡升级固件和图片资源(4)
- Transformers中的Beam Search高效实现
- 多边形裁剪图片升级啦!Cocos Creator !
- 使用curl进行服务器测试
- 打卡群刷题总结0805——不同的二叉搜索树
- 利用STS临时密钥服务快速搭建直传页面的实践
- Clickhouse在大数据分析平台-留存分析上的应用
- Rancher 高可用部署
- 为什么Web端登录需要验证码?
- 原创分享 TiDB 的列式存储引擎是如何实现的?
- Qt音视频开发5-vlc事件订阅
- matlab中使用VMD(变分模态分解)
- TKE中挂载文件到CFS子目录
- Nginx Ingress on TKE 部署最佳实践
- 腾讯地图点聚合开发-实现地图找房功能