前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Nginx 反向代理

Nginx 反向代理

作者头像
Demo_Null
发布2020-09-28 11:59:41
9220
发布2020-09-28 11:59:41
举报
文章被收录于专栏:Java 学习Java 学习

1.1 概述

1.1.1 代理

  在 Java 设计模式中,代理模式指:给某个对象提供一个代理对象,并由代理对象控制原对象的引用。简单来说就是我想要买一套房,但是这需要我自己去跑楼盘,看房子,比较麻烦,然后我就去做中介的朋友哪里,让他帮我搞定,我付钱就好了。这就是代理的思想,娱乐圈中的经纪人也可以理解为代理。即我们想做什么,但又不想直接去做,那么这时候就找另外一个人帮我们去做,这个就是代理。

1.1.2 正向代理

  正向代理意思是一个位于客户端和原始服务器(origin server)之间的服务器,为了从原始服务器取得内容,客户端向代理发送一个请求并指定目标(原始服务器),然后代理向原始服务器转交请求并将获得的内容返回给客户端。客户端才能使用正向代理。就好比在国内无法使用 Google 服务,需要借助工具才能访问,这里用的就是正向代理。

在这里插入图片描述
在这里插入图片描述

1.1.3 反向代理

  反向代理服务器位于用户与目标服务器之间,但是对于用户而言,反向代理服务器就相当于目标服务器,即用户直接访问反向代理服务器就可以获得目标服务器的资源。同时,用户不需要知道目标服务器的地址,也无须在用户端作任何设定。反向代理服务器通常可用来作为 Web 加速,即使用反向代理作为 Web 服务器的前置机来降低网络和服务器的负载,提高访问效率。

在这里插入图片描述
在这里插入图片描述

1.2 使用 http 模块反向代理

 proxy_pass 指令属于 ngx_http_proxy_module 模块,此模块可以将请求转发到另一台服务器。  proxy_set_header:proxy_set_header host host; 当后端 Web 服务器上也配置有多个虚拟主机时,需要用该 Header 来区分反向代理哪个主机名;proxy_set_header X-Forwarded-For remote_addr;如果后端 Web 服务器上的程序需要获取用户 IP,从该 Header 头获取。

代码语言:javascript
复制
server {
	listen       80;
	server_name  localhost;
	
	location / {
		proxy_pass http://47.103.1.4.205:6666;
		index  index.html index.htm index.jsp;
	}
}

1.3 使用 stream 模块反向代理

  有些 Nginx 默认安装的时候无法加载 stream 模块,需要在安装时 ./configure 参数里加上 –with-stream 即 ./configure --with-stream。在配置文件中怎加 stream 模块,stream 模块位于与 http 模块相同的层次,stream 在使用上与 http 相近,只需配置 upstream 然后再配置 server 即可,代理 mysql 只需用反向代理服务器的一个端口去代理数据库服务器(集群)的端口即可,文件下载亦然。

代码语言:javascript
复制
// stream 模块,就跟 http 模块一样 
stream { 
	
	upstream ssh {
		server smtp.qq.com;
	}
	// 里面可以有多个监听服务,配置监听端口和代理的 ip 和端口就可以进行 tcp 代理了。 
	server { 
		listen 9600;
		proxy_pass ssh;
		proxy_connect_timeout 1h;
		proxy_timeout 1h;
	}
}
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020-09-22 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1.1 概述
    • 1.1.1 代理
      • 1.1.2 正向代理
        • 1.1.3 反向代理
        • 1.2 使用 http 模块反向代理
        • 1.3 使用 stream 模块反向代理
        相关产品与服务
        轻量应用服务器
        轻量应用服务器(TencentCloud Lighthouse)是新一代开箱即用、面向轻量应用场景的云服务器产品,助力中小企业和开发者便捷高效的在云端构建网站、Web应用、小程序/小游戏、游戏服、电商应用、云盘/图床和开发测试环境,相比普通云服务器更加简单易用且更贴近应用,以套餐形式整体售卖云资源并提供高带宽流量包,将热门软件打包实现一键构建应用,提供极简上云体验。
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档