作者文章归档:zuojie@88.com

OpenResty的安装与使用


OpenResty的安装与使用

OpenResty是一个基于Nginx与Lua的高性能Web平台,可以用于Web服务动态网关等,能够处理极高的并发。所以对于我们来说学好OpenResty是很有必要的。

OpenResty内部集成了大量精良的Lua库、第三方模块以及大多数的依赖项。用于方便地搭建能够处理超高并发、扩展性极高的动态Web 应用、Web 服务和动态网关。

Lua 是一个小巧的脚本语言。 其设计目的是为了通过灵活嵌入应用程序中从而为应用程序提供灵活的扩展和定制功能。Lua由标准C编写而成,几乎在所有操作系统和平台上都可以编译,运行。Lua并没有提供强大的库,这是由它的定位决定的...

阅读全文 →

Kubernetes基础教程


一、Kubernetes环境搭建

二、Kubernetes基础

阅读全文 →

Nginx访问控制


Nginx访问控制

Nginx 提供了多种方式来进行访问控制,这些方式可以帮助你根据不同的条件(如 IP 地址、用户身份、请求方法等)来限制或允许对你的网站或应用程序的访问。以下是一些常用的 Nginx 访问控制方法和配置示例。

一、基于 IP 地址的访问控制

你可以使用 allowdeny 指令来根据客户端的 IP 地址允许或拒绝访问。这些指令可以用于 http, server, 或 location 块中。

配置示例

server {
    listen 80;
    server_name example.com;

    location /admin {
     ...

阅读全文 →

Nginx灰度发布


Nginx灰度发布

灰度发布又名金丝雀发布(Gray Release 或 Canary Release)是一种软件发布策略,旨在将新版本的应用程序或服务逐步、安全地部署到生产环境中。这种策略通常用于降低新版本引入的风险,避免大规模的故障影响所有用户。

灰度发布属于增量发布,新老版本同时为用户提供服务。灰度发布的主要目的是保证系统的可用性。每一次的线上变更都无法保证系统 100% 的无 bug,所以变更后要在线上小范围验证,等没问题再全面放开。而金丝雀发布是灰度发布的一种实现。

金丝雀发布由来:以前矿工开矿,在下矿洞前需要检查下方是否有毒气,矿工们先会放一只金丝雀进去探是否有毒气体,看金...

阅读全文 →

OpenResty+Redis:高性能缓存利器


OpenResty + redis

使用OpenResty中的Lua语言进行二次开发,实现Nginx接入层缓存的技术。

下图左边是常用的架构,http请求经过nginx负载均衡转发到tomcat,tomcat再从redis读取数据,整个链路过程是串行的,当tomcat挂掉或者tomcat线程数被消耗完,就无法正常返回数据。

下图右边是使用OpenResty的lua-resty-redis模块使nginx具备直接访问redis的能力,不占用tomcat线程,Tomcat暂时挂掉仍可正常处理请求,减少响应时长,提高系统并发能力。

图片

1.压缩功能

Redis的value值用json格式保存...

阅读全文 →

Apache配置详解


配置 Apache2 可以涉及到多个文件和目录,主要集中在 /etc/apache2/ 目录下。以下是一些关键的配置文件和目录及其作用:

1. 主配置文件

  • /etc/apache2/apache2.conf: 这是 Apache2 的主配置文件,包含了全局设置和模块加载指令。

2. 模块配置

  • /etc/apache2/mods-available/: 包含所有可用模块的配置文件。

  • /etc/apache2/mods-enabled/: 包含当前启用的模块的符号链接。

启用模块的命令:

sudo a2enmod module_name

禁用模块的命令:

sudo a2d...

阅读全文 →

Nginx常用配置


Nginx的配置

配置文件实例

以下为一个 nginx.conf 配置文件实例:

#定义 nginx 运行的用户和用户组
user www www;
#nginx 进程数,建议设置为等于 CPU 总核心数。
worker_processes 8;
#nginx 默认没有开启利用多核 CPU, 通过增加 worker_cpu_affinity 配置参数来充分利用多核 CPU 以下是 8 核的配置参数
worker_cpu_affinity 00000001 00000010 00000100 00001000 00010000 00100000 01000000 10000000;
#...

阅读全文 →

Nginx之缓存配置


nginx之缓存配置

1、配置

在Nginx中,缓存是通过使用Nginx的proxy_cache模块来实现的。

开启proxy_cache模块:首先需要在Nginx配置文件中开启proxy_cache模块。

可以在http块中添加以下配置:

http {
    proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=my_cache:10m inactive=60m;
}

在上面的配置中,proxy_cache_path指定了缓存的路径和参数,keys_zone定义了缓存的名称和大小,inactive定义了缓存的过期时间。

配置...

阅读全文 →

Shell数组


有这样一个现实问题:一个班级学员信息系统,要求存储学员ID、NAME、SCORE、AGE、GENDER,班级有50个人,思考如何解决交互中数据存储的问题。很多人可能直接说或定义变量接收数据不就行了!nice,你很棒!! 解决方案如下:

1)每个学生通过5个变量,一个班级50个学生,5*50=250,妥妥的!我定义250个变量接收就可以了,美美哒!

兄弟,现在不是全班了是全校的学生需要录入你这个信息系统,你写变量吧!!当我提出这个需求的时候,作为开发你会不会想骂娘呢?

2)使用数组来定义,我只需要定义5个数组来接收所有用户的数据就可以了,5个数组就能解决一切,你觉得你会不会想了解下数组是什...

阅读全文 →

Nginx日志切割脚本


Nginx日志切割脚本

Nginx访问日志自动切割脚本:提升日志管理的效率与便捷性

在Web服务器的日常运维中,日志管理是一个至关重要的环节。Nginx作为当前流行的Web服务器软件,每天都会生成大量的访问日志。为了方便日志的查看、归档和分析,我们通常需要对这些日志文件进行切割,即按照一定的时间周期(如每天、每周或每月)创建新的日志文件。

一、脚本内容解析

以下是脚本的完整内容,并附有详细的注释和讲解:

#!/bin/bash  
# 定义Nginx日志目录  
LOG_DIR=/usr/local/nginx/logs    
# 获取上一天的时间,格式为YYYY-MM-DD  
YE...

阅读全文 →