如何运用Nginx搭建代理服务器?

如何运用Nginx搭建代理服务器?,第1张

如何实现Nginx的反向代理?

这句话什么意思?

意思是说当客户机来访问服务器的时候,服务器本身并不出面接待,而是将客户的请求转高给手下的子服务器(小弟)负责接待。

比如:你访问wwwbaiducom,其实并不时百度总服务器接待的你,而是百度的代理服务器接待的你,不过他们的服务是一样的,提供同样的页面;

如是搭建Nginx服务才能实现这样的效果呢?

搭建一个最简单,最基础nginx代理服务器,需要一台代理服务,两台子服务器,XX台客户机来作验证;

操作流程如下:

第一步、服务器和客户机配好IP地址,其中Nginx代理服务器需要配置两张网卡,两个IP地址,一个和客户机通信,一个和子服务器通信;

代理服务器与客户机和子服务器都分别配置同网段IP地址;

例如:

代理服务器:19216845    19216825

子服务器         :1921682100    1921682200

客户机    :192168410

这样配置的好处是: 可以负载均衡,保障用户的访问体验,保障上网速度,同时也保障了,即便有一台服务器坏掉了,另一台服务可以接待用户访问;

第二步、代理服务器上安装Nginx服务软件,两台子服务器上安装HTTPD服务并写入相应的网页,然后启动服务;

yum  -y install  httpd        ##安装httpd服务;

echo  "罗贵"  >    /var/www/html/indexhtml       ##写一个简单的网页

/configure    --user=nginx    --group=nginx   --with-http_ssl_module

make   &&   make   install     ##编译安装Nginx

第三步、修改Nginx的配置文件;

vim   /usr /local /nginx /conf /nginxconf

http   {      ##在文件中找到http开头的行,并在http下面随意找两行添加下面两行的内容;

            upstream    luogui    {        ##luogui是集群名字,可以自由定义,upstream 上游的意思;翻译过来就是在上游建立一个名字为luogui的集群,集群中包含下述IP地址;

                      server   1921682100:80;

                      server    1921682200:80;

}

server    {

        listen        80;

        server_name   wwwluoguicom;     ##域名,可以自由定义;

location   ^/php$  {    ##匹配网页地址的意思,匹配以 / 开头php结尾的网页文件;

        proxy_pass  http://luogui;        ##通过proxy代理服务器将用户的请求转发给luogui集群服务器;(注:优先级最高,系统会优先处理这条命令)

             }

                             }

第四步、测试效果;

firefox   http://19216845  或者  本地测试   curl  http://19216845 

结果应该是暂停任何一台子服务器,客户机访问网页都没有问题;

以上

                                                    (EDN)

祝:开心!

罗贵

2019-04-05于深圳

理论上是没有区别的,如果非要说区别,就是域名是需要通过解析指向的ip后才会去访问ip上的资源,而直接访问ip地址是不需要解析步骤的,也就是说直接通过ip访问,比通过域名访问速度快些。

Nginx是一个高性能的Web和反向代理服务器,它具有有很多非常优越的特性:

作为负载均衡服务器 :Nginx既可以在内部直接支持Rails和PHP,也可以支持作为HTTP代

理服务器对外进行服务。Nginx用C编写,不论是系统资源开销还是CPU使用效率都比

Perlbal要好的多。

作为邮件代理服务器 :Nginx同时也是-一个非常优秀的邮件代理服务器(最早开发这个产品的目的之-也是作为邮件代理服务器),Lastfm 描述了成功并且美妙的使用经验。

Nginx安装非常的简单,配置文件非常简洁(还能够支持per语法),Bugs非 常少的服务器:

Nginx启动特别容易,并且几乎可以做到724不间断运行,即使运行数个月也不需要重新启

动。你还能够在不间断服务的情况下进行软件版本的升级。

处理静态文件,索引文件以及自动索引;

反向代理加速(无缓存), 简单的负载均衡和容错;

FastCGI,简单的负载均衡和容错;

模块化的结构。过滤器包括gzipping, byte ranges, chunked responses,以及SSiI-ilter 。

在SSI过滤器中,到同一个proxy或者FastCGI的多个子请求并发处理;

SSL和TLSSNI支持;

使用外部HTTP认证服务器重定向用户到IMAP/POP3后端;

使用外部HTTP认证服务器认证用户后连接重定向到内部的SMTP后端;

认证方法:

POP3: POP3 USER/PASS, APOP, AUTH LOGIN PL AIN CRAM-MD5;

IMAP: IMAP LOGIN;

SMTP: AUTH LOGIN PLAIN CRAM-MD5;

SSL支持;

在IMAP和POP3模式下的STARTTLS和STLS支持;

FreeBSD 3x, 4x, 5x, 6x i386; FreeBSD 5x, 6x amd64;

Linux22, 24, 26 i386; Linux 26 amd64;

Solaris 8 i386; Solaris 9 i386 and sun4u; Solaris 10 i386;

MacOS X (104) PPC;

一个主进程和多个工作进程。工作进程是单线程的,且不需要特殊授权即可运行;

kqueue (FreeBSD 41+), epoll (Linux 26+), t signals (Linux 2219+), /dev/poll (Solaris711/99+), select,以及poll支持;

kqueue支持的不同功能包括EV_ _CLEAR, EV_ DISABLE (临时禁止事件),NOTE_ _LOWAT, EV_ EOF, 有效数据的数目,错误代码;

sendfile (FreeBSD 31+), sendfile (Linux 22+), sendfile64 (Linux 2421+),和sendfilev(Solaris 8 7/01+)支持;

输入过滤(FreeBSD 41+)以及TCP_ _DEFER_ ACCEPT (Linux24+)支持;

10,000 非活动的HTTP keep-alive连接仅需要25M内存。

最小化的数据拷贝操作;

基于IP和名称的虚拟主机服务;

Memcached的GET接口;

支持keep-alive和管道连接;

灵活简单的配置;

重新配置和在线升级而无须中断客户的工作进程;

可定制的访问日志,日志写入缓存,以及快捷的日志回卷;

4xx-5xx错误代码重定向;

基于PCRE的rewrite重写模块;

基于客户端IP地址和HTTP基本认证的访问控制;

PUT, DELETE,和MKCOL方法;

支持FLV (Flash视频) ;

带宽限制;

内嵌的perl

通过aio read() 1 aio _write() 的套接字工作的实验模块,仅在FreeBSD下。

对线程的实验化支持,FreeBSD 4x的实现基于rfork()

Nginx主要的英语站点是htp://sysoevru/en/

本人有自己整理大数据学习的功课,闲置着也无用了。

获取方式:

私信方式:

第一步,点击头像。

第二部:头像旁边有一个私信按钮,发送{学习资料}即可!

Nginx (engine x) 是一个高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务。Nginx是由伊戈尔·赛索耶夫为俄罗斯访问量第二的Ramblerru站点(俄文:Рамблер)开发的,第一个公开版本010发布于2004年10月4日。

其将源代码以类BSD许可证的形式发布,因它的稳定性、丰富的功能集、简单的配置文件和低系统资源的消耗而闻名。2011年6月1日,nginx 104发布。

反向代理的优势:

1、加快了对内部服务器的访问速度

在内部服务器前放置两台反向代理服务器,分别连接到教育网和公网,这样公网用户就可以直接通过公网线路访问学校服务器,从而避开了公网和教育网之间拥挤的链路。同时反向代理服务器的缓存功能也加快了用户的访问速度。

2、节约了有限的IP资源

校园网内部服务器除使用教育网地址外,也会采用公网的IP地址对外提供服务,公网分配的IP地址数目是有限的,如果每个服务器有分配-个公网地址,那是不可能的,通过反向代理技术很好地解决了IP地址不足的问题。

Nginx在不依赖第三方模块的前期下,主要的功能有:

①、正向代理

正向代理,是在用户端的。比如需要访问某些国外网站,我们可能需要购买***。并且***是在我们的用户浏览器端设置的(并不是在远端的服务器设置),浏览器先访问***地址,***地址转发请求,并最后将请求结果原路返回来。

②、反向代理

客户端向服务器发送请求时,会首先经过Nginx服务器,由服务器将请求分发到相应的WEB服务器。正向代理是代理客户端,而反向代理则是代理服务器,Nginx在提供反向代理服务方面,通过使用正则表达式进行相关配置,采取不同的转发策略,配置相当灵活,而且在配置后端转发请求时,完全不用关心网络环境如何,可以指定任意的IP地址和端口号,或其他类型的连接、请求等。

③、负载均衡

当网站的访问量达到一定程度后,单台服务器不能满足用户的请求时,需要用多台服务器集群可以使用nginx做反向代理。并且多台服务器可以平均分担负载,不会因为某台服务器负载高宕机而某台服务器闲置的情况

④、动静分离

在Web开发中,通常来说,动态资源其实就是指那些后台资源,而静态资源就是指HTML,JavaScript,CSS,img等文件。

一般来说,都需要将动态资源和静态资源分开,将静态资源部署在Nginx上,当一个请求来的时候,如果是静态资源的请求,就直接到nginx配置的静态资源目录下面获取资源,如果是动态资源的请求,nginx利用反向代理的原理,把请求转发给后台应用去处理,从而实现动静分离。

在使用前后端分离之后,可以很大程度的提升静态资源的访问速度,同时在开过程中也可以让前后端开发并行可以有效的提高开发时间,也可以有些的减少联调时间。

本文介绍NGINX缓存机制,配置和参数说明。

如图所示,nginx缓存,可以在一定程度上,减少源服务器的处理请求压力。因为静态文件(比如css,js, )中,很多都是不经常更新的。nginx使用proxy_cache将用户的请求缓存到本地一个目录。下一个相同请求可以直接调取缓存文件,就不用去请求服务器了。毕竟,IO密集型服务的处理是nginx的强项。

Nginx的缓存加速功能是由proxy_cache(用于反向代理和静态缓存)和fastcgi_cache(PHP动态缓存)两个功能模块完成。

Nginx缓存特点:

先上个例子:

因为我是在一台服务器上做试验,所以用了两个端口 80 和 90 进行模拟两台服务器之间的交互。

接下来讲一下配置项:

这里我设置了 、 css 、 js 静态资源进行缓存。

当用户输入 http://wangxiaokaivip 域名时,解析得到 ip:port 的访问地址。 port 默认为80。所以页面请求会被当前server截取到,进行请求处理。

当解析到上述文件名结尾的静态资源,会到缓存区获取静态资源。

如果获取到对应资源,则直接返回数据。

如果获取不到,则将请求转发给 proxy_pass 指向的地址进行处理。

这里直接处理 90 端口接受到的请求,到服务器本地目录 /mnt/blog 下抓取资源进行响应。

细心的读者应该发现,我在第二段例子里,留了个彩蛋 add_header wall "hey!guys!give me a star" 。

add_header 是用于在报头设置自定义的信息。

所以,如果缓存有效的话,那么静态资源返回的报头,一定会带上这个信息。

(1)Nginx系列教程(3)nginx缓存服务器上的静态文件

https://yqaliyuncom/articles/752967

(2)proxy_cache

nginx 反向代理之 proxy_cache https://wwwcnblogscom/yyxianren/p/10832172html

(3)Nginx使用upstream负载均衡和proxy_cache缓存实现反向代理

https://blog51ctocom/13770206/2163952

DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
网站模板库 » 如何运用Nginx搭建代理服务器?

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情