当前位置:首页 > CN2资讯 > 正文内容

nginx如何代理服务 nginx作为代理服务器

9小时前CN2资讯

代理服务简介

 什么是代理服务

  •  代理-代理办理(代理理财、代理收货、代理购物等等)。

HTTP请求没有代理服务的模型图

HTTP请求具有代理服务的模型图

 

 代理分类

  • 正向代理
  • 反向代理

正向代理

  •     当局域网不能上网时,可以在浏览器设置正向代理满足上网要求
  •     当我们想通过FQ访问国外网站查询资料,可以在浏览器设置正向代理
  •     当服务器只允许某个端的IP访问(比如googe),所以我们需要请求运行访问的那个客户端,在让其帮我们转发请求

正向代理模型图

 

反向代理

  •   服务端有很多工程模块的时候,需要通过Nginx代理实现流量的分发

反向代理模型图

 

 反向代理模型图解释:

  •     客户端需要自己去请求DNS获取服务端地址;
  •     代理是为服务端服务的;
  •     红色虚线表示防火墙;
  • 配置在服务端,分发客户端请求到不同的服务端
  •     主要用于服务器集群分布式部署的情况下,反向代理隐藏了服务器的信息

代理区别

  • 区别在于形式上服务的对象不一样
  • 正向代理代理的对象是客户端,为客户端服务
  • 反向代理代理的对象是服务端,为服务端服务

 

代理模式和模块介绍

Nginx可支持的代理协议

 

 

常见的Nginx作为反向代理支持的协议

 

反向代理模式与Nginx代理模块

 

常见的Nginx作为正向代理支持的协议

 

注意:

 

nginx 反向代理

代理服务proxy_pass配置语法

  • Syntax: proxy_pass URL;
  • Default: —
  • Context: location, if in location, limit_except

反向代理配置场景模拟

假设有两个服务一个对外暴露,一个不对外暴露只能内部访问,对外暴露的端口是80,在内部访问的端口是8080,通过访问对外暴露的80服务来访问8080服务

(1)创建两个HTML静态资源文件

    http_proxy.html文件

<h1>Welcome to http_proxy!!!!</h1>

 http_proxy_redirect.html 

<h1>Welcome to http_proxy_redirect_81!!!!</h1>

(2) 编辑location

配置对外暴露的代理

