nginx 反向代理

  关于什么是nginx以及为什么使用的理论网上还是有很多资料的,这里就不在赘述了。下面简单的说一下nginx的反向代理及实现
  一、反向代理:
    反向代理(Reverse Proxy)方式是指它根据客户端的请求,从后端的服务器(如Web服务器)上获取资源,然后再将这些资源返回给客户端。

  与正向代理不同,正向代理作为一个媒介将互联网上获取的资源返回给相关联的客户端,而反向代理是在服务器端(如Web服务器)作为代理使用,

  而不是客户端。

    客户端通过正向代理可以访问很多不同的资源,而反向代理是很多客户端都通过它访问不同后端服务器上的资源,而不需要知道这些后端服务器的存在,

  而以为所有资源都来自于这个反向代理服务器
  简而言之,反向代理是将代理服务器在架设在服务器端,将直接访问服务器的请求进行过滤转发操作。
  二、对于前端而言的用途:
  1、多端口的处理:如果多个应用都用到了相同的端口,可以通过反向代理,将不同的应用请求转发给不同的服务器端口。
  2、跨域的处理:(当然实际开发中有很多方式处理之)例如在本地进行开发时,可以通过nginx反向代理来解决,

    例如匹配该domain下统一指向另一个domain就可以在开发时免去麻烦。
  三、配置反向代理:
  假设一下应用场景,我需要在本地即localhost地址8080端口起一个node服务feedback,为了与beta环境域名保持一致(http://wwww.test.beta.com)

  保持一致。希望本地可以访问http://wwww.test.beta.com/feedback/路径。这就需要nginx的反向代理来解决了
  设置反向代理有两种方式:
  1、通过location来匹配不同请求进行转发: 这是一种比较简便的处理方式。
  更改本地的hosts文件。
  路径为‘//etc/hosts‘(mac下地址)
  配置127.0.0.1就是指向test.beta.com(忽略掉url的不同,说明问题就行。因为不想写那么长了。。)

  
  不过这样还是不满足我们需求的,因为域名默认访问的端口是80.这时候借助nginx匹配一下就行了
  思路就是,nginx监听80端口(即http://wwww.test.beta.com/的默认端口),当通过location来匹配到http://wwww.test.beta.com/feedback/时,

  将满足的请求指定访问procss为8080端口 。
  代码如下:

  

server {
        listen       80;
        server_name  prism.test.sankuai.com;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location /feedback {
            //指定匹配项访问该url即本地8080端口
            proxy_pass http://test.beta.com:8080;
        }

  2、实现原理相同,不过实现方式的差别。
  其他步骤相同,当匹配到相应的请求时。通过upstream模块来指定访问的地址和端口即可。
  代码如下:

    

    upstream prism.com {
        //指定地址和端口
        server 127.0.0.1:8080;
    }
    server {
        listen       80;
        server_name  prism.test.sankuai.com;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location /feedback {
            //匹配的请求分发到prism.com对应项
            proxy_pass http://prism.com;
        }    

  nginx的用处之多只能用没有做不到只有想不到来形容了。本文只是简单涉及一下反向代理的部分。以供自己参考和学习。

时间: 2024-12-17 06:34:00

nginx 反向代理的相关文章

Nginx反向代理的配置

Chapter: Nginx基本操作释疑 1. Nginx的端口修改问题 2. Nginx 301重定向的配置 3. Windows下配置Nginx使之支持PHP 4. Linux下配置Nginx使之支持PHP 5. 以源码编译的方式安装PHP与php-fpm 6. Nginx多站点配置的一次实践 7. Nginx反向代理的配置 Nginx 作为 web 服务器一个重要的功能就是反向代理.其实我们在前面的一篇文章<Nginx多站点配置的一次实践>里,用的就是 Nginx 的反向代理,这里简单再

nginx反向代理

1. 操作系统 CentOS 6.4 x86_64 2.软件版本 Nginx 1.4.2 3.实验拓扑 注,实验拓扑见下文. 4.安装yum源 1 2 3 [root @nginx ~]# rpm -ivh http://download.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm [[email protected] ~]# rpm -ivh http://download.fedoraproject.org/

Nginx反向代理、动静分离、负载均衡及rewrite隐藏路径详解(Nginx Apache MySQL Redis)–第三部分

Nginx反向代理.动静分离.负载均衡及rewrite隐藏路径详解 (Nginx Apache MySQL Redis) 楓城浪子原创,转载请标明出处! 更多技术博文请见个人博客:https://fengchenglangzi.000webhostapp.com 微信bh19890922 QQ445718526.490425557 三.Nginx动静分离及负载均衡 3.1 Nginx安装 请参考:https://fengchenglangzi.000webhostapp.com/?p=511 亦

Nginx反向代理,负载均衡,redis session共享,keepalived高可用

相关知识自行搜索,直接上干货... 使用的资源: nginx主服务器一台,nginx备服务器一台,使用keepalived进行宕机切换. tomcat服务器两台,由nginx进行反向代理和负载均衡,此处可搭建服务器集群. redis服务器一台,用于session的分离共享. nginx主服务器:192.168.50.133 nginx备服务器:192.168.50.135 tomcat项目服务器1:192.168.50.137 tomcat项目服务器2:192.168.50.139 redis服

Cento7+Nginx反向代理实现多域名跳转

近期比较忙,所以很少写文档了,最近有个项目组有多个环境需要做映射,所以就想到了通过Nginx反向代理实现多域名地址跳转,以致就总结了一下,其实说到代理我们大家都知道.最常见最常说的所谓的就是NAT,就是将内部多个地址请求通过代理转达到外部.这个就叫正向代理,那什么是反向代理呢-就是和正向代理相反:所以很好理解,Nginx反向代理功能很强大,可以通过一个nginx代理实现多个域名及不同的端口进行代理转发,所以在日常的运维中很有帮助.我们今天的演示是通过Nginx反向代理实现内部不同的多个域名转发.

Nginx反向代理、负载均衡、页面缓存、URL重写及读写分离详解

大纲 一.前言 二.环境准备 三.安装与配置Nginx 四.Nginx之反向代理 五.Nginx之负载均衡 六.Nginx之页面缓存 七.Nginx之URL重写 八.Nginx之读写分离 注,操作系统为 CentOS 6.4 x86_64 , Nginx 是版本是最新版的1.4.2,所以实验用到的软件请点击这里下载:http://yunpan.cn/QXIgqMmVmuZrm 一.前言 在前面的几篇博文中我们主要讲解了Nginx作为Web服务器知识点,主要的知识点有nginx的理论详解.ngin

nginx反向代理tomcat提示13 permission denied while connecting to upstream

nginx反向代理tomcat提示13 permission denied while connecting to upstream,网上很多都是说13 permission denied while reading to upstream,这是两个完全不同的错误,我遇到的如下截图: 查看selinux日志发现错误: 后来发现是selinux的问题,于是先关掉selinux:setenforce 0:然后再访问果然好使. 于是启用selinux,再执行下面的命令,修改selinux的值: set

Web服务之Nginx反向代理与负载均衡

一.代理 正向代理: 正向代理是一个位于客户端和目标服务器之间的服务器,为了从目标服务器取得内容,客户端向代理发送一个请求并指定目标服务器,然后代理向目标服务器转交请求并将获得的内容返回给客户端.客户端必须要进行一些特别的设置才能使用正向代理. 作用: 访问无法访问的服务器(翻墙,懂得) 加速访问目标服务器(链路加速) Cache缓存(访问加速) 实现客户端访问授权 隐藏访问者 反向代理: 反向代理(Reverse Proxy)方式是指以代理服务器来接受internet上的连接请求,然后将请求转

Php学习之nginx反向代理详解

本文和大家分享的主要是php中nginx反向代理相关内容,一起来看看吧,希望对大家学习php有所帮助. 一.概念理解 1.代理服务器 代理服务器,客户机在发送请求时,不会直接发送给目的主机,而是先发送给代理服务器,代理服务接受客户机请求之后,再向主机发出,并接收目的主机返回的数据,存放在代理服务器的硬盘中,再发送给客户机. 2.为什么要使用代理服务器 ①提高访问速度 由于目标主机返回的数据会存放在代理服务器的硬盘中,因此下一次客户再访问相同的站点数据时,会直接从代理服务器的硬盘中读取,起到了缓存