一个高性能的HTTP和反向代理服务器;
一个IMAP/POP3/SMTP代理服务器;
由lgor Sysoev为俄罗斯访问量第二的Rambler.ru站点开发;
源代码以类BSD许可证的形式发布;
以稳定性、丰富的功能集、示例配置文件和低系统资源的消耗而闻名。
2. 为什么选择Nginx
Nginx是一个安装非常的简单,配置文件非常简洁,Bug非常少的服务器。
每个worker的线程可以把一个cpu的性能发挥到极致。所以worker数和服务器的cpu数相等是最为适宜的。设少了会浪费cpu,设多了会造成cpu频繁切换上下文带来的损耗。
2. 模块分类
load-balancer---负载均衡模块。
./configure --prefix=/data/nginx --with-http_realip_module -
-with-http_sub_module --with-http_flv_module --with-
http_dav_module --with-http_gzip_static_module --with-
http_stub_status_module --with-http_addition_module --with-
http_ssl_module
2. 模块化
该模块是一个过滤器,通过将一个指定的字符串替换为另一个字符串来修改响应。
启用ngx_http_flv_module支持(提供寻求内存使用基于时间的偏移量文件)。
启用ngx_http_dav_module支持(增加PUT,DELETE,MKCOL:创建集合,COPY和MOVE方法)。
在线实时压缩输出数据流。
用于日常nginx运行状态监控,如:当前活动连接数,请求、响应、空闲等连接数。
启用ngx_http_addition_module支持(作为一个输出过滤器,支持不完全缓冲,分部分响应请求)。
启用ngx_http_ssl_module支持(使支持https请求,需已安装openssl)。
启用ipv6支持。
#error_log logs/error.log;
#error_log logs/error.log notice;
error_log logs/error.log info
2. events 模块
Events {
use epoll; #Nginx事件驱动器模型:linux采用epoll类型, kqueue一般用于FreeBSD系统
worker_connections 8192; #Nginx每个进程的最大连接数,即接收前端的最大请求数
}
http {
include mime.types; #文件扩展名与文件类型映射表
default_type application/octet-stream; #定义nginx能识别的网络资源类型,默认为text/plain
log_format main $remote_addr|$remote_user|[$time_local]|"$request"|
$status|$body_bytes_sent|"$http_referer"|
"$http_user_agent"|"$http_x_forwarded_for"|
‘$upstream_addr|$upstream_response_time|$request_time’; #设置输出日志格式,各参数之间采用竖线隔离,方便后期对日志检索,设置为main类型
access_log logs/access.log main; #采用main类型来记录access日志
server_tokens off; #隐藏nginx的版本信息
sendfile on; #开启高效文件传输模式
keepalive_timeout 65; # http连接超时时间,经观察文件上传一般在60s内完成
gzip on; #开启文件压缩,大幅提高页面加载速度
}
server {
listen 8003;
#虚拟主机IPV4服务端口
listen [::]:8003 ;
#虚拟主机IPV6服务端口
server_name 10.113.158.219;
#虚拟主机名称
server_name [2409:8062:0804::0:3:0:0066];
#虚拟主机对应IPV6名称
location /iotportal {
#表示匹配访问的目录
proxy_buffer_size 256k;
#代理缓冲区大小
proxy_buffers 32 64k;
#代理缓冲区数量
proxy_busy_buffers_size 256k;
#同时传输到客户端的buffer数量
#避免写入磁盘
proxy_connect_timeout 120;
# nginx连接到后端服务器的连接超时时间
proxy_send_timeout 120;
#发送请求给upstream服务器的超时时间
proxy_read_timeout 240;
#从后端服务器读超时时间
proxy_pass http://iotportal;
#被代理服务器的地址,包含传输协议、主机名称或IP地址、端口号等要素
proxy_set_header Proxy-Client-IP
$remote_addr;
#代理服务器客户端地址
proxy_set_header Host
$host:$server_port;
#转发服务器地址及端口
}
location /api {…….}
location /dist {…….}
}
$remote_addr 客户端地址 211.28.65.253
$remote_user 客户端用户名称 --
$time_local 访问时间和时区 18/Jul/2012:17:00:01 +0800
$request 请求的URI和HTTP协议 "GET /article-10000.html HTTP/1.1"
$http_host 请求地址,即浏览器中你输入的地址(IP或域名) www.wang.com 218.205.252.13
$status HTTP请求状态 200
$upstream_status upstream状态 200
$body_bytes_sent 发送给客户端文件内容大小 1547
$http_referer url跳转来源 http://218.205.252.13:8003/iotportal/frm/template/cs
s/template-iot.css
$http_user_agent 用户终端浏览器等信息
例如:浏览器、手机客户端等 "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; SV1; GTB7.0; .NET4.0C;
$http_x_forwarded_for 当前端有代理服务器时
$upstream_addr 后台upstream的地址,即真正提供服务的主机地址 218.205.252.13:8003
$request_time 整个请求的总时间 0.031
1. remote_addr字段统计分析
cat access.2020-10-27.log |grep -v "200" |awk -F | {print $5,$10} | sort | uniq -c |sort -n -r
分析结果:
48 499 10.113.158.216:28191
46 499 10.113.158.217:28191
6 404 10.113.158.217:28191
3 404 10.113.158.216:28191
2 500 10.113.158.216:28191
2 404 -
2 403 -
1
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/129338.html
摘要:前言抛开那些强大的功能,今天我们来部署下本地的开发环境。提升开发效率和质量是每位程序员必备的技能。这并不是一个非常认真的操作,请勿使用到生产环境。 showImg(https://segmentfault.com/img/bVbg72t?w=800&h=528); 前言 抛开Docker那些强大的功能,今天我们来部署下本地的开发环境。并写上几个脚本来提高开发效率。 本章以MacOs系统...
摘要:前言抛开那些强大的功能,今天我们来部署下本地的开发环境。提升开发效率和质量是每位程序员必备的技能。这并不是一个非常认真的操作,请勿使用到生产环境。 showImg(https://segmentfault.com/img/bVbg72t?w=800&h=528); 前言 抛开Docker那些强大的功能,今天我们来部署下本地的开发环境。并写上几个脚本来提高开发效率。 本章以MacOs系统...
摘要:各种日常命令一点一点学习总结生成中选出一列里不重复的值列名表名后台执行一个脚本,并且写到文件中在配置的路由规则,的配置查看状态打包为全系统设定为单用户设定下,略有不同 各种日常命令一点一点学习总结 Git生成KEY ssh-keygen -t rsa -C youremail@example.com MySQL中选出一列里不重复的值 SELECT DISTINCT 列名 FROM...
摘要:各种日常命令一点一点学习总结生成中选出一列里不重复的值列名表名后台执行一个脚本,并且写到文件中在配置的路由规则,的配置查看状态打包为全系统设定为单用户设定下,略有不同 各种日常命令一点一点学习总结 Git生成KEY ssh-keygen -t rsa -C youremail@example.com MySQL中选出一列里不重复的值 SELECT DISTINCT 列名 FROM...
阅读 1346·2023-01-11 13:20
阅读 1684·2023-01-11 13:20
阅读 1132·2023-01-11 13:20
阅读 1858·2023-01-11 13:20
阅读 4100·2023-01-11 13:20
阅读 2704·2023-01-11 13:20
阅读 1385·2023-01-11 13:20
阅读 3597·2023-01-11 13:20