nginx 缓存动态内容 和使用自定义错误503

安装时添加 ngx_cache_purge 模块

./configure --user=www --group=www --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --with-http_gzip_static_module --with-ipv6 --add-module=ngx_cache_purge-2.1

vi nginx.conf

proxy_temp_path   /home/nginx/temp;
proxy_cache_path  /home/nginx/cache  levels=1:2  keys_zone=cache_one:2000m inactive=24h max_size=80g;

vi proxy.conf


proxy_next_upstream http_500 http_502 http_503 http_504 error timeout invalid_header;
proxy_connect_timeout 300s;
proxy_send_timeout   900;
proxy_read_timeout   900;
proxy_buffer_size    32k;
proxy_buffers     4 32k;
proxy_busy_buffers_size 64k;
proxy_redirect     off;
proxy_hide_header  Vary;
proxy_set_header   Accept-Encoding '';
proxy_set_header   Host   $host;
proxy_set_header   Referer $http_referer;
proxy_set_header   Cookie $http_cookie;
proxy_set_header   X-Real-IP  $remote_addr;
proxy_set_header   X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_intercept_errors on;
proxy_redirect default;
proxy_ignore_headers "Cache-Control" "Expires" "Set-Cookie" "Vary";
其中



proxy_intercept_errors on;
proxy_redirect default;


用于503错误时使用自定义页面


vi vhost/domain.conf


upstream test_server {
        server 192.168.130.54 max_fails=3 fail_timeout=5s;
        server 192.168.130.57 max_fails=3 fail_timeout=5s;
        server 192.168.130.51  backup;
}
server {
    listen  80;
    server_name test.pc6.com;
    location /test/ {
        proxy_cache cache_one;
        proxy_cache_valid  200 304 1d;
        proxy_ignore_headers cache-control;
        proxy_cache_key $host$uri$is_args$args;
        include proxy.conf;
        proxy_pass http://test_server;
        expires      1d;
        access_log  /home/wwwlogs/test.log log;
    }
    location ~ /jfclear(/.*) {
        #allow        127.0.0.1;
        allow        all;
        deny         all;
        proxy_cache_purge    cache_one  $host$1$is_args$args;
    }
    error_page 503 /50x.html;
    location = /50x.html {
        root   /home/html;
    }

 }
其中
proxy_ignore_headers cache-control;
用于强制缓存动态页面







