首页 > 编程知识 正文

nginx代理客户端,nginx反向代理原理

时间:2023-05-04 22:29:20 阅读:17105 作者:2534

前言:最近我把代理商搞垮了。 将创建内部网yum源代理店。 我从来没有接触过代理商之类的东西。 让我们把记录揉捏一下。

另一方面,当前下载源代码,Nginx一般使用源代码进行编译,没有现成的rpm软件包。 下载地址: http://Nginx.org/download/里面有各版本的nginx,随便找个版本下载就可以了。 尽量使用新版本,至少错误少,功能支持也多。

二、编译Nginx需要依赖一些组件,并提前安装。 例如,如果使用pcre、zlib和https相关模块,则还必须安装openssl组件。 如果是CentOS系统,直接用yum命令安装就可以了。 方便快捷。

yum install openssl* pcre* zlib*依赖于组件安装后,可以开始编译Nginx。 解压缩Nginx压缩包,进入目录,执行统一的编译指令。

如果需要使用./configuremakemakeinstallssl模块,请在配置时添加SSL模块,

./configure-- with-http _ SSL _ modulemakemakeinstall然后确定。

Nginx的默认安装根是/usr/local/nginx,因此其命令和配置文件都在此目录中。 为方便起见,可以将Nginx命令路径添加到环境变量中,以防止在绝对路径中调用命令。

导出路径=$ path :/usr/local/nginx/sbin三,代理一般分为前向代理和反向代理。

正向代理是位于客户端和原始服务器之间的服务器,为了从原始服务器检索内容,客户端向代理发送请求,指定目标(原始服务器),然后

反向代理实际工作方式是代理服务器接受网络上的连接请求。 将请求转发到内部网络上的服务器,并将服务器获得的结果返回给请求网络连接的客户端。 在这种情况下,代理服务器在外部表示为服务器。

对于正向代理,代理服务器和客户端可能位于同一LAN中。 在反向代理中,代理服务器和源站位于同一局域网中。

四.构成正向代理Nginx的配置文件为/usr/local/nginx/conf/nginx.conf。 通常,我们不直接在此文件中部署代理,而是使用include方法使我们的配置独立于其他配置文件。

. http { . keepalive_timeout 65; include yumproxy.conf; //添加自己的配置文件}现在,可以在yumproxy.conf文件中设置代理了。

前锋代理配置很简单,但实际上两个句子就可以了。

服务器{ resolver 192.168.0.1; location/{ proxy _ pass 3358 $ http _ host $ request _ uri; 其中,resolver表示DNS服务器location与用户访问的资源匹配,并且被进一步传递和处理,并且以正则表达式表示proxy_pass

例如,对于http://nginx.org/download/nginx-1.6.3.tar.gz,$http_host=nginx.org,$ request _ u u uri=/downn

也可以不设置监听端口号。 默认情况下,nginx监听80个端口。 除非更改监听端口,否则可以在$http_host字段中指定。

可以看到,对于正向代理,只需对用户的访问执行一次传输,而不执行其他操作。

让我们实际验证一下这个正向代理是否有效。 我找了两台虚拟机。 一个在nginx上构建正向代理,另一个使用此代理访问。 以百度为例。

首先验证nginx服务是否已启动,然后使用netstat命令验证监听端口。

然后使用curl命令设置委派以访问百度主页。

访问成功。

五.反向代理的配置对反向代理也很简单,如下。

server { server _ namewww.Baidu.com; location/{ proxy _ pass 3358 www.Baidu.com/}其中,$request_uri字段用于匹配用户访问资源的主机名。listen字段也表示同样传递的访问。

与正向代理不同,反向代理指定特定的网址。 其实我限定了访问的对象。 指定用户访问www.baidu.com时,只能去百度。 如果用新浪的网站替换proxy_pass的网站,就会出现去新浪访问百度的用户。 这就是代理劫持。 server_name还可以匹配多个主机名,可以用空格分隔,也可以用正则表达式匹配主机名。

但是,请特别注意。server_name,因此将第一个服务器设置为块页。

实际验证一下吧。 先如上配置反向代理,访问百度,恢复正常,注意百度的ETAG,

然后访问新浪,

这个时候,我们想访问的是新浪,但实际上返回的是百度。 其中,将空服务器配置添加到上面的反向代理中,并仅返回404错误。

在这个时候,结果和我们的预想一致。 所有不匹配的都到了第一个服务器,返回到404,控制哪些站点可以访问,哪些不可以访问,但这显然不是nginx应该考虑的。 因为nginx的优势不是控制访问,而是squid的ACL比这更明智的选择。 这是推后。

由此可见,在前向代理中,Nginx无法控制用户访问的资源,只能对所有访问进行转发。 如果内部网需要管理网络访问,这是绝对不可能的。 与反向代理相比,可以控制用户访问的网络资源。 只有代理才允许访问的站点,不允许访问的站点即使去代理服务器也不能离开。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。