Http与Https相关概念


Http基础

一、HTTP基本概念

1.定义

  • HTTP(超文本传输协议,HyperText Transfer Protocol)是用于在客户端和服务器之间传输超文本数据的协议。(如HTML、图像、视频等)。

2.特点

  • 无状态:每个请求都是独立的,服务器不保留之前的请求状态。
  • 灵活性:可以通过不同的请求方法(如GET、POST、PUT、DELETE等)进行数据传输。
  • 文本协议:请求和响应以文本格式书写,易于调试。

3.请求方法

  • GET:请求指定的资源,数据通过URL传递,通常用于获取数据。
  • POST:向指定资源提交数据,最常用的表单提交方法。
  • PUT:更新指定资源,通常加在...

Read more

Nginx中location配置


Nginx的location配置用于定义如何处理特定URL路径的请求。它是Nginx配置中的一个重要部分,允许你根据不同的URL路径将请求路由到不同的服务器或处理程序。以下是location配置的详细解释:

基本语法

location [修饰符] 路径 {
    # 配置内容
}
  • 修饰符:可选,用于指定匹配的类型。
  • 路径:指定要匹配的URL路径。
  • 配置内容:匹配到路径后执行的指令。

常用修饰符

  1. 无修饰符:默认情况下使用前缀匹配。
  2. =:精确匹配。只匹配指定的路径,不进行正则表达式或前缀匹配。
  3. ~:区分大小写的正则表达式匹配。
  4. ~*:不区分大小写的正则表达式匹配。
  5. ^~:前缀...

Read more

OpenResty的安装与使用


OpenResty的安装与使用

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

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

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

Read more

Kubernetes基础教程


一、Kubernetes环境搭建

二、Kubernetes基础

Read more

Nginx访问控制


Nginx访问控制

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

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

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

配置示例

server {
    listen 80;
    server_name example.com;

    location /admin {
     ...

Read more

Nginx灰度发布


Nginx灰度发布

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

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

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

Read more

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格式保存...

Read more

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...

Read more

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;
#...

Read more

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定义了缓存的过期时间。

配置...

Read more