Nginx转发代理请求(http)+转发mysql(stream)

1.Nginx能处理的不同类型模块

1.1 http 模块

  • http 模块用于处理 HTTP 和 HTTPS 协议的请求和响应,通常用于构建 Web 服务器和反向代理服务器。
  • 通过 http 模块配置的服务可以处理 Web 浏览器发起的 HTTP 请求,并向客户端提供 Web 页面、静态资源、API 接口等内容。
  • 在 http 块内部可以配置各种 HTTP 相关的指令,如监听端口、设置服务器名称、定义虚拟主机、配置请求处理、设置缓存、负载均衡等。

1.2 stream 模块

  • stream 模块用于处理 TCP 和 UDP 等传输层协议的请求和响应,通常用于构建网络代理、负载均衡器、TCP/UDP 代理等。
  • 通过 stream 模块配置的服务可以在传输层上转发请求和响应数据,而不需要解析应用层的协议内容。
  • 在 stream 块内部可以配置 TCP 或 UDP 代理、负载均衡、健康检查等。
  • 常用于处理数据库连接、邮件传输等。

1.3 mail 模块

  • mail 模块用于处理邮件服务相关的流量,例如 SMTP、POP3、IMAP 等邮件协议。
  • 通过 mail 模块配置的服务可以用作邮件代理、反向代理等。

1.4 upstream 模块:

  • upstream 模块用于配置后端服务器集群,实现负载均衡和故障转移。
  • 通过 upstream 模块配置的服务器集群可以用于 HTTP、stream 或 mail 模块。

1.5 security 模块:

  • security 模块提供了一些安全相关的功能,如防止恶意请求、拒绝服务攻击防护等。

1.6 limit_conn 模块:

  • limit_conn 模块用于限制客户端的并发连接数。

1.7 limit_req 模块:

  • limit_req 模块用于限制客户端的请求速率。

1.8 ssl 模块:

  • ssl 模块用于配置 HTTPS 协议相关的参数,包括 SSL 证书、加密算法等。

1.9 gzip 模块:

  • gzip 模块用于启用压缩功能,减少传输数据量,提高性能。

1.10 proxy 模块:

  • proxy 模块用于配置反向代理,将请求转发给后端服务器。

2.HTTP

        系统重装,导致之前的minio没了,新的minio迁移到了一个容量大的服务器,为了不更改太多之前的项目,直接用Nginx将请求之前minio的请求转发到新的服务器 

