我们已经准备好了,你呢?

2024我们与您携手共赢,为您的企业形象保驾护航!

背景

前几天在学习负载均衡的时候,接触到了Nginx反向代理的概念。其实年初我就写过一篇关于Nginx反向实例的笔记。今天翻看的时候发现写得很草率,当时的编辑并不满意。作为一个处于尴尬后期的人,我索性删除并重新整理了这篇文章......

【1】概念解释

代理人实际上是一个中间人。 A和B可以直接连接,中间插入一个C。 C是中介。

一开始,大多数代理都是用来帮助内部网络访问外部网络的(比如HTTP代理),从内到外。

这里的“反向”一词实际上是指代理服务器接受相反方向的连接请求,然后将请求转发给内网的服务器;并将从服务器获得的结果返回给请求连接的客户端。这时候客户端对于外界来说就表现为服务器。当代理服务器可以代理外部网络上的主机并访问内部网络时,这种代理服务方式称为反向代理服务。

域名解析反向代理_反域名解析_域名解析反向

知乎用户解释图

在正向代理中,Proxy和Proxy属于同一个LAN,并且pair是透明的;在反向代理中,Proxy和Proxy属于同一个LAN,并且Pair是透明的。其实Proxy在这两种代理中所做的都是代表自己发送和接收请求和响应,但是从结构上来看,左右是互换的,所以后来出现的代理方式被称为反向代理。

图像

正向代理隐藏真实的客户端,反向代理隐藏真实的服务器。正向代理,代理对象是客户端;反向代理,代理对象是服务器。

[2] 反向代理的应用/优点

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

(1).解决网站服务器对外可见的问题; (2)。节省有限的IP地址资源。企业中的所有网站共享一个注册的IP地址。这些服务器被分配私有地址并使用虚拟主机。对外提供服务; (3)。保护真实的网络服务器。 Web 服务器对外界是不可见的。外网只能看到反向代理服务器,但反向代理服务器上没有真实数据。因此,Web服务器的安全性得到了保证。资源安全; (4)。加快了网站的访问速度,减轻了网络服务器的负担。反向代理具有缓存网页的功能。如果用户需要的内容在缓存中,可以直接从代理服务获取,减轻了Web服务器的负担。减轻了服务器的负载,加快了用户访问速度。 (5)。可实施安全过滤、流量控制、DDOS防御等一系列策略

[3]反向代理的实现

上面的潜台词是:用户直接与负载均衡设备通信,这也意味着用户在进行服务器域名解析时,解析得到的IP实际上是负载均衡的IP,而不是负载均衡设备的IP服务器。这样做的一个好处是,当新成员加入/移动服务器时,只需修改负载均衡的服务器列表,而不会影响现有服务。 (来自:知乎)

[4] Nginx反向代理操作1). nginx反向代理参考配置代码

        #设定负载均衡的服务器列表
        #weigth参数表示权值,权值越高被分配到的几率越大
        upstream Mos{
            server 192.168.1.106:80 weight=3;  
            server 192.168.1.143:80 weight=1;  
            #server localhost:80 weight=1; #本机
        }
        server {
            listen       80;
            server_name  localhost;
            index index.html index.htm index.php;
            root /mnt/web/hyicnoa;
            location / {
                if (!-e $request_filename){
                    rewrite ^/(.*)$ /index.php?s=/$1 last;
                    }
                proxy_pass http://Mos ;  #在这里设置一个代理,和upstream的名字一样
                }
            location ~ .*\.(php|php5)?$
            {
                #fastcgi_pass  unix:/tmp/php-cgi.sock;
                fastcgi_pass  127.0.0.1:9000;
                fastcgi_index index.php;
                include fastcgi.conf;
            }
            location ~ \.php$ 
            {
                proxy_pass  http://192.168.1.106; #此处限制访问 php 文件时,跳转到192.168.1.106 服务器解析
            }
            location ~ .*\.(js|css)?$
            {
            expires 1h;
            }
        }

2)。尖端

以上配置文件内容仅供参考。信息显示不完整。强烈建议不要直接修改nginx.conf文件。一般会根据类似以下代码在相应目录下创建一个新文件/etc/nginx/conf.d/*.conf;配置以避免重大配置影响。 ” “作为代理,您需要明确您使用代理的条件。具体做法需要参考nginx配置语法,重点关注正则表达式的限制。

3)。关注信息

location ~ \.php$ 
            {
                proxy_pass  http://192.168.1.106; #此处限制访问php文件时,跳转到192.168.1.106服务器解析
            }

当访问php文件时,内容会被192.168.1.106服务器解析,然后交给192.168.1.87:80显示给用户。

 location /zmPro/ {
        proxy_pass http://192.168.1.143; #当访问zmPro目录时,由该IP服务器进行解析
        }

4)。截屏

反域名解析_域名解析反向_域名解析反向代理

5).结果说明

另外,还有一些c++ Linux后端服务器开发的知识点可以分享:Linux、Nginx、MySQL、Redis、P2P、K8S、TCP/IP、协程、DPDK、音视频等。

域名解析反向代理_反域名解析_域名解析反向

有需要的朋友可以后台私信[1]获取学习视频。

二维码
扫一扫在手机端查看

本文链接:https://by928.com/7555.html     转载请注明出处和本文链接!请遵守 《网站协议》
我们凭借多年的网站建设经验,坚持以“帮助中小企业实现网络营销化”为宗旨,累计为4000多家客户提供品质建站服务,得到了客户的一致好评。如果您有网站建设、网站改版、域名注册、主机空间、手机网站建设、网站备案等方面的需求,请立即点击咨询我们或拨打咨询热线: 13761152229,我们会详细为你一一解答你心中的疑难。

项目经理在线

我们已经准备好了,你呢?

2020我们与您携手共赢,为您的企业形象保驾护航!

在线客服
联系方式

热线电话

13761152229

上班时间

周一到周五

公司电话

二维码
微信
线