Nginx简单web负载均衡

实验介绍

Nginx作为负载均衡服务器:Nginx 既可以在内部直接支持 Rails 和 PHP 程序对外进行服务,

也可以支持作为 HTTP代理服务器对外进行服务。Nginx采用C进行编写,

不论是系统资源开销还是CPU使用效率都比 Perlbal 要好很多

此次应用Nginx实现多台web服务器的简单负载均衡,直观了解负载均衡的工作原理

实验架构如下图

26393988_1346382467omLl.png


第一步:搭建实验环境

centos6.0(64位),nginx-0.7.51 ,httpd-2.2.15

主Nginx:192.168.5.221

备Nginx:192.168.5.222(此次未涉及keepalived,故没有备份Nginx)

Web1服务器:192.168.5.225

Web2服务器:192.168.5.226




第二步:安装Nginx负载均衡器及相关配置脚本(主Nginx)

先安装Nginx负载均衡器,nginx负载的配置就用一般的模板来配置了


点击(此处)折叠或打开

  1. groupadd www

  2. useradd -g www www

  3. wget http://ftp.exim.llorien.org/pcre/pcre-7.8.tar.gz

  4. tar zxvf pcre-7.8.tar.gz

  5. cd pcre-7.8/

  6. ./configure

  7. make && make install

  8. wget http://sysoev.ru/nginx/nginx-0.7.51.tar.gz

  9. tar zxvf nginx-0.7.51.tar.gz

  10. cd nginx-0.7.51/

  11. ./configure --user=www --group=www --prefix=/usr/local/webserver/nginx --with-http_stub_status_module --with-http_ssl_module

  12. make && make install

  13. 配置nginx负载均衡器的配置文件vim /usr/local/nginx/conf/nginx.conf

  14. user www www;

  15. worker_processes 10;

  16. #error_log logs/error.log;

  17. #error_log logs/error.log notice;

  18. #error_log logs/error.log info;

  19. #pid logs/nginx.pid;

  20. #最大文件描述符

  21. worker_rlimit_nofile 51200;

  22. events

  23. {

  24. use epoll;

  25. worker_connections 51200;

  26. }

  27. http

  28. {

  29. include mime.types;

  30. default_type application/octet-stream;

  31. keepalive_timeout 120;

  32. tcp_nodelay on;

  33. upstream www.dylan0718.org

  34. {

  35. server 192.168.5.225:80;

  36. server 192.168.5.226:80;

  37. }

  38. server

  39. {

  40. listen 80;

  41. server_name localhost;

  42. location /{

  43. proxy_pass http://www.dylan0718.org;

  44. proxy_set_header Host $host;

  45. proxy_set_header X-Real-IP $remote_addr;

  46. proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

  47. }

  48. log_format www_dylan0718_org '$remote_addr - $remote_user [$time_local] $request '

  49. '"$status" $body_bytes_sent "$http_referer" '

  50. '"$http_user_agent" "$http_x_forwarded_for"';

  51. access_log /var/log/www.log www_dylan0718_org;

  52. }

  53. }





第三步:web服务器配置(web1,web2)

最小化安装两台centos6.0 server 安装http包

然后分别在web1,web2的/var/www/html/目录 分别写入index.html 并在里面分别标记出web1和web2




第四步:启动服务

启动主Nginx的服务进程 并启动web1,web2的httpd服务

在浏览器输入Nginx入口地址http://192.168.5.221/ 重复刷新便会交替web1,web2的主页 观察到了真实的服务器地址

如图所示


你可能感兴趣的:(代理服务器,web服务器,工作原理,程序,均衡器)