server { listen 80; server_name www.zhangbiao.com; location ~ /test_proxy.html$ { proxy_pass http://127.0.0.1:8080; } }

  

内部才能访问的服务

server { listen 8080; server_name 127.0.0.1; location / { root /opt/app/code2; index http_proxy_redirect.htm; }

  

Nginx作为代理服务_代理配置语法补充

proxy-缓冲区

  • Syntax: proxy_buffering on | off;  
  • Default: proxy_buffering on;
  • Context: http, server, location

扩展:

       proxy_buffer_size-设置缓冲区大小(内存页大小)

       proxy_buffers-设置缓冲区数量和大小(内存页数量和大小)

       proxy_busy_buffers_size-设置最大缓冲区大小

proxy-重定向

  •  Syntax:  proxy_redirect default;  proxy_redirect off;  proxy_redirect redirect replacement;
  •  Default: proxy_redirect default;
  •  Context: http, server, location

proxy-头信息

  • Syntax: proxy_set_header field value;
  • Default: proxy_set_header Host $proxy_host;  proxy_set_header Connection close;
  • Context: http, server, location

 扩展:

       proxy_hide_header-设置隐藏头信息字段

       proxy_set_body-设置请求体返回信息

proxy-超时

  • Syntax: proxy_connect_timeout time;
  • Default: proxy_connect_timeout 60s;
  • Context: http, server, location

扩展:

proxy_read_timeout-从代理服务器读取响应的超时时间

proxy_send_timeout-设置将请求传输到代理服务器的超时时间

代理配置及配置规范

代理通用配置

location / { proxy_pass http://127.0.0.1:8080; include proxy_params; }


proxy_params

proxy_redirect default; proxy_set_header Host $http_host; proxy_set_header X-Real-IP $remote_addr; proxy_connect_timeout 30; proxy_send_timeout 60; proxy_read_timeout 60; proxy_buffer_size 32k; proxy_buffering on; proxy_buffers 4 128k; proxy_busy_buffers_size 256k; proxy_max_temp_file_size 256k;

代理配置详解: 

 proxy_redirect default; 

  • 没有重定向就配置成默认,除非后端返回301情况下设置成具体重定向地址  

 proxy_set_header Host $http_host;

 proxy_set_header X-Real-IP $remote_addr;

  • 设置字段重新定义或附加到传递给代理服务器的请求头

proxy_connect_timeout 30;

  • 设置代理连接超时时间

proxy_read_timeout 60;

  • 设置从代理服务器读取响应的超时时间

 proxy_send_timeout 60;

  • 设置向代理服务器发送请求的超时时间

 proxy_buffering on;

  • 设置启用或禁用来自代理服务器的响应缓冲

proxy_buffer_size 32k;

  • 设置用于读取从代理服务器接收的响应的第一部分的缓冲区的大小

proxy_buffers 4 128k

  • 设置用于从代理服务器读取响应的缓冲区的数量和大小,用于单个连接。

 proxy_busy_buffers_size 256k;

  • 设置当启用来自代理服务器的响应缓冲时,限制可能忙于向响应客户端发送响应的缓冲区的总大小,而响应尚未完全读取。

proxy_max_temp_file_size 256k;

  • 设置当启用来自代理服务器的响应缓冲,并且整个响应不适合proxy_buffer_size和proxy_buffers指令设置的缓冲区时,响应的一部分可以保存到临时文件中。 该指令设置临时文件的最大大小。 一次写入临时文件的数据大小由proxy_temp_file_write_size指令设置。

 

location / { index index.jsp; proxy_pass http://hello; #在这里设置一个代理,和upstream的名字一样 #以下是一些反向代理的配置可删除 proxy_redirect off; #后端的Web服务器可以通过X-Forwarded-For获取用户真实IP proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; client_max_body_size 10m; #允许客户端请求的最大单文件字节数 client_body_buffer_size 128k; #缓冲区代理缓冲用户端请求的最大字节数 proxy_connect_timeout 300; #nginx跟后端服务器连接超时时间(代理连接超时) proxy_send_timeout 300; #后端服务器数据回传时间(代理发送超时) proxy_read_timeout 300; #连接成功后,后端服务器响应时间(代理接收超时) proxy_buffer_size 4k; #设置代理服务器(nginx)保存用户头信息的缓冲区大小 proxy_buffers 4 32k; #proxy_buffers缓冲区,网页平均在32k以下的话,这样设置 proxy_busy_buffers_size 64k; #高负荷下缓冲大小(proxy_buffers*2) proxy_temp_file_write_size 64k; #设定缓存文件夹大小,大于这个值,将从upstream服务器传 } }

  



    你可能想看:

    扫描二维码推送至手机访问。

    版权声明:本文由皇冠云发布,如需转载请注明出处。

    本文链接:https://www.idchg.com/info/25043.html

    分享给朋友:

    “nginx如何代理服务 nginx作为代理服务器” 的相关文章

    香港虚拟主机CN2是什么牌子?解析优质香港虚拟主机的选择

    在全球化的今天,互联网已经成为商业和个人生活的indispensable工具。对于想要在香港或国际市场发展的企业或个人来说,选择一台高性能、高稳定的虚拟主机是至关重要的。而在众多虚拟主机品牌中,香港虚拟主机CN2因其卓越的性能和优质的网络连接而备受推崇。香港虚拟主机CN2到底是什么牌子?它又有哪些独...

    最佳Win SSH工具推荐:轻松管理远程服务器与安全文件传输

    SSH(Secure Shell)协议是一种网络协议,主要用于在不安全的网络中提供安全的远程登录和其他网络服务。它通过加密技术确保数据在传输过程中的安全性,防止信息被窃听或篡改。对于Windows用户来说,Win SSH工具是实现SSH连接的关键,它们让用户能够轻松管理远程服务器、传输文件或执行命令...

    VPS在线测速:如何选择合适的虚拟专用服务器

    在现今的网络环境中,选择合适的VPS(虚拟专用服务器)是每位用户尤其是中小企业和开发者需要重点关注的事项之一。VPS在线测速的重要性体现在很多方面,尤其是在评估服务性能时,测速显得尤为关键。通过测速脚本,用户可以全面了解VPS的网络状况和系统性能,从而在购买时做出更明智的决策。 想象一下,你已经在选...

    ZGOVPS优惠码使用指南:如何享受高性能VPS服务的优惠

    ZGOVPS是一家在VPS服务领域备受瞩目的品牌。作为一个提供高性能虚拟专用服务器的商家,它在业内以性价比高、网络稳定和良好口碑而受到广泛欢迎。我在使用ZGOVPS的过程中,深刻感受到了它对客户需求的敏锐把握和优质服务的承诺。 从公司的背景来看,ZGOVPS专注于为全球用户提供专业的VPS解决方案,...

    Virmach虚拟主机评测:高性价比VPS服务推荐

    大家好,今天我想和你聊一聊Virmach,这是一家我非常推荐的虚拟主机提供商。Virmach专注于提供VPS(虚拟专用服务器)服务,近年来逐渐在行业中赢得了一席之地。它的价格相对亲民,而服务质量与稳定性也让人感到满意。很多人选择它,主要是因为它不仅适合个人用户,也非常受中小企业欢迎。 Virmach...

    宝塔安装全攻略:轻松管理你的服务器与网站

    宝塔面板,凭借其简单易用的特性,已经成为很多用户搭建和管理网站的首选工具。作为一款开源的服务器管理软件,宝塔面板提供了丰富的功能和灵活的操作方式,让无论是新手还是经验丰富的用户都能轻松上手。我在使用宝塔面板的过程中,深刻体会到它带来的便利和高效。 功能与特点 宝塔面板最大的一大优势在于其直观的用户界...