1 I/O的概念I/O在计算机中指Input/Output,也就是输入和输出。由于程序和运行时数据是在内存中驻留,由CPU这个超快的计算核心来执行,涉及到数据交换的地方,通常是磁盘、网络等,就需要I/O接口。举个例子:比如你打开浏览器,访问腾讯首页,浏览器这个程序就需要通过网络I/O获取腾讯的网页。浏览器首先会发送数据给腾讯服务器,告诉它我想要首页的HTML,这个动作是往外发数据,叫Output,
转载
2024-03-17 08:59:09
710阅读
前言HTTP 中get、put、post的使用也是蛮多的,有时会突然觉得,他们之间的区别是啥?为啥选择使用呢?介绍GET请求会向数据库发索取数据的请求,从而来获取信息,该请求就像数据库的select操作一样,只是用来查询一下数据,不会修改、增加数据,不会影响资源的内容,即该请求不会产生副作用。无论进行多少次操作,结果都是一样的。PUT请求是向服务器端发送数据的,从而改变信息,该请求就像数据库的up
转载
2024-05-29 07:29:04
343阅读
Nginx 使用一个多进程模型来对外提供服务,其中一个 master 进程,多个 worker 进程。master 进程负责管理 Nginx 本身和其他 worker 进程。所有实际上的业务处理逻辑都在 worker 进程。worker 进程中有一个函数,执行无限循环,不断处理收到的来自客户端的请求,并进行处理,直到整个 Nginx 服务被停止。worker 进程中,ngx_worker
转载
2024-02-27 10:13:46
251阅读
这里我们详细来看ngx_linux_sendfile_chain方法,这个函数也就是nginx的发送函数。
一般来说,我们最终都会调用这个函数来发送最终的数据,因此我们来着重分析这个函数,这里主要就是对buf的一些参数的理解。
来看函数原型:
ngx_chain_t *
ngx_linux_sendfile_chain(ngx_connection_
转载
2024-03-25 15:14:42
164阅读
简单请求和复杂请求的区别简单请求:get,postimg的src、script的js可以发起get请求,获取数据(类似于对数据库的select操作),post提交数据(类似于对数据库的insert操作),请求可以发起,而服务端可以进行拒绝,浏览器认为这是安全的。复杂请求:put,deleteput请求,更新数据(类似于对数据库的update操作),delete请求,删除数据(类似于对数据库的del
转载
2024-09-05 22:56:15
52阅读
前几天看到一篇博客,提到php所在服务器在大并发情况下,频繁创建TCP短连接,而其所在服务器的2MSL时间过长,导致没有端口可用,系统无法创建TCP socket,而大量报错。博主在后面给的解决方案是减少2MSL的时间,尽快清除TIME_WAIT状态的TCP连接,回收端口。同时,文章结尾写了不用长连接的理由,但这真的是最好的解决办法吗?有其他办法可以更好的做法吗?类似经历 之所以多这篇文章兴趣这么
也是迁移业务遇到的,以前运维那哥们用的集成LAMP环境,现在迁移需要将Apache去掉,用php-cgi的模式来执行php,目前主流一般都是用php-fpm来管理php。好了,前期就是将数据同步过来,然后再修改nginx配置,安装php-fpm,并启动php-fpm,会发现本地侦听9000端口,这里主要说下nginx配置:原nginx配置,执行php方法:看着这种配置比较蛋疼,然后换成cgi的模式
转载
2024-06-05 08:44:46
332阅读
504 Gateway Time-out问题常见于使用nginx作为web server的服务器的网站我遇到这个问题是在升级discuz论坛的时候遇到的一般看来, 这种情况可能是由于nginx默认的fastcgi进程响应的缓冲区太小造成的, 这将导致fastcgi进程被挂起, 如果你的fastcgi服务对这个挂起处理的不好, 那么最后就极有可能导致504 Gateway Time-out 现在的网
nginx可以通过ngx_http_limit_conn_module和ngx_http_limit_req_module配置来限制ip在同一时间段的访问次数.ngx_http_limit_conn_module:该模块用于限制每个定义的密钥的连接数,特别是单个IP地址的连接数.使用limit_conn_zone和limit_conn指令.ngx_http_limit_req_module:用于限
转载
2024-02-16 09:19:55
286阅读
nginx 实现限流控制(防攻击)故障回顾2022年8月5日22:06:00:数据库cpu开始升高,直至打满! 2022年8月5日22:06:00:java 服务cpu开始升高,直至打满! 2022年8月5日22:07:00:钉钉群内出现告警 2022年8月5日22:07:05:服务自动重启 2022年8月5日22:10:00:开始排查原因 2022年8月5日22:20:00:排查结果:连接数升高
Http发送get、post、delete、put请求1、GET请求会向数据库发索取数据的请求,从而来获取信息,该请求就像数据库的select操作一样,只是用来查询一下数据,不会修改、增加数据,不会影响资源的内容,即该请求不会产生副作用。无论进行多少次操作,结果都是一样的。2、与GET不同的是,PUT请求是向服务器端发送数据的,从而改变信息,该请求就像数据库的update操作一样,用来修改数据的内
转载
2024-07-07 05:10:32
28阅读
1,首先看看nginx.conf文件的一些重要参数,可以给句错误代号调节配置文件中的相关配置.每个参数的意思:client_max_body_size限制请求体的大小,若超过所设定的大小,返回413错误。client_header_timeout读取请求头的超时时间,若超过所设定的大小,返回408错误。client_body_timeout读取请求实体的超时时间,若超过所设定的大小,返回413错误
转载
2024-09-17 12:32:52
300阅读
nginx使用一个多进程模型来对外提供服务,其中一个master进程,多个worker进程。master进程负责管理nginx本身和其他worker进程。 所有实际上的业务处理逻辑都在worker进程。worker进程中有一个函数,执行无限循环,不断处理收到的来自客户端的请求,并进行处理,直到整个nginx服务被停止。 worker进程中,ngx_worker_process_cycle(
转载
2024-03-24 16:30:07
123阅读
一 ngx_http_rewrite_module模块1)Nginx服务器利用'ngx_http_rewrite_module 模块'解析和处理rewrite请求,此功能依靠 'PCRE(perl compatible regularexpression)',因此编译之前要安装PCRE库
2)rewrite是nginx服务器的重要功能之一,用于实现'URL的重
转载
2024-05-05 19:50:40
1006阅读
安全问题,建议用nobody,不要用root.
user root;
worker数和服务器的cpu数相等是最为适宜
worker_processes 1;
error_log path(存放路径) level(日志等级)path表示日志路径,level表示日志等级,
具体如下:[ debug | info | notice | warn | error | crit ]
从左至右,日志详
转载
2024-06-23 09:23:05
123阅读
Nginx的配置块嵌套main
http{
upstream {...}
split_clients {...}
map {...}
geo {...}
server {
if () {...}
location {
limit_except {...}
}
locati
转载
2024-02-20 11:10:37
124阅读
nginx配置HTTPS 说到配置https就必须要先分别了解一下http和httpshttp和https区别http是超文本传输协议,信息是明文传输,https则是具有安全性的ssl加密传输协议http的连接很简单,是无状态的;HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,比http协议安全使用https需要先申请证书http默认端口是80,https默认端口是
今天看到了一片好文,工具书:
一般来说nginx配置文件中对优化比较有作用的为以下几项:
worker_processes 8;nginx进程数,建议按照cpu数目来指定,一般为它的倍数。
worker_cpu_affinity 00000001 00000010 00000100 00001000 00010000 00100000 01000000 10000000;
为每个进程分
安装下载地址:http://nginx.org/en/docs/windows.html 我下载的是1. 14.2 如图
配置介绍目录介绍 其他目录不用管它,重点是config/nginx.config 文件配置nginx.config 结构#main全局配置{
#events模块
#http模块{
转载
2024-03-28 07:17:33
259阅读
规则语法 !~和!~*分别为区分大小写不匹配及不区分大小写不匹配 的正则, 但是是用于条件判断的时候(即if语句) if ($host !~* "^www.") { # ... } 匹配简单来说:优先匹配 =精确匹配, 若未匹配到则转下一步骤依照最大前缀匹配规则, 先匹配普通规则(空 , ^~)若最终匹配到 ^~, 则使用若匹配到 空 或 未匹配到, 则转下一步骤(当前匹配结果暂时
转载
2024-06-26 18:20:55
153阅读