Nginx正反向代理、负载均衡等功能实现配置

系统环境:

VirtualBox Manager

Centos6.4

nginx1.10.0

IP对应的机器名:

IP                机器名               角色名

10.0.0.139      [elk]                     client

10.0.0.136      [lvs-master]        nginx server

10.0.0.137      [kvm]                   web server 1

10.0.0.111      [lvs-backup]        web server 2

一、正向代理

概念这里不在介绍,可以参考此文http://my.oschina.net/yoyoko/blog/147414。

1.1 环境介绍

1.2 配置介绍

Nginx server:(内网地址:10.0.0.136,外网地址:172.16.27.64)

使用VirtualBox Manager虚拟出双网卡。

[plain] view plain copy

  1. [[email protected] conf.d]# ifconfig
  2. eth0      Link encap:Ethernet  HWaddr 08:00:27:30:56:99
  3. inet addr:10.0.0.136  Bcast:10.255.255.255  Mask:255.0.0.0
  4. inet6 addr: fe80::a00:27ff:fe30:5699/64 Scope:Link
  5. UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
  6. RX packets:891978 errors:0 dropped:0 overruns:0 frame:0
  7. TX packets:9509 errors:0 dropped:0 overruns:0 carrier:0
  8. collisions:0 txqueuelen:1000
  9. RX bytes:81841095 (78.0 MiB)  TX bytes:13339058 (12.7 MiB)
  10. eth1      Link encap:Ethernet  HWaddr 08:00:27:55:4C:72
  11. inet addr:172.16.27.64  Bcast:172.16.27.255  Mask:255.255.255.0
  12. inet6 addr: fe80::a00:27ff:fe55:4c72/64 Scope:Link
  13. UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
  14. RX packets:913671 errors:0 dropped:0 overruns:0 frame:0
  15. TX packets:22712 errors:0 dropped:0 overruns:0 carrier:0
  16. collisions:0 txqueuelen:1000
  17. RX bytes:109369858 (104.3 MiB)  TX bytes:1903855 (1.8 MiB)
  18. lo        Link encap:Local Loopback
  19. inet addr:127.0.0.1  Mask:255.0.0.0
  20. inet6 addr: ::1/128 Scope:Host
  21. UP LOOPBACK RUNNING  MTU:16436  Metric:1
  22. RX packets:36222 errors:0 dropped:0 overruns:0 frame:0
  23. TX packets:36222 errors:0 dropped:0 overruns:0 carrier:0
  24. collisions:0 txqueuelen:0
  25. RX bytes:3899937 (3.7 MiB)  TX bytes:3899937 (3.7 MiB)

[plain] view plain copy

  1. [[email protected] conf.d]# cat zxproxy.conf
  2. server {
  3. listen       80;   #监听的端口
  4. server_name  10.0.0.136;  #server的内容地址,与client需要网络互通
  5. resolver 172.16.5.1;   #DNS,这个是DNS,访问外网
  6. location / {
  7. proxy_pass http://$http_host$request_uri;   #$http_host和$request_uri是nginx系统变量,不需要替换,保持原样
  8. }

Nginx client:

只有一个内网网卡,通过访问Nginx server去访问internet,其实FQ、肉鸡、之类的俗称就是这个原理。

[plain] view plain copy

  1. [[email protected] ~]# ifconfig
  2. eth0      Link encap:Ethernet  HWaddr 08:00:27:72:8C:3B
  3. inet addr:10.0.0.137  Bcast:10.255.255.255  Mask:255.0.0.0
  4. inet6 addr: fe80::a00:27ff:fe72:8c3b/64 Scope:Link
  5. UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
  6. RX packets:1462448 errors:0 dropped:0 overruns:0 frame:0
  7. TX packets:21130 errors:0 dropped:0 overruns:0 carrier:0
  8. collisions:0 txqueuelen:1000
  9. RX bytes:145119904 (138.3 MiB)  TX bytes:2814635 (2.6 MiB)
  10. lo        Link encap:Local Loopback
  11. inet addr:127.0.0.1  Mask:255.0.0.0
  12. inet6 addr: ::1/128 Scope:Host
  13. UP LOOPBACK RUNNING  MTU:16436  Metric:1
  14. RX packets:60800 errors:0 dropped:0 overruns:0 frame:0
  15. TX packets:60800 errors:0 dropped:0 overruns:0 carrier:0
  16. collisions:0 txqueuelen:0
  17. RX bytes:4831102 (4.6 MiB)  TX bytes:4831102 (4.6 MiB)
  18. [[email protected] ~]# wget www.baidu.com
  19. --2016-06-08 13:02:08--  http://www.baidu.com/
  20. 正在解析主机 www.baidu.com... 失败:域名解析暂时失败。     #无法访问百度
  21. wget: 无法解析主机地址 “www.baidu.com”
  22. [[email protected] ~]# export http_proxy=http://10.0.0.136:80 #设定环境变量,指定代理服务器的ip及端口
  23. [[email protected] ~]# wget www.baidu.com      #可以成功访问百度了
  24. --2016-06-08 13:08:15--  http://www.baidu.com/
  25. 正在连接 10.0.0.136:80... 已连接。
  26. 已发出 Proxy 请求,正在等待回应... 200 OK
  27. 长度:未指定 [text/html]
  28. 正在保存至: “index.html.1”
  29. [ <=>                                                  ] 99,762      --.-K/s   in 0.07s
  30. 2016-06-08 13:08:16 (1.36 MB/s) - “index.html.1” 已保存 [99762]

二、反向代理

介绍文章同正向代理

2.1 环境介绍

1.下面来看下测试页面:

[python] view plain copy

  1. [[email protected] ~]# yum install httpd
  2. [[email protected] ~]# echo "<html>10.0.0.137</html>" > /var/www/html/index.html
  3. [[email protected] ~]# yum install httpd
  4. [[email protected]~]# echo "<html>10.0.0.111</html>" > /var/www/html/index.html

2.看下效果:

[plain] view plain copy

  1. [[email protected] html]# curl 10.0.0.111
  2. <html>
  3. 10.0.0.111
  4. </html>
  5. [[email protected] html]# curl 10.0.0.137
  6. <html>
  7. 10.0.0.137
  8. </html>
  9. ##都成功了,我们进行下一步。

2.2 配置介绍

[plain] view plain copy

  1. [[email protected] conf.d]# ls         #nginx目录下的配置文件
  2. zxproxy.conf
  3. [[email protected] conf.d]# cp zxproxy.conf fxproxy.conf  #复制一份,之前是正向代理,现在是反向代理
  4. [[email protected] conf.d]# mv zxproxy.conf zxproxy.conf.bak

[python] view plain copy

  1. [[email protected] conf.d]# cat fxproxy.conf
  2. server {
  3. listen       80;
  4. server_name  10.0.0.136; #根据环境介绍,nginx server ip
  5. location / {
  6. proxy_pass http://10.0.0.137; #被代理的服务器ip
  7. }
  8. #proxy_pass: proxy_pass URL
  9. #默认值:NO
  10. #使用字段:location,location中的if字段
  11. #这个参数设置被代理服务器的地址和被映射的URL,地址可以使主机名、域名、IP加端口的模式,如:
  12. #proxy_pass    http://192.168.1.6:8099/linuxtone/;
  13. [[email protected] conf.d]# service nginx restart #重启加载配置

看下结果:

[plain] view plain copy

  1. #先登录到实验环境中的clinet机上,ip如下:
  2. [[email protected] ~]# ifconfig
  3. eth0      Link encap:Ethernet  HWaddr 08:00:27:3D:40:40
  4. inet addr:10.0.0.139  Bcast:10.255.255.255  Mask:255.0.0.0
  5. inet6 addr: fe80::a00:27ff:fe3d:4040/64 Scope:Link
  6. UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
  7. RX packets:2618345 errors:0 dropped:0 overruns:0 frame:0
  8. TX packets:247926 errors:0 dropped:0 overruns:0 carrier:0
  9. collisions:0 txqueuelen:1000
  10. RX bytes:336182790 (320.6 MiB)  TX bytes:35145157 (33.5 MiB)
  11. lo        Link encap:Local Loopback
  12. inet addr:127.0.0.1  Mask:255.0.0.0
  13. inet6 addr: ::1/128 Scope:Host
  14. UP LOOPBACK RUNNING  MTU:16436  Metric:1
  15. RX packets:177352 errors:0 dropped:0 overruns:0 frame:0
  16. TX packets:177352 errors:0 dropped:0 overruns:0 carrier:0
  17. collisions:0 txqueuelen:0
  18. RX bytes:26547640 (25.3 MiB)  TX bytes:26547640 (25.3 MiB)
  19. [[email protected] ~]# curl 10.0.0.136    #访问反向代理服务器
  20. <html>
  21. 10.0.0.137
  22. </html>
  23. #我们看到访问代理服务器,结果被转发到了web server1上。
  24. #接下来我们分别看下nginx-server和web-server1的日志:
  25. nginx-server:
  26. [[email protected] ~]# tail /var/log/nginx/access.log
  27. 10.0.0.139- - [08/Jun/2016:15:35:43 +0800] "GET / HTTP/1.1" 200 26 "-" "curl/7.19.7
  28. (x86_64-redhat-linux-gnu) libcurl/7.19.7 NSS/3.19.1 Basic ECC zlib/1.2.3 libidn/1.18 libssh2/1.4.2" "-"
  29. web-server:
  30. [[email protected] httpd]# tail /var/log/httpd/access_log
  31. 10.0.0.136 - - [08/Jun/2016:15:21:12 +0800] "GET / HTTP/1.0" 200 26 "-" "curl/7.19.7
  32. (x86_64-redhat-linux-gnu) libcurl/7.19.7 NSS/3.19.1 Basic ECC zlib/1.2.3 libidn/1.18 libssh2/1.4.2"
  33. ##我们看到nginx-server上的nginx的日志,显示访问的用户是10.0.0.139也就是我们环境的clinet,
  34. #而web-server上显示的ip是10.0.0.136,也就是nginx-server。
  35. #说白了反向代理,对客户来说nginx-server就是真正的服务器,实际上,当用户访问nginx-server的时候,会将请求转发到
  36. #web-server1上,然后web-server1将请求的结果发给nginx-server,然后由ngin小-server将请求的结果转交给用户。
  37. #在web-server上看到的都是代理的ip,能不能也看到真实用户的ip呢?
  38. [[email protected] conf.d]# cat fxproxy.conf
  39. server {
  40. listen       80;
  41. server_name  10.0.0.136;                            #根据环境介绍,nginx server ip
  42. location / {
  43. proxy_pass http://10.0.0.137;                #被代理的服务器ip
  44. proxy_set_header  X-Real-IP  $remote_addr;    #多了这行
  45. }

[plain] view plain copy

  1. [[email protected] conf.d]# service nginx restart
  2. [[email protected] ~]# tail /var/log/httpd/access_log
  3. 10.0.0.136 - - [08/Jun/2016:16:10:53 +0800] "GET / HTTP/1.0" 200 26 "-" "curl/7.19.7
  4. (x86_64-redhat-linux-gnu) libcurl/7.19.7 NSS/3.19.1 Basic ECC zlib/1.2.3 libidn/1.18 libssh2/1.4.2"
  5. #改了之后还是显示的是代理服务器的ip,我们去web-server上修改下配置
  6. [[email protected] ~]# vim /etc/httpd/conf/httpd.conf
  7. LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
  8. LogFormat "%h %l %u %t \"%r\" %>s %b" common
  9. LogFormat "%{Referer}i -> %U" referer
  10. LogFormat "%{User-agent}i" agent
  11. #修改为:(%h指的的访问的主机,现在改为访问的真实主机ip)
  12. LogFormat "%{X-Real-IP}i</span> %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
  13. LogFormat "%h %l %u %t \"%r\" %>s %b" common
  14. LogFormat "%{Referer}i -> %U" referer
  15. LogFormat "%{User-agent}i" agent</span>

[plain] view plain copy

  1. [[email protected] ~]# service httpd restart
  2. 停止 httpd:                                               [确定]
  3. 正在启动 httpd:                                           [确定]
  4. [[email protected] ~]# tail /var/log/httpd/access_log
  5. 10.0.0.136 - - [08/Jun/2016:16:10:53 +0800] "GET / HTTP/1.0" 200 26 "-" "curl/7.19.7
  6. (x86_64-redhat-linux-gnu) libcurl/7.19.7 NSS/3.19.1 Basic ECC zlib/1.2.3 libidn/1.18 libssh2/1.4.2"
  7. <span style="color:#FF0000;">10.0.0.139</span> - - [08/Jun/2016:16:16:01 +0800] "GET / HTTP/1.0" 200 26 "-" "curl/7.19.7
  8. (x86_64-redhat-linux-gnu) libcurl/7.19.7 NSS/3.19.1 Basic ECC zlib/1.2.3 libidn/1.18 libssh2/1.4.2"
  9. #已经变成了真实的访问地址

代理多个web服务器:

[plain] view plain copy

  1. [[email protected] conf.d]# cat fxproxy.conf
  2. server {
  3. listen       80;
  4. server_name  10.0.0.136;
  5. location / {
  6. proxy_pass http://10.0.0.137;
  7. proxy_set_header  X-Real-IP  $remote_addr;
  8. }
  9. location /web2 {                            #多加个location
  10. proxy_pass http://10.0.0.111;
  11. proxy_set_header  X-Real-IP  $remote_addr;
  12. }
  13. [[email protected] ~]# cd /var/www/html/   #进入10.0.0.111这个web-server2
  14. [[email protected] html]# mkdir web
  15. [[email protected] html]# echo "<html>10.0.0.111</html>" > index.html
  16. #我们去client上访问试试:
  17. [[email protected] ~]# curl 10.0.0.136/web2/
  18. <html>
  19. 10.0.0.111
  20. </html>
  21. #访问成功

三、负载均衡

负载均衡实现的方式有很多,常用的lvs四层负载均衡,nginx是七层负载均衡,可以网上查询相关资料。

3.1 环境介绍

3.2 配置介绍

1.upstream是Nginx的HTTP Upstream模块,这个模块通过一个简单的调度算法来实现客户端IP到后端服务器的负载均衡。在上面的设定中,通过upstream指令指定了一个负载均衡器的名称1.2.3.4。这个名称可以任意指定,在后面需要用到的地方直接调用即可。

2.Nginx的负载均衡模块目前支持4种调度算法,下面进行分别介绍,其中后两项属于第三方调度算法。

  • 轮询(默认)。每个请求按时间顺序逐一分配到不同的后端服务器,如果后端某台服务器宕机,故障系统被自动剔除,使用户访问不受影响。Weight 指定轮询权值,Weight值越大,分配到的访问机率越高,主要用于后端每个服务器性能不均的情况下。
  • ip_hash。每个请求按访问IP的hash结果分配,这样来自同一个IP的访客固定访问一个后端服务器,有效解决了动态网页存在的session共享问题。
  • fair。这是比上面两个更加智能的负载均衡算法。此种算法可以依据页面大小和加载时间长短智能地进行负载均衡,也就是根据后端服务器的响应时间来分配请求,响应时间短的优先分配。Nginx本身是不支持fair的,如果需要使用这种调度算法,必须下载Nginx的upstream_fair模块。
  • url_hash。此方法按访问url的hash结果来分配请求,使每个url定向到同一个后端服务器,可以进一步提高后端缓存服务器的效率。Nginx本身是不支持url_hash的,如果需要使用这种调度算法,必须安装Nginx 的hash软件包。

3.upstream 支持的状态参数

在HTTP Upstream模块中,可以通过server指令指定后端服务器的IP地址和端口,同时还可以设定每个后端服务器在负载均衡调度中的状态。常用的状态有:

  • down,表示当前的server暂时不参与负载均衡。
  • backup,预留的备份机器。当其他所有的非backup机器出现故障或者忙的时候,才会请求backup机器,因此这台机器的压力最轻。
  • max_fails,允许请求失败的次数,默认为1。当超过最大次数时,返回proxy_next_upstream 模块定义的错误。
  • fail_timeout,在经历了max_fails次失败后,暂停服务的时间。max_fails可以和fail_timeout一起使用。

注,当负载调度算法为ip_hash时,后端服务器在负载均衡调度中的状态不能是weight和backup。

我们来看下具体配置:

[python] view plain copy

  1. [[email protected] conf.d]# cat ../nginx.conf
  2. http {
  3. include       /etc/nginx/mime.types;
  4. default_type  application/octet-stream;
  5. log_format  main  ‘$remote_addr - $remote_user [$time_local] "$request" ‘
  6. ‘$status $body_bytes_sent "$http_referer" ‘
  7. ‘"$http_user_agent" "$http_x_forwarded_for"‘;
  8. access_log  /var/log/nginx/access.log  main;
  9. sendfile        on;
  10. #tcp_nopush     on;
  11. keepalive_timeout  65;
  12. #gzip  on;
  13. upstream 1.2.3.4 {
  14. server 10.0.0.111:80;
  15. server 10.0.0.137:80;
  16. }
  17. include /etc/nginx/conf.d/*.conf;
  18. }
  19. [[email protected] conf.d]# cat slb.confserver
  20. {
  21. location / {
  22. proxy_pass http://1.2.3.4; proxy_set_header X-Real-IP $remote_addr;
  23. }
  24. #注,upstream是定义在server{ }之外的,不能定义在server{ }内部。定义好upstream之后,用proxy_pass引用一下即可。

4.测试结果

[python] view plain copy

  1. [[email protected] ~]# curl 10.0.0.136
  2. <html>
  3. 10.0.0.111
  4. </html>
  5. [[email protected] ~]# curl 10.0.0.136
  6. <html>
  7. 10.0.0.137
  8. </html>
  9. [[email protected] ~]# curl 10.0.0.136
  10. <html>
  11. 10.0.0.111
  12. </html>
  13. #结果是server1,2交替出现,说明默认是轮询方式的负载均衡。

5.健康检查

一般健康检查都需要搞个keepalived,但nginx也有相应的参数可以设置。

  • max_fails,允许请求失败的次数,默认为1。当超过最大次数时,返回proxy_next_upstream 模块定义的错误。
  • fail_timeout,在经历了max_fails次失败后,暂停服务的时间。max_fails可以和fail_timeout一起使用,进行健康状态检查。

[python] view plain copy

  1. [[email protected] conf.d]# cat ../nginx.conf
  2. http {
  3. include       /etc/nginx/mime.types;
  4. default_type  application/octet-stream;
  5. log_format  main  ‘$remote_addr - $remote_user [$time_local] "$request" ‘
  6. ‘$status $body_bytes_sent "$http_referer" ‘
  7. ‘"$http_user_agent" "$http_x_forwarded_for"‘;
  8. access_log  /var/log/nginx/access.log  main;
  9. sendfile        on;
  10. #tcp_nopush     on;
  11. keepalive_timeout  65;
  12. #gzip  on;
  13. upstream 1.2.3.4 {
  14. server 10.0.0.111:80 weight=1 max_fails=2 fail_timeout=2;
  15. server 10.0.0.137:80 weight=1 max_fails=2 fail_timeout=2;
  16. }
  17. include /etc/nginx/conf.d/*.conf;
  18. }
  19. [[email protected] conf.d]# service nginx restart

6.测试下结果

[python] view plain copy

  1. [[email protected] httpd]# service httpd stop  #关闭web-server1服务
  2. [[email protected] ~]# curl 10.0.0.136
  3. <html>
  4. 10.0.0.111
  5. </html>
  6. [[email protected] ~]# curl 10.0.0.136
  7. <html>
  8. 10.0.0.111
  9. </html>
  10. #现在只能访问web-server2了。
  11. [[email protected] httpd]# service httpd start   #打开web-server1服务
  12. [[email protected] ~]# curl 10.0.0.136
  13. <html>
  14. 10.0.0.111
  15. </html>
  16. [[email protected] ~]# curl 10.0.0.136
  17. <html>
  18. 10.0.0.137
  19. </html>
  20. [[email protected] ~]# curl 10.0.0.136
  21. <html>
  22. 10.0.0.111
  23. </html>

7.ip_hash的负载均衡

[python] view plain copy

  1. [[email protected] conf.d]# cat ../nginx.conf
  2. upstream 1.2.3.4 {
  3. ip_hash;
  4. server 10.0.0.111:80 weight=1 max_fails=2 fail_timeout=2;
  5. server 10.0.0.137:80 weight=1 max_fails=2 fail_timeout=2;
  6. }
  7. [[email protected] conf.d]# service nginx restart
  8. 停止 nginx:                                               [确定]
  9. 正在启动 nginx:                                           [确定]
  10. [[email protected] ~]# curl 10.0.0.136
  11. <html>
  12. 10.0.0.137
  13. </html>
  14. [[email protected] ~]# curl 10.0.0.136
  15. <html>
  16. 10.0.0.137
  17. </html>
  18. #配置这种负载均衡后,>每个请求按访问IP的hash结果分配,这样来自同一个IP的访客固定访问一个后端服务器,
  19. #有效解决了动态网页存在的session共享问题。(一般电子商务网站用的比较多)
时间: 2024-11-05 18:43:19

Nginx正反向代理、负载均衡等功能实现配置的相关文章

Nginx实现反向代理负载均衡功能

反向代理软件Nginx:本身支持反向代理.负载均衡功能,属于L7层负载均衡.Nginx反向代理简单易用,受到大部分中小企业的青睐.LVS:支持L4层负载均衡,haproxy:支持L4.L7层负载均衡L4.L7是指OSI模型中的第四层和第七层:L4:TCP负载均衡:L7:http负载均衡nginx.lvs.haproxy区别参考资料https://www.cnblogs.com/ahang/p/5799065.htmlhttps://www.cnblogs.com/like-minded/p/51

Nginx实现反向代理负载均衡与静态缓存

介绍: Nginx是一款轻量级的Web服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器.在连接高并发的情况下,Nginx是Apache服务器不错的替代品,能够支持高达50000个并发连接数的响应. 实验环境: Hostname IP 系统 规划 n2.preferred 192.168.1.2 Centos 6.5 Web server n3.preferred 192.168.1.3 Centos 6.5 Web server n6.preferred 192.168.1.6

简单实现Nginx的反向代理+负载均衡

一.引言 上次我们体验了Nginx反向代理的使用,配置是非常简单的,一句配置搞定.这章我们来讲讲在Nginx如何使用反向代理+负载均衡.负载均衡估计程序员都听说过,比如开发一个电商.web端项目什么后期优化需要做负载均衡,不然同时10w用户同时访问,程序就容易相对应的崩溃. 所谓负载均衡,是由多台服务器或服务共同完成一个功能点,从而达到负载均衡的效果.打个比方:用户请求发起一个请求,网站显示的图片量又比较大,如果说这个时候有N个用户同时访问,那么全部的工作量都放在了一台服务器上,指不定什么时候就

NGINX 实现反向代理负载均衡服务器

一.nginx负载均衡与反选代理的区别? 答:我觉得没什么区别,一台就叫反向代理,多台就叫负载均衡,它们相结合使用 二.nginx 负载均衡原理 三.配置nginx负载均衡 修改nginx.conf http {     include       mime.types;     default_type  application/octet-stream;     sendfile        on;     keepalive_timeout  65;     upstream backe

Nginx安装-反向代理-负载均衡-动静分离

安装 1.需要素材 后两个用命令下载安装 openssl-1.0.1t.tar.gzzlib -1.2.8.tar.gz 2:在/usr/src/ 下吧 " nginx-1.16.1.tar.gz " "pcre-8.37.tar.gz" 这两个文件放进去并且解压然后在pcre-8.37这个文件下先 : ./configure 在敲 make && make install pcre-conffig --verison 查看版本 下面安装nginx

Nginx反向代理负载均衡模块功能详述

1.ngx_http_upstream_modulehttp://nginx.org/en/docs/http/ngx_http_upstream_module.html#upstream 模块常用功能说明: 1)定义后端集群web节点信息,定义一个地址的池子 upstream oldboy { server 10.0.0.7:80; server 10.0.0.8:80; server 10.0.0.9:80; } 2)实现权重值负载访问功能 upstream oldboy { server

Nginx + Tomcat 反向代理 负载均衡 集群 部署指南

转载请注明出处:http://blog.csdn.net/smartbetter/article/details/53535435 Nginx是一种服务器软件,也是一种高性能的http和反向代理服务器,同时还是一个代理邮件服务器.也就是说,我们在Nginx上可以发布网站,可以实现负载均衡(提高应答效率,避免服务器崩溃),还可以作为邮件服务器实现收发邮件等功能.而最常见的就是使用Nginx实现负载均衡. Nginx与其他服务器的性能比较: Tomcat服务器面向Java语言,是重量级的服务器,而N

nginx实现反向代理负载均衡

Nginx实现反向代理 nginx代理基于是ngx_http_proxy_module模块的功能,该模块有很多属性配置选项,如: proxy_pass:指定将请求代理至server的URL路径:     proxy_set_header:将发送至 server的报文的某首部进行重写 proxy_send_timeout:在连接断开之前两次发送到server的最大间隔时长:过了这么长时间后端还是没有收到数据,连接会被关闭 proxy_read_timeout:是从后端读取数据的超时时间,两次读取操

Nginx的反向代理 负载均衡 配置

在ubuntu下安装Nginx: sudo apt install nginx nginx的配置文件有两个: /etc/nginx/nginx.conf /etc/nginx/sites-enabled/default 在server块中增加配置,设置反向代理: server{ listen 9001; server_name 127.0.0.1; location ~ /edu/ { proxy_pass http://127.0.0.1:8080; } location ~ /vod/ {