缓存的使用,开启gzip以及各种header的操作
Nginx里Header修改 修改Nginx默认Header 修改普通请求的HeaderNginx内置的模块暂时仅支持修改响应头,使用add_header。其中: add_header 来自内置模块ngx_http_headers_module,用于设置response header。参考:http://www.cnblogs.com/linxiong945/p/4174262.html 如果需要设置普通请求的request header,则需要单独安装headers-more-nginx-module模块。该模块提供了more_set_headers,more_set_input_headers分别用于设置请求、响应头。 示例: 12345678910location ~ .*\.(php|php5)?$ { fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param LOG_ID $request_id; more_set_input_headers "...
整理使用 Nginx 时碰到的问题
NET::ERR_INCOMPLETE_CHUNKED_ENCODING 200 (OK)解决办法:在nginx中的对应的反向代理配置如下内容,即可解决: 1234proxy_buffer_size 1024k; #设置代理服务器(nginx)保存用户头信息的缓冲区大小proxy_buffers 16 1024k; #proxy_buffers缓冲区,网页平均在32k以下的设置proxy_busy_buffers_size 2048k; #高负荷下缓冲大小(proxy_buffers*2)proxy_temp_file_write_size 2048k; #设定缓存文件夹大小,大于这个值,将从upstream服务器传 错误原因分析:1.nginx配置缓存区设置过小2.nginx的临时目录(/proxy_temp)过大或没有权限写入缓存文件3.磁盘空间不足 经过验证是第一种原因(nginx配置缓冲区设置过小) 问:nginx的缓冲区作用是什么? 答:如果客户端到nginx速度快,nginx到服务器速度慢,没有缓冲区,一点点数据量就直接发到客户端,十分浪费性能。有了缓冲区...
OpenResty Lua API — 共享内存区域
摘自:http://www.daileinote.com/computer/openresty/11 通过 lua_shared_dict 指令可以声明一个共享内存区域,可以在多个 worker 进程间共享,单位支持 k、m,然后配合 ngx.shared.DICT api函数来操作。nginx -s reload 后共享内存的数据还在。 这个共享内存功能非常有用,极大的便利了worker 进程间的通信和协作,而且还提供了类似 redis 的数据结构,可以当做一个简易的数据库,而且没有通信开销。 共享内存在 Openresty 里用途很广,基于它可以实现流量统计、缓存、进程锁等高级功能。 12345678910111213141516171819202122232425http { lua_shared_dict dogs 10m; server { location /set { content_by_lua_block { local dogs = ...
OpenResty Lua API — 常用组件
摘自:http://www.daileinote.com/computer/openresty/09 下面列出 lua-nginx-module 模块内置的一些组件。 ngx.escape_uri1syntax: newstr = ngx.escape_uri(str) 转义uri。 ngx.unescape_uri1syntax: newstr = ngx.unescape_uri(str) 取消转义。 12345678910location = /test { content_by_lua_block { ngx.say(ngx.escape_uri("http://www.freecls.com?name=freecls&age=28")) ngx.say(ngx.unescape_uri("http%3A%2F%2Fwww.freecls.com%3Fname%3Dfreecls%26age%3D28")) } }[...
OpenResty Lua API — 请求相关
摘自:http://www.daileinote.com/computer/openresty/08 ngx.req.is_internal1syntax: is_internal = ngx.req.is_internal() 判断是否为内部请求。 ngx.get_phase1syntax: str = ngx.get_phase() 获取当前阶段名 1234567891011121314init #init_by_lua*.init_worker #init_worker_by_lua*.ssl_cert #ssl_certificate_by_lua*.ssl_session_fetch #ssl_session_fetch_by_lua*.ssl_session_store #ssl_session_store_by_lua*.set #set_by_lua*.rewrite #rewrite_by_lua*.balancer #balance...
OpenResty 基础及运行机制
摘自:http://www.daileinote.com/computer/openresty/04 局部模块在同一个worker中是共享的在同一个 worker 中,使用 local 修饰的模块代码和数据只会被加载一次,该模块下的数据在同一个 worker 下的所有请求共享,但是全局的却不是(也就是不加 local 修饰),那是由于一个请求一个协程的设计原则。 123456location /lua { content_by_lua_block { local mydata = require "mydata" ngx.say(mydata.get_age("dog")) }} 当第一次请求 /lua 时,当前 worker 会加载缓存该模块,接下来所有到 /lua 的请求都会使用预先加载的数据,这也是 openresty 高性能的原因所在。 一定要注意,数据在同一个 worker 下共享,换句话说,启动 nginx 如果有多个 work...
OpenResty 配置指令
摘自:http://www.daileinote.com/computer/openresty/05 下面是 lua-nginx-module 模块的一些配置指令 lua_package_path123syntax: lua_package_path <lua-style-path-str>default: context: http 设置 lua 模块的搜索路径,可以包含 $prefix 或 ${prefix} 变量,当我们有多个 openresty 程序通过 -p 命令指定工作目录启动时非常有用。 lua_package_cpath123syntax: lua_package_cpath <lua-style-path-str>default: context: http 指定c动态库搜索路径,其他的同上。 12lua_package_cpath '/usr/lib64/lua/5.1/?.so;;/tmp/lua/*.so;;';lua_package_path '$prefix/lib/*.lua;;/tmp/lu...
PostgreSQL 的安装
安装postgresqldocker 安装 postgresql10 拉取官方的镜像 docker pull postgres:10 创建并运行postgres docker run –name postgres -e POSTGRES_PASSWORD=postgres -p 5432:5432 -d postgres:10 启动数据库 docker start postgres 访问数据库 psql -h localhost -p 5432 -U postgres PostgreSQL 11 / 10 on CentOS 7PostgreSQL 11 install 1234### PostgreSQL 11 ###yum install -y https://download.postgresql.org/pub/repos/yum/11/redhat/rhel-7-x86_64/pgdg-centos11-11-2.noarch.rpm### PostgreSQL 10 ###yum install -y https://...
PostgreSQL 备份及还原
PostgreSQL还原.bak文件 win+R输入cmd cd C:\PostgreSQL\10\bin 还原之前首先在postgresql中新建数据库,作为目标数据库 在postgresql对目标数据库执行create extension postgis;语句,确保空间数据加载正常,同时生成表spatial_ref_sys psql -h localhost -U postgres -p 5432 -d DBtest -f “E:\DBtest .bak”(备份:pg_dump -h localhost -U postgres DBtest > “E:\DBtest .bak” ) 用户 postgres 的口令:输入密码回车 EXPLAIN ( ANALYZE, buffers )–查询执行时间等(执行计划) 备份数据库中表及数据pg_dump -h 127.0.0.1 -U admin -Fc -v postgres > /usr/local/pgsql/db_backup/2012-10-15&...
自定义监控指标开发(三):Grafana配置及使用
介绍Grafana 是一款采用 go 语言编写的开源应用,可以从Elasticsearch,Prometheus,Graphite,InfluxDB等各种数据源中获取数据,并通过精美的图形将其可视化。 除了Prometheus的AlertManager 可以发送报警,Grafana 同时也支持告警。Grafana 可以无缝定义告警在数据中的位置,可视化的定义阈值,并可以通过钉钉、email等平台获取告警通知。最重要的是可直观的定义告警规则,不断的评估并发送通知。 由于Grafana alert告警比较弱,大部分告警都是通过Prometheus Alertmanager进行告警. 安装见:https://github.com/behappy-project/behappy-docker-application/tree/master/grafana 图表配置 在时序图表配置场景下,我们需要核心关注配置的有: Metrics: promQL查询语句【注:当使用rancher部署方式时,此处编写会有乱码情况,解决办法是在PrometheusUI中编写粘贴到这里】 Legen...
