RabbitMQ使用
技术前沿 Web技术

RabbitMQ使用

xiaole阅读(433)

本文将会讲解如何使用RabbitMQ实现延时重试和失败消息队列,实现可靠的消息消费,消费失败后,自动延时将消息重新投递,当达到一定的重试次数后,将消息投递到失败消息队列,等待人工介入处理。在这里我会带领大家一步一步的实现一个带有失败重试功能的发布订阅组件,使用该组件后可以非常简单的实现消息的发布订阅,在进行业务开发的时候,业务开发人员可以将主要精力放在业务逻辑实现上,而不需要花费时间去理解RabbitMQ的一些复杂概念。概要我们将会实现如下功能结合RabbitMQ的Topic模式和Work Qu...

nginx+lua-请求body过大导致get_post_args()无法获取到参数
技术前沿 Nginx

nginx+lua-请求body过大导致get_post_args()无法获取到参数

xiaole阅读(448)

本文描述 nginx + lua 解析 http 报文参数并计算文件md5的详细解决方法。其中包括解析http 报文参数,计算上传文件md5,并解决了当请求body 大于client_body_buffer_size导致ngx.req.get_post_args()无法获取到参数的问题。问题:request body 大于client_body_buffer_size,导致ngx.req.get_post_args()无法获取到参数。原因分析:当post请求body size大于client_b...

nginx-lua重置请求参数及常量
奇淫妙想 Nginx

nginx-lua重置请求参数及常量

xiaole阅读(876)

获取请求参数local strider = ngx.var.arg_strider local strider = ngx.req.get_uri_args["strider"]当请求uri中有多个同名参数时,ngx.var.arg_xx的做法是取第一个出现的值,ngx.req_get_uri_args["xx"]的做法是返回一个table,该table里存放了该参数的所有值重置参数local args = ngx.req.get_uri_args() args["...

Nginx限流
Nginx

Nginx限流

xiaole阅读(1535)

Nginx官方版本限制IP的连接和并发分别有两个模块:limit_req_zone 用来限制单位时间内的请求数,即速率限制,采用的漏桶算法 “leaky bucket”limit_req_conn 用来限制同一时间连接数,即并发限制其中limit_req_conn模块可以根据源IP限制单用户并发访问的连接数或连接到该服务的总并发连接数http{ #定义IP的session大小 limit_zone one $binary_remote_addr 20m; #定...

渗透工具nmap的使用方法
Web技术

渗透工具nmap的使用方法

xiaole阅读(595)

Nmap是一款网络扫描和主机检测的非常有用的工具。 Nmap是不局限于仅仅收集信息和枚举,同时可以用来作为一个漏洞探测器或安全扫描器。它可以适用于winodws,linux,mac等操作系统。Nmap是一款非常强大的实用工具,可用于: 检测活在网络上的主机(主机发现)检测主机上开放的端口(端口发现或枚举)检测到相应的端口(服务发现)的软件和版本检测操作系统,硬件地址,以及软件版本 获取远程主机的系统类型及开放端口nmap -sS -P0 -sV -O 这里的 ...

HTTP-Keep-Alive是什么?如何工作?
Web技术

HTTP-Keep-Alive是什么?如何工作?

xiaole阅读(569)

HTTP Keep-Alive在http早期,每个http请求都要求打开一个tpc socket连接,并且使用一次之后就断开这个tcp连接。 使用keep-alive可以改善这种状态,即在一次TCP连接中可以持续发送多份数据而不会断开连接。通过使用keep-alive机制,可以减少tcp连接建立次数,也意味着可以减少TIME_WAIT状态连接,以此提高性能和提高httpd服务器的吞吐率(更少的tcp连接意味着更少的系统内核调用,socket的accept()和close()调用)。 但是,k...

HA方案之MySQL半复制+MHA+Keepalived+Atlas+LVS
Mysql Web技术

HA方案之MySQL半复制+MHA+Keepalived+Atlas+LVS

xiaole阅读(929)

简介目前Mysql高可用的方案有好多,比如MMM,heartbeat+drbd,Cluster等,还有percona的Galera Cluster等。这些高可用软件各有优劣。在进行高可用方案选择时,主要是看业务还有对数据一致性方面的要求。本文探讨的是MHA这种方案。至于DAL层,也有很多方案,现在主流的一是在应用层写数据库路由,当然这个效率也是最快的,但是最大的缺陷就是运维难度大,技术难度也大,需要有强大的技术团队支持。第二个方案是proxy中间件,现在开源的中间件很多,比如TDDL、Cobar...

nginx的fastcgi_cache缓存
Nginx

nginx的fastcgi_cache缓存

xiaole阅读(959)

proxy_cache的作用是缓存后端服务器的内容,包括静态的和动态。另一文章fastcgi_cache的作用是缓存fastcgi生成的内容,很多情况是php生成的动态的内容。proxy_cache缓存减少了nginx与后端通信的次数,节省了传输时间和后端宽带。fastcgi_cache缓存减少了nginx与php的通信的次数,更减轻了php和数据库(mysql)的压力,这比用memcached之类的缓存要轻松得多。$uri 和  $request_uri结果可能不一样(譬如伪静态,需...

Tengine合并JS的时候提示400解决方法
Nginx

Tengine合并JS的时候提示400解决方法

xiaole阅读(1087)

Tengine合并CSS正常合并,但是合并JS的时候,部分服务器会提示400错误其实解决方法很简单,找到源码包中的,src/http/modules/ngx_http_concat_module.c 将里面的application/x-javascript更改为application/javascript再重新编译安装就能解决问题...

Nginx支持多域名ssl证书
Nginx

Nginx支持多域名ssl证书

xiaole阅读(1016)

详细过程: 升级更改完nginx配置文件以后,使用/usr/local/nginx/sbin/nginx  -t测试配置文件没有问题,就采用/usr/local/nginx/sbin/nginx  -s reload重新加载配置文件,输入新域名的https访问竟然出现错误证书的提示,左键点击证书错误,选择查看证书,发现用的是另外一个域名的证书。反复检查后错误依旧。心中转念一想:是不是nginx只支持一个证书?带着这个问题,在baidu和google上搜索了一下,还真的是这个问...