转载于:https://my.oschina.net/u/937746/blog/339866

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
C语言实现的支持高并发、超高性能Web服务器源码,可以编译运行,使用高性能HTTP解析器fasterhttp作为其解析核心,在开启Keep-Alive和gzip压缩时(现代浏览器默认开启)性能比nginx约快3倍。 hetao功能: * 支持主流操作系统Linux(基于epoll)、WINDOWS(基于IOCP,暂不支持HTTPS) * 支持HTTP/1.0、HTTP/1.1 * 支持通讯超时控制 * 支持多侦听端口 * 支持多虚拟主机(基于域名) * 支持自定义错误页面 * 支持自定义缺省index文件 * 支持自适应Keep-Alive * 支持自适应gzip、deflate压缩 * 支持HTTPS * 支持反向代理负载均衡(目前支持轮询、最少 连接数算法),支持HTTP与HTTPS互转 * 支持rewrite * 支持优雅重启/重载配置,重启期间完全不中断对外服务 * 支持工作进程绑定CPU * 支持进程 崩溃后自动重启安全机制: * HTTP请求报文合法性校验 * 活跃超时控制(防止僵尸连接)和累积超时控制(防止慢速攻击) * 每个IP连接数 限制 * 全局最大连接数限制 * 最大单个文件缓存大小 选择hetao的理由: *在Linux上的综合性能约比Nginx还要快三倍,尤其适合中小型静 态文件 * hetao是众多开源Web服务器中在WINDOWS版本唯一全部采用IOCP模型。Apache的WINDOWS版本是传统的Leader-Follow多进程模型,Nginx则 是多线程select模型(玩具?) * 配置文件采用JSON标准格式,简洁易写,而且支持行注释和块注释。Apache配置格式比较复杂,Nginx配置 格式多变怪异且不支持块注释 *
Netdata是一款Linux性能实时监测工具。Netdata是一个高度优化的Linux守护进程,它为Linux系统,应用程序,SNMP服务等提供实时的性能监测。 它用可视化的手段,将被监测者最细微的细节,展现了出来。这样,你便可以清晰地了解你的系统和应用程序此时的状况。 Netdata特点: 1.优美的界面:bootstrap框架下的控制界面 2.自定义的控制界面:你可以使用简单的HTML代码去自定义控制界面(不需要使用javascript) 3.极其的快速而高效:程序使用C进行编写(默认安装下,预计只有2%的单核CPU使用率和少许的内存使用率) 4.零配置:你只需要去安装它,接着它就会自动地监测一切数据 5.零依赖:它的静态网络文件和网络接口拥有自己的网络服务器 6.可扩展:用它自身的插件API(可以使用许多方式来制作它的插件,从bash到node.js),你可以检测任何可以衡量的数据。 7.可嵌入:它可以在任何Linux内核可以运行的地方运行 监测内容: 这是它目前检测的内容(大多数都不需要进行配置,安装后即可开始监测) 1.CPU的使用率,中断,软中断和频率(总量和每个单核) 2.RAM,互换和内核内存的使用率(包括KSM和内核内存deduper) 3.硬盘输入/输出(每个硬盘的带宽,操作,整理,利用等) 4.IPv4网络(数据包,错误,分片): TCP:连接,数据包,错误,握手 UDP:数据包,错误 广播:带宽,数据包 组播:带宽,数据包 5.Netfilter/iptables Linux防火墙(连接,连接跟踪事件,错误等) 6.进程(运行,受阻,分叉,活动等) 7.熵 8.NFS文件服务器,v2,v3,v4(输入/输出,缓存,预读,RPC调用) 9.网络服务质量(唯一一个可实时可视化网络状况的工具) 10.应用程序,通过对进程树进行分组(CPU,内存,硬盘读取,硬盘写入,交换,线程,管道,套接字等) 11.Apache Web服务器状态(v2.2, v2.4) 12.Nginx Web服务器状态 13.Mysql数据库(多台服务器,单个显示:带宽,查询/s, 处理者,锁,问题,临时操作,连接,二进制日志,线程,innodb引擎等) 14.ISC Bind域名服务器(多个服务器,单个显示:客户,请求,查询,更新,失败等) 15.Postfix邮件服务器的消息队列(条目,大小) 16.Squid代理服务器(客户带宽和请求,服务带宽和请求) 17.硬件传感器(温度,电压,风扇,电源,湿度等) 18.NUT UPSes(负载,充电,电池电压,温度,使用指标,输出指标)
nginx使用lua的步骤如下: 1. 在/usr/local/openresty/目录下创建lua目录,并在lua目录下创建init.lua文件。在init.lua文件中使用lua语言编写一段错误日志输出的代码,例如:ngx.log(ngx.ERR, "init lua success")。 2. 在nginx的安装目录下执行编译,添加需要安装的lua模块。例如,切换到nginx安装目录下执行如下命令: ./configure --user=nginx --group=nginx --prefix=/usr/local/nginx --add-module=/usr/local/LuaJIT-2.0.5/lua-nginx-module-0.10.9rc7 --add-module=/usr/local/LuaJIT-2.0.5/ngx_devel_kit-0.3.0 --with-stream。 3. 在nginx的配置文件nginx.conf中添加共享字典的缓存配置。例如,在nginx.conf中添加如下代码:lua_shared_dict my_cache 128m; 4. 创建一个lua脚本文件,例如itemsharedic.lua,并在该文件中编写lua代码。例如,vim itemsharedic.lua。 5. 修改nginx.conf配置,将请求路由到lua脚本处理。例如,在nginx.conf中添加如下代码: location /luaitem/get { default_type "application/json"; content_type_lua_file ../lua/itemsharedic.lua; } 通过以上步骤,你可以在nginx使用lua进行各种自定义操作和扩展。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [nginx-lua入门操作](https://blog.csdn.net/weixin_38885024/article/details/90598905)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* [Nginx配置Lua模块](https://blog.csdn.net/RootDiagram/article/details/129374004)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值