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

张裕  高级会员 | 2024-7-27 03:34:51 | 显示全部楼层 | 阅读模式
打印 上一主题 下一主题

主题 213|帖子 213|积分 639

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的哀求转发到新的服务器 
  1. http {   
  2.     server {
  3.                 listen       xxxx;
  4.                 server_name  localhost;
  5.                 client_max_body_size 10M;
  6.                 autoindex    on;
  7.                 #charset koi8-r;
  8.                 access_log  logs/host.access.log;
  9.                 location /upload {
  10.                         proxy_set_header X-Real-IP $remote_addr;
  11.                         proxy_set_header X-Forward-For $proxy_add_x_forwarded_for;
  12.                         proxy_set_header Host $http_host;
  13.                         proxy_set_header X-Nginx-Proxy true;
  14.                         proxy_pass   http://xxx:xxx/;
  15.                 }
  16.         }
  17. }
复制代码


  • 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

  1. stream {        
  2.         upstream mysql {
  3.             server localhost:3306;
  4.          }
  5.         server {
  6.             listen xxxx;
  7.             proxy_connect_timeout 10s;
  8.             proxy_timeout 30s;
  9.             proxy_pass mysql;
  10.         }
  11. }
复制代码


  • upstream mysql:
    upstream 指令定义了一个后端服务器组,这里定名为 mysql
    通过 server 指令指定了 MySQL 服务器的地址和端口
  • server 块:
    server 块定义了代理服务器的设置
    listen 指令指定了代理服务器监听的端标语
    proxy_connect_timeout 指令定义了连接到后端服务器的超时时间为 10 秒
    proxy_timeout 指令定义了从后端服务器接收相应的超时时间为 30 秒
    proxy_pass 指令将接收到的流量转发到定义的 upstream 块中的后端服务器组,这里指定的是 mysql

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

张裕

高级会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表