http {    server {listen       xxxx;server_name  localhost;client_max_body_size 10M;autoindex    on;#charset koi8-r;access_log  logs/host.access.log;location /upload {proxy_set_header X-Real-IP $remote_addr;proxy_set_header X-Forward-For $proxy_add_x_forwarded_for;proxy_set_header Host $http_host;proxy_set_header X-Nginx-Proxy true;proxy_pass   http://xxx:xxx/;}}
}
  • listen xxxx;:指定了 Nginx 服务器监听的端口号为 xxxx。这意味着该服务器块将处理发送到本地主机(localhost)的端口 xxxx的所有传入 HTTP 请求。

  • server_name localhost;:指定了服务器的名称为 localhost。这意味着该服务器块将处理发送到本地主机名为 localhost 的所有传入 HTTP 请求。实际上,这是一个简单的示例,你可以将其替换为你实际使用的域名或者服务器名。

  • client_max_body_size 10M;:限制了客户端请求体的最大大小为 10MB。如果客户端上传的请求体超过这个大小,Nginx 将返回 413 请求实体过大错误。

  • autoindex on;:启用了自动索引功能。当请求的 URI 为一个目录时,Nginx 将列出该目录下的文件列表。

  • access_log logs/host.access.log;:指定了访问日志的路径。这将记录发送到该服务器块的请求信息。

  • location /upload { ... }:定义了一个名为 /upload 的位置块。这意味着当客户端请求的 URI 以 /upload 开头时,Nginx 将根据这个位置块的配置进行处理。

  • proxy_set_header 指令:这些指令设置了传递给后端服务器的一些 HTTP 头信息。例如,proxy_set_header X-Real-IP $remote_addr; 设置了 X-Real-IP 头为客户端的真实 IP 地址。

  • proxy_pass http://xxx:xxx/;:指定了代理服务器的地址。这个地址指定了请求应该转发到的后端服务器的地址。在这个例子中,请求将被代理到了 xxx:xxx地址。

综上所述,这个配置将监听在端口 xxxx上,当客户端请求的 URI 以 /upload 开头时,将请求转发到了后端服务器 xxx:xxx上。 

3.Stream

stream {        upstream mysql {server localhost:3306;}server {listen xxxx;proxy_connect_timeout 10s; proxy_timeout 30s;proxy_pass mysql;}
}
  • upstream mysql:

    upstream 指令定义了一个后端服务器组,这里命名为 mysql
    通过 server 指令指定了 MySQL 服务器的地址和端口

  • server 块:

    server 块定义了代理服务器的配置
    listen 指令指定了代理服务器监听的端口号
    proxy_connect_timeout 指令定义了连接到后端服务器的超时时间为 10 秒
    proxy_timeout 指令定义了从后端服务器接收响应的超时时间为 30 秒
    proxy_pass 指令将接收到的流量转发到定义的 upstream 块中的后端服务器组,这里指定的是 mysql

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/780627.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

linux通用命令 ssh命令连接慢问题排查

系列文章目录 文章目录 系列文章目录一、 ssh 连接慢3.1 查找原因3.2 解决方案 一、 ssh 连接慢 最近的 koji 服务器 使用 ssh 连接很慢。 3.1 查找原因 可以通过 ssh -vvv 192.168.0.123 或 time ssh root192.168.0.123 exit 查找原因如下: SERVER的SSHD会去DN…

【论文通读】UFO:A UI-Focused Agent for Windows OS Interaction

UFO:A UI-Focused Agent for Windows OS Interaction 前言AbstractMotivationMethodsExperimentConclusion 前言 Windows客户端第一个JARVIS,利用GPT4 Vision识别截图信息辅助智能体自动化执行操作,作为微软大肆宣传的一篇工作,其…

什么是齐纳二极管?齐纳二极管1SMB5944BT3G参数详解+应用方案

关于齐纳二极管基本知识: 齐纳二极管,又称稳压二极管。利用PN结的反向击穿状态,电流变化范围大,电压基本不变。制作了具有稳压功能的二极管。这种二极管是一个高电阻半导体器件,直到临界反向击穿电压。在这个临界击穿…

如何将Maven与TestNG集成

我们已经讨论了如何在maven中执行单元测试用例,但那些是JUnit测试用例,而不是TestNG。当maven使用“mvn test”命令进入测试阶段时,这些用例被执行。 本文将介绍如何将Maven与TestNG集成,并在maven进入测试阶段时执行TestNG测试。…

创新研报 | 2024+人工智能安全报告

人工智能(AI)是新一轮科技革命和产业变革的核心技术,被誉为下一个生产力前沿。具有巨大潜力的 AI 技术同时也带来两大主要挑战:一个是放大现有威胁,另一个是引入新型威胁。 奇安信预计,未来十年,人工智能技术的恶意使用将快速增长…

【数据结构】树tree

树的遍历 广度遍历Breadth-first traversal Breadth-first traversal is the traversal strategy used in the binary tree.Breadth first traversal, also known as level order traversal is the traversal strategy used in a binary tree. It involves visiting all the …

每日一题(leetcode2909):单份查找与群组查找

如果按照简单的方式,逐个查找中间元素(往两边扩散),那么复杂度会是n方。 这种方式没有对比较大小后的数据进行充分利用,所以复杂度较高。 我们考虑到既然要遍历,那么不妨干脆先把所有元素的左边最小值和右…

《HelloGitHub》第 96 期

兴趣是最好的老师,HelloGitHub 让你对编程感兴趣! 简介 HelloGitHub 分享 GitHub 上有趣、入门级的开源项目。 https://github.com/521xueweihan/HelloGitHub 这里有实战项目、入门教程、黑科技、开源书籍、大厂开源项目等,涵盖多种编程语言 …

ZYNQ学习之Ubuntu下Linux文件系统与用户权限

基本都是摘抄正点原子的文章&#xff1a;<领航者 ZYNQ 之嵌入式Linux 开发指南 V3.2.pdf&#xff0c;因初次学习&#xff0c;仅作学习摘录之用&#xff0c;有不懂之处后续会继续更新~ 一、Linux 文件系统 1.1 Linux 文件系统简介以及类型 操作系统的基本功能之一就是文件管…

JavaScript练手小技巧:仿米哈游官网人物跟随鼠标位移效果

最近&#xff0c;有同学找到我&#xff0c;说&#xff1a;老师&#xff0c;我想模仿米哈游官网。 我说&#xff1a;可以&#xff0c;很不错的。 她说&#xff1a;有些效果有点难&#xff0c;能不能帮我看下。 于是&#xff0c;我就简单大概粗糙的讲解了下大致的原理&#xf…

2024 ccfcsp认证打卡 2022 06 01 归一化处理

import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner sc new Scanner(System.in);int n sc.nextInt(); // 输入数字的个数int[] a new int[1010]; // 创建一个数组来存储输入的数字double sum 0; // 用于计算所有输入数字的总…

Let`s move - sui move开发实战-dao(3)

引言 经过之前的学习&#xff0c;准备进行实战开发一个简单的dao项目&#xff0c;实现一个去中心化自治组织&#xff0c;用于管理共享资金、社区任务、提案和投票等功能&#xff0c;本篇文章分享了提案模块、错误定义。 提案设计 关于提案模式的具体设计&#xff1a; dao m…

Android开发 OCR:通过Tesseract实现图片文字识别

下面是整个详解步骤过程 效果图一、OCR的含义二、什么是Tesseract三、前提准备1、添加依赖2、数据文件下载路径 四、实际代码案例Demo如下&#xff1a;Main.xmlMain.java 效果图 流程&#xff1a;获取assets中的图片显示到页面&#xff0c;提取照片内的文字 一、OCR的含义 o…

综合实验1

一、配置IP地址 [AR1]int g0/0/0 [AR1-GigabitEthernet0/0/0]ip add 192.168.1.254 24 [AR1-GigabitEthernet0/0/0]int se4/0/0 [AR1-Serial4/0/0]ip add 15.1.1.1 24 [AR1-Serial4/0/0] [AR2]int g0/0/0 [AR2-GigabitEthernet0/0/0]ip add 192.168.2.254 24 [AR2-Giga…

Android 12.0 mtp模式下连接pc后显示的文件夹禁止删除copy重命名功能实现

1.前言 在12.0的系统rom定制化开发中,usb连接pc端的时候有好几种模式,在做otg连接pc端的时候,改成mtp模式的时候,在pc端可以看到产品设备 的显示的文件夹的内容,对于产品设备里面的文件在pc端禁止做删除重命名拷贝等操作功能的实现 2.mtp模式下连接pc后显示的文件夹禁止删…

Docker 容器编排利器 Docker Compose

文章目录 一、Docker Compose 简介二、Docker Compose 安装2.1 Mac、Windows 平台默认支持2.2 Linux 安装(通过包管理)2.2.1 安装2.2.2 测试2.2.3 卸载 2.3 使用PIP 安装与卸载2.3.1 PIP安装2.3.2 PIP 卸载 三、基本使用3.1 术语3.2 部署Flask 应用 四、Compose 常用命令4.1 命…

机器学习——LightGBM算法

机器学习——LightGBM算法 摘要&#xff1a; LightGBM是一种高效的梯度提升框架&#xff0c;它在处理大规模数据时表现出色&#xff0c;并且具有较快的训练速度和较低的内存消耗。本文将介绍LightGBM算法的原理、特点以及与传统GBDT算法的区别&#xff0c;并使用Python对其进行…

什么样的人适合学习网络安全?怎么学?_

有很多想要转行网络安全或者选择网络安全专业的人在进行决定之前一定会有的问题&#xff1a;什么样的人适合学习网络安全&#xff1f;我适不适合学习网络安全&#xff1f; 会产生这样的疑惑并不奇怪&#xff0c;毕竟网络安全这个专业在2017年才调整为国家一级学科&#xff0c;…

pandas在循环中多次写入数据到一个excel防止锁定的方法

啥都不说&#xff0c;都是泪&#xff0c;直接上代码: # 在循环中多次写入数据 for i in range(10):# 创建一个新的DataFramedf pd.DataFrame({A: [i],B: [i * 2]})# 每次写入后保存文件with pd.ExcelWriter(example.xlsx, engineopenpyxl, modea, if_sheet_existsoverlay) as…

用html写一个贪吃蛇游戏

<!DOCTYPE html> <html> <head><title>贪吃蛇</title><meta charset"UTF-8"><meta name"keywords" content"贪吃蛇"><meta name"Description" content"这是一个初学者用来学习的小…