2022-03-25

前端代理怎么设置   前端代理设置方法

此内容,部分有小红书www.xiaohongshutuiguang.cn)转载提供

一、代理服务

  比较容易理解吧,简单来说。客户端访问服务器并不是直接访问的,而是通过中间代理服务器,代理服务器再去访问服务器。就像一个中转站一样,无论什么,只要从客户端到服务器,你就要通过我。

一)正向代理

  正向代理,就是代理服务器为客户端代理,也就是说,服务器并不知道真实的客户端是谁,而是通过代理服务器把请求发送给真实的服务器。比如,通过公司网络访问外网百度,那么公司的代理服务器就会代理你的主机,访问百度网站。百度服务器无法获得你个人的真实主机ip。

  就像上图展示的那样。web1、web2就是你在公司内的个人主机ip,然后通过公司的nginx代理服务器,访问外部网络。

语法:

Syntax: proxy_pass URL

Default: --Context: server,location

实践:

  删除之前的配置,然后我们加下正向代理的配置:

resolver8.8.8.8; #谷歌的域名解析地址

location / {

    # $http_host 要访问的主机名 $request_uri请求路径

    proxy_pass http://$http_host$request_uri;}

  这样,nginx的正向代理配置其实就ok了,哦对,别忘了重载nginx服务器。为了我们可以用本地测试,还需要一些额外的修改。Windows系统,修改下本机的hosts文件,地址在:C:\Windows\System32\drivers\etc。里面有个hosts,通过编辑器打开,添加如下内容:

ip(你服务器的ip)(空格)域名(随便一个域名)

  我的添加完了之后是这样的:


   然后,你可以正常访问百度,或者其他域名地址,或者也可以通过curl来访问。但是这样我们实际上比较无感,所以我们来看下nginx日志,日志在/var/log/nginx/access.log中。

二)反向代理

  反向代理,简单来说就是代理服务器代理的是服务器,客户端并不知道真正的服务器是什么。

nginx配置如下:

location ~ ^/api {

    proxy_pass http://localhost:3000;    proxy_redirect default; #重定向

    proxy_set_header Host $http_host;        #向后传递头信息

    proxy_set_header X-Real-IP $remote_addr; #把真实IP传给应用服务器

    proxy_connect_timeout 30; #默认超时时间

    proxy_send_timeout 60;    # 发送超时

    proxy_read_timeout 60;    # 读取超时

    proxy_buffering on;            # 在proxy_buffering 开启的情况下,Nginx将会尽可能的读取所有的upstream端传输的数据到buffer,直到proxy_buffers设置的所有buffer们 被写满或者数据被读取完(EOF)

    proxy_buffers 4128k;          # proxy_buffers由缓冲区数量和缓冲区大小组成的。总的大小为number*size

    proxy_busy_buffers_size 256k;  # proxy_busy_buffers_size不是独立的空间,他是proxy_buffers和proxy_buffer_size的一部分。nginx会在没有完全读完后端响应的时候就开始向客户端传送数据,所以它会划出一部分缓冲区来专门向客户端传送数据(这部分的大小是由proxy_busy_buffers_size来控制的,建议为proxy_buffers中单个缓冲区大小的2倍),然后它继续从后端取数据,缓冲区满了之后就写到磁盘的临时文件中。

    proxy_buffer_size 32k;          # 用来存储upstream端response的header

    proxy_max_temp_file_size 256k; # response的内容很大的 话,Nginx会接收并把他们写入到temp_file里去,大小由proxy_max_temp_file_size控制。如果busy的buffer 传输完了会从temp_file里面接着读数据,直到传输完毕。

}

  然后需要我们在服务器上安装一下node,简单来说通过下载node官网的linux版node的二进制包,通过ftp传输到服务器。然后解压缩node包,然后配置node环境变量即可。这个就不多说了,大家可以百度一下。

  然后我们在服务器新建一个node的http服务,端口号3000、4000、5000,对,创建三个文件。是在服务器上哦,实际上跟在本地没啥区别。

  然后我们通过浏览器,你的ip/api/xxx就可以代理到3000端口的服务了。哦对,别忘了在服务器启动你的node服务。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 拆分数据库 数据库拆分环境规划主机名称 应用环境 外网地址 内网地址web01 ...
    徐弱西阅读 566评论 0 0
  • Nginx 的优势支持海量并发内存消耗少免费可以商用配置文件简单 搭建本地虚拟机环境yum -y install ...
    FConfidence阅读 1,251评论 0 0
  • 一 Nginx代理 1.1 Nginx代理概述 nginx是一款自由的、开源的、高性能的HTTP服务器和反向代理服...
    cuixiaoyan阅读 227评论 0 0
  • 1:下载nginx,我用的是latest版本 docker pull nginx 2:查看pull到本地的ngin...
    szgl_lucifer阅读 1,558评论 0 1
  • 序 本文主要解析一下nginx http模块配置参数。主要分socket相关参数,对clinet请求的buffer...
    go4it阅读 1,334评论 0 0