设为首页 - 加入收藏 玉林站长网 (http://www.0775zz.com)- 国内知名站长资讯网站,提供最新最全的站长资讯,创业经验,网站建设等!
热搜: 数据 华为 vlan
当前位置: 首页 > 另小三合皇 > 外闻 > 正文

一段万能的Nginx接口实现反向代理配置值得收藏!

发布时间:2019-05-11 14:32 所属栏目:[外闻] 来源:今日头条
导读:什么是代理服务器 代理服务器,客户机在发送请求时,不会直接发送给目的主机,而是先发送给代理服务器,代理服务接受客户机请求之后,再向主机发出,并接收目的主机返回的数据,存放在代理服务器的硬盘中,再发送给客户机。 为什么要使用代理服务器 1)提高

?什么是代理服务器

代理服务器,客户机在发送请求时,不会直接发送给目的主机,而是先发送给代理服务器,代理服务接受客户机请求之后,再向主机发出,并接收目的主机返回的数据,存放在代理服务器的硬盘中,再发送给客户机。

为什么要使用代理服务器

1)提高访问速度

由于目标主机返回的数据会存放在代理服务器的硬盘中,因此下一次客户再访问相同的站点数据时,会直接从代理服务器的硬盘中读取,起到了缓存的作用,尤其对于热门站点能明显提高请求速度。

2)防火墙作用

由于所有的客户机请求都必须通过代理服务器访问远程站点,因此可在代理服务器上设限,过滤某些不安全信息。

3)通过代理服务器访问不能访问的目标站点

互联网上有许多开发的代理服务器,客户机在访问受限时,可通过不受限的代理服务器访问目标站点,通俗说,我们使用的翻墙浏览器就是利用了代理服务器,虽然不能出国,但也可直接访问外网。

一段万能的Nginx接口实现反向代理配置值得收藏!

反向代理 VS 正向代理

1、什么是正向代理?什么是反向代理?

正向代理,架设在客户机与目标主机之间,只用于代理内部网络对Internet的连接请求,客户机必须指定代理服务器,并将本来要直接发送到Web服务器上的http请求发送到代理服务器中。

反向代理服务器架设在服务器端,通过缓冲经常被请求的页面来缓解服务器的工作量,将客户机请求转发给内部网络上的目标服务器;并将从服务器上得到的结果返回给Internet上请求连接的客户端,此时代理服务器与目标主机一起对外表现为一个服务器。

2、反向代理有哪些主要应用?

现在许多大型web网站都用到反向代理。除了可以防止外网对内网服务器的恶性攻击、缓存以减少服务器的压力和访问安全控制之外,还可以进行负载均衡,将用户请求分配给多个服务器。

作为前端开发,每次调试接口,把代码发到测试服务器,是很费时费事的一件事情。

为了提高效率,想到了nginx反向代理来解决这一问题。

接口地址:

  1. test.com?

访问地址:

  1. localhost?

最核心的问题就是,登录时,无法写入cookie的问题,为了解决这个问题,走了不少弯路。

  1. worker_processes?1;?
  2. events?{?
  3. ?worker_connections?1024;?
  4. }?
  5. http?{?
  6. ?include?mime.types;?
  7. ?default_type?application/octet-stream;?
  8. ?sendfile?on;?
  9. ?keepalive_timeout?10;?
  10. ?server?{?
  11. ?listen?80;?
  12. ?server_name?localhost;?
  13. ??
  14. ?location?=/?{?
  15. ?add_header?X-Frame-Options?SAMEORIGIN;?
  16. ?root?D:/workspace/;?
  17. ?index?index.html;?
  18. ?}?
  19. ??
  20. ?location?~*?.(html|htm|gif|jpg|jpeg|bmp|png|ico|txt|js|css|swf|woff|woff2|ttf|json|svg|cur|vue|otf|eot)$?{?
  21. ?charset?utf-8;?
  22. ?root?D:/workspace/;?
  23. ?expires?3d;?
  24. ?}?
  25. ??
  26. ?location?=?/socket/v2?{?
  27. ?proxy_pass?http://test.com;?
  28. ?proxy_redirect?off;?
  29. ?proxy_http_version?1.1;?
  30. ?proxy_set_header?Upgrade?$http_upgrade;?
  31. ?proxy_set_header?Connection?"upgrade";?
  32. ?proxy_set_header?Host?test.com;?
  33. ?proxy_set_header?X-Real-IP?$remote_addr;?
  34. ?proxy_set_header?REMOTE-HOST?$remote_addr;?
  35. ?proxy_set_header?X-Forwarded-For?$proxy_add_x_forwarded_for;?
  36. ?proxy_connect_timeout?30;?
  37. ?proxy_send_timeout?30;?
  38. ?proxy_read_timeout?60;?
  39. ?proxy_buffer_size?256k;?
  40. ?proxy_buffers?4?256k;?
  41. ?}?
  42. ??
  43. ?location?/?{?
  44. ?proxy_pass?http://test.com;?
  45. ?proxy_set_header?Cookie?$http_cookie;?
  46. ?proxy_cookie_domain?test.com?localhost;?
  47. ?proxy_set_header?X-Forwarded-For?$proxy_add_x_forwarded_for;?
  48. ?proxy_set_header?Host?test.com;?
  49. ?proxy_set_header?X-Real-IP?$remote_addr;?
  50. ?proxy_set_header?REMOTE-HOST?$remote_addr;?
  51. ?}?
  52. ?}?
  53. }?

核心代码在三行代码上:

一段万能的nginx接口实现反向代理配置(推荐)值得收藏!

具体解释我也是一知半解:

  • 第一个是携带cookie,
  • 第二个设置cookie 的 domain
  • 第三个 设置真实的host

重要提示:以上3个的顺序不要颠倒,否则代理失败,我也不知道为什么。

如何在手机上调试呢?

手机上不可能直接访问localhost,可以把手机和电脑连接到同一个网段,使用电脑的ip进行访问。

但是这里只代理了localhost,并没有代理电脑的ip

【免责声明】本站内容转载自互联网,其相关言论仅代表作者个人观点绝非权威,不代表本站立场。如您发现内容存在版权问题,请提交相关链接至邮箱:bqsm@foxmail.com,我们将及时予以处理。

网友评论
推荐文章