加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

单一nginx负载均衡+LNMP分布式架构

发布时间:2020-12-14 05:33:08 所属栏目:百科 来源:网络整理
导读:? ?随着互联网的快速发展,我们的web站点访问量和数据流量的快速增长,对于我们服务器的处理能里的要求也越来越高,这样的情况下,单一的服务器根本无法承受,?这样的话我们丢弃掉原有的设备,做硬件升级,会造成成本的浪费,如果再过一段时间,升级过后的硬件有负载

? ?随着互联网的快速发展,我们的web站点访问量和数据流量的快速增长,对于我们服务器的处理能里的要求也越来越高,这样的情况下,单一的服务器根本无法承受,?这样的话我们丢弃掉原有的设备,做硬件升级,会造成成本的浪费,如果再过一段时间,升级过后的硬件有负载不起了,怎么办呢?没关系,我们有负载均衡的技术,就不用担心了!
? ?负载均衡通俗点说,就是一堆的计算机,或设备,同时为用户提供一个相同的服务,下面就来说说怎么实现的!
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
首先在此感谢,"马哥"以及网友"IT你好" 的帮助,一路走来,问题不断,感谢朋友们的支持,再次表示谢谢,“刘庸有句话说的好,(人在黑暗既又邪恶的道路上成长,才能使自己变的更加强大)” 我想表达的意思就是,在学习的过程中遇到的问题越多,那么自己就积累的越多,当然对于那些勇于克服问题的童鞋而言,呵呵,闲话有点多了,下面来介绍下单一的nginx负载均衡是怎么工作的,
单一nginx负载均衡,见下图,

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1,首先用户发送请求访问bbs.andy.com,
2,当前端nginx负载均衡服务器(上图中的SVR1)收到用户的请求之后,nginx负载均衡器,会根据此前配置好的调度算法,代用户请求后端的应用程序服务器,
3,应用程序服务器(也就是上图中的SVR2,3,4) 收到前端nginx负载均衡器的请求的时候,它并不知道是nginx负载均衡器是代用户请求的,对于后端的应用程序服务器而言前端nginx负载均衡器就是一个用户,那么它收到请求之后,将对应请求的处理结果,再返回给前端nginx负载均衡器,
4,当前端的nginx负载均衡器,收到后端应用程序服务器返回的响应内容之后再讲结果返回给用户,
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
应该是这样工作的吧,个人的理解,说的不好,还望大家伙指点,下面来说说LNMP分布式架构是怎么工作的,也就是上图啦,待会的配置也是根据上图的架构来配置的,
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
LNMP分布式架构的工作原理,根据上图来,
1,用户请求bbs.andy.com
2,前端nginx负载均衡器收到用户请求,根据此前设定的调度算法,假如说此时前端nginx负载均衡器,根据调度算法的结果,应该访问svr2,这台应用程序服务器,那么svr2这台服务器根据用户请求的内容的不同,而进行不同的处理机制,根据上图的架构一般有两种可能,
? ? ? ? ?当用户请求的内容是一个静态的html页面的话,那么svr2,就直接将请求的结果响应给前端nginx负载均衡器,
? ? ? ? ?当用户请求的内容是一个动态的页面内容(在上图中也就是PHP页面了)那么svr2会去找svr4上面的FastCGI程序来帮忙解析动态php页面,如果此次页面请求中需要访问数据库的话,fastcgi会通过mysql的接口访问数据库的,然后将其请求的结果,返回给svr2,
? ? ? ? ? ? ? ?当svr2收到返回的请求结果后,svr2再将结果返回给前端的nginx负载均衡器,当前端的nginx负载均衡器收到请求的结果后,再将其返回给用户,
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
下面来配置下在nginx负载均衡的情况下,后端的LNMP应用服务器分布式架构,下面再简单介绍下上图中每台服务器的角色,已经IP地址,等信息,

服务器 ? ? ? ? ? ? 角色 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?IP地址 ? ? ? ? ? ? ? ? ? ? ? DNS能解析的域名
SVR1 ? ? ? nginx负载均衡器 ? ? 192.168.0.52/172.16.0.1 ? ? bbs.andy.com解析到192.168.0.52
SVR2 ? ? ? ? ? ? ? nginx ? ? ? ? ? ? ? ? ? ? ? ? ? ?172.16.0.2
SVR3 ? ? ? ? ? ? ? nginx/NFS ? ? ? ? ? ? ? ? ? ?172.16.0.3
SVR4 ? ? ? ? ? php(FastCGI)/MySQL ? ? 172.16.0.4
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
SVR1负责接受用户请求,根据调度算法,负载到SVR2 SVR3上面去,
SVR3上面有个NFS服务,是提供共享存储的,这里主要是共享网站的源码
SVR4 php(FastCGI)提供SVR2 SVR3的动态PHP页面的请求,?
SVR4 MYSQL数据库提供SVR4上的PHP(FastCGI)的数据请求等,
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

单一nginx负载均衡+LNMP分布式架构 ?rhel5.8的系统上实现

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
目录
一,安装配置SVR4
二,安装配置SVR3
三,安装配置SVR2
四,安装配置SVR1
注:配置过程中需要用到的源码包,自己在官方下载,所有包下载至系统的/usr/src目录
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
一,安装配置SVR4
1.安装基本开发库,等依赖软件包

 
 
  1. #yum?-y?groupinstall?"Development?Libraries"??"Development?Tools"?"X?Software?Development"?

2.安装配置mysql
2.1 编译安装mysql

 
 
  1. #cd?/usr/src?
  2. #tar?xzvf?mysql-5.0.56.tar.gz??
  3. #cd?mysql-5.0.56?
  4. #./configure?--prefix=/usr/local/mysql?--sysconfdir=/usr/local/mysql/etc?--with-ssl??
  5. --localstatedir=/usr/local/mysql/database?--enable-assembler?--with-readline??
  6. --with-extra-charsets=complex?--enable-thread-safe-client?--with-big-tables??
  7. --with-embedded-server?--enable-local-infile?--with-plugins=innobase?
  8. #make?&&?make?install?

2.2 将mysql命令加入到系统搜索路径

 
 
  1. #vim?/etc/profile?
  2. PATH=/usr/local/mysql/bin:$PATH???将次行添加到文件中的44行?
  3. #export?PATH=/usr/local/mysql/bin:$PATH?

2.3 将头文件添加到系统搜索路径

 
 
  1. #ln?-s?/usr/local/mysql/include/mysql?/usr/include/mysql?

2.4 将库文件添加到系统搜索路径

 
 
  1. #echo?“/usr/local/mysql/lib/mysql”???> /etc/ld.so.conf.d/mysql.conf?
  2. #ldconfig?

2.5 为mysql提供配置文件,服务启动脚本,用户,并初始化mysql

 
 
  1. #cp?support-files/my-huge.cnf?/etc/my.cnf?
  2. #cp?support-files/mysql.server?/etc/init.d/mysqld?
  3. #chmod?a+x?/etc/init.d/mysqld?
  4. #useradd?-s?/sbin/nologin?mysql?
  5. #chown?-R?mysql:mysql?/usr/local/mysql?
  6. #mysql_install_db?--user=mysql?
  7. #chkconfig?--add?mysqld?
  8. #chkconfig?mysqld?on?
  9. #service?mysqld?restart?

3,安装配置php(FastCGI)
3.1 编译安装libiconv 编码转换库

 
 
  1. #cd?/usr/src?
  2. #tar?xzvf?libiconv-1.13.1.tar.gz?
  3. #cd?libiconv-1.13.1?
  4. #./configure?--prefix=/usr/local?
  5. #make?&&?make?install?

3.2 编译安装libmcryp加密算法扩展库

 
 
  1. #cd?/usr/src?
  2. #tar?xjvf?libmcrypt-2.5.8.tar.bz2?
  3. #cd?libmcrypt-2.5.8?
  4. #./configure?
  5. #make?
  6. #make?install?
  7. #ldconfig?
  8. #cd?libltdl/?
  9. #./configure?--enable-ltdl-install?
  10. #make?&& make?install?

3.3 编译安装mhash加密算法扩展库

 
 
  1. #cd?/usr/src?
  2. #tar?xjvf?mhash-0.9.9.9.tar.bz2?
  3. #cd?mhash-0.9.9.9?
  4. #./configure?
  5. #make?&& make?install?
  6. #ln?-s?/usr/local/lib/libmcrypt.la?/usr/lib/libmcrypt.la?
  7. #ln?-s?/usr/local/lib/libmcrypt.so?/usr/lib/libmcrypt.so?
  8. #ln?-s?/usr/local/lib/libmcrypt.so.4?/usr/lib/libmcrypt.so.4?
  9. #ln?-s?/usr/local/lib/libmcrypt.so.4.4.8?/usr/lib/libmcrypt.so.4.4.8?
  10. #ln?-s?/usr/local/lib/libmhash.a?/usr/lib/libmhash.a?
  11. #ln?-s?/usr/local/lib/libmhash.la?/usr/lib/libmhash.la?
  12. #ln?-s?/usr/local/lib/libmhash.so?/usr/lib/libmhash.so?
  13. #ln?-s?/usr/local/lib/libmhash.so.2?/usr/lib/libmhash.so.2?
  14. #ln?-s?/usr/local/lib/libmhash.so.2.0.1?/usr/lib/libmhash.so.2.0.1?

3.4 编译安装mcrypt 加密算法工具

 
 
  1. #cd?/usr/src?
  2. #tar?xzvf?mcrypt-2.6.8.tar.gz?
  3. #cd?mcrypt-2.6.8?
  4. #./configure?
  5. #make?&&?make?install?

3.5 编译安装php(FastCGI) 这里使用的是5.4的版本,5.4的版本不需要打fpm补丁就支持FastCGI
3.5.1 编译安装php

 
 
  1. #cd?/usr/src?
  2. #tar?xjvf?php-5.4.4.tar.bz2?
  3. #cd?php-5.4.4?
  4. #./configure?--prefix=/usr/local/php?--with-mysql=/usr/local/mysql/?--with-openssl?
  5. --enable-fpm?--enable-sockets?--enable-sysvshm?--with-mysqli=/usr/local/mysql/bin/mysql_config
  6. --enable-mbstring?--with-freetype-dir?--with-jpeg-dir?--with-png-dir?--with-zlib-dir?
  7. --with-libxml-dir=/usr/?--enable-xml?--with-mhash?--with-mcrypt?--with-config-file-path=/etc?
  8. --with-config-file-scan-dir=/etc/php.d?--with-bz2?--with-curl?--with-ldap?--with-iconv-dir??
  9. #make??ZEND_EXTRA_LIBS='-liconv'?
  10. #make?install?

3.5.2 为php-fpm提供配置文件,服务启动脚本等,

 
 
  1. #cp?php.ini-production?/etc/php.ini?
  2. #cp?sapi/fpm/init.d.php-fpm??/etc/rc.d/init.d/php-fpm?
  3. #chmod?+x?/etc/rc.d/init.d/php-fpm?
  4. #chkconfig?--add?php-fpm?
  5. #chkconfig?php-fpm?on?
  6. #cp?/usr/local/php/etc/php-fpm.conf.default?/usr/local/php/etc/php-fpm.conf??
  7. #vim?/usr/local/php/etc/php-fpm.conf??修改内容如下?
  8. pid?=?/usr/local/php/var/run/php-fpm.pid?
  9. listen = 172.16.0.4:9000
  10. pm.max_children?=?50?
  11. pm.start_servers?=?5?
  12. pm.min_spare_servers?=?2?
  13. pm.max_spare_servers?=?8?
  14. #service?php-fpm?start?


二,安装配置SVR3
1.安装基本开发库,及依赖软件包

 
 
  1. #yum?groupinstall?"Development?Libraries"??"Development?Tools"?
  2. #yum?-y?install?pcre-devel?

2.安装配置nginx
2.1 编译安装nginx

 
 
  1. #useradd?-s?/sbin/nologin?nginx?
  2. #cd?/usr/src?
  3. #tar?xzvf?nginx-1.2.2.tar.gz?
  4. #cd?nginx-1.2.2?
  5. #./configure?--prefix=/usr/local/nginx?--pid-path=/var/run/nginx/nginx.pid??
  6. --lock-path=/var/lock/nginx.lock?--user=nginx?--group=nginx?--with-http_ssl_module??
  7. --with-http_flv_module?--with-http_stub_status_module?--with-http_gzip_static_module??
  8. --http-client-body-temp-path=/var/tmp/nginx/client/?--http-proxy-temp-path=/var/tmp/nginx/proxy??
  9. --http-fastcgi-temp-path=/var/tmp/nginx/fcgi?--http-uwsgi-temp-path=/var/tmp/nginx/uwsgi??
  10. --http-scgi-temp-path=/var/tmp/nginx/scgi?--with-pcre?
  11. #make?&& make?install?

2.2 为nginx提供服务启动脚本

 
 
  1. #vim?/etc/rc.d/init.d/nginx??内容如下?
  2. #!/bin/sh?
  3. #?
  4. #?nginx?-?this?script?starts?and?stops?the?nginx?daemon?
  5. #?
  6. #?chkconfig:???-?85?15??
  7. #?description:??Nginx?is?an?HTTP(S)?server,?HTTP(S)?reverse??
  8. #???????????????proxy?and?IMAP/POP3?proxy?server?
  9. #?processname:?nginx?
  10. #?config:??????/etc/nginx/nginx.conf?
  11. #?config:??????/etc/sysconfig/nginx?
  12. #?pidfile:?????/var/run/nginx.pid?
  13. ??
  14. #?Source?function?library.?
  15. .?/etc/rc.d/init.d/functions?
  16. ??
  17. #?Source?networking?configuration.?
  18. .?/etc/sysconfig/network?
  19. ??
  20. #?Check?that?networking?is?up.?
  21. [?"$NETWORKING"?=?"no"?]?&&?exit?0?
  22. ??
  23. nginx="/usr/local/nginx/sbin/nginx"?
  24. prog=$(basename?$nginx)?
  25. ??
  26. NGINX_CONF_FILE="/usr/local/nginx/conf/nginx.conf"?
  27. ??
  28. [?-f?/etc/sysconfig/nginx?]?&&?.?/etc/sysconfig/nginx?
  29. ??
  30. lockfile=/var/lock/subsys/nginx?
  31. ??
  32. make_dirs()?{?
  33. ???#?make?required?directories?
  34. ???user=`nginx?-V?2>&1?|?grep?"configure?arguments:"?|?sed?'s/[^*]*--user=([^?]*).*/1/g'?-`?
  35. ???options=`$nginx?-V?2>&1?|?grep?'configure?arguments:'`?
  36. ???for?opt?in?$options;?do?
  37. ???????if?[?`echo?$opt?|?grep?'.*-temp-path'`?];?then?
  38. ???????????value=`echo?$opt?|?cut?-d?"="?-f?2`?
  39. ???????????if?[?!?-d?"$value"?];?then?
  40. ???????????????#?echo?"creating"?$value?
  41. ???????????????mkdir?-p?$value?&&?chown?-R?$user?$value?
  42. ???????????fi?
  43. ???????fi?
  44. ???done?
  45. }?
  46. ??
  47. start()?{?
  48. ????[?-x?$nginx?]?||?exit?5?
  49. ????[?-f?$NGINX_CONF_FILE?]?||?exit?6?
  50. ????make_dirs?
  51. ????echo?-n?$"Starting?$prog:?"?
  52. ????daemon?$nginx?-c?$NGINX_CONF_FILE?
  53. ????retval=$??
  54. ????echo?
  55. ????[?$retval?-eq?0?]?&&?touch?$lockfile?
  56. ????return?$retval?
  57. }?
  58. ??
  59. stop()?{?
  60. ????echo?-n?$"Stopping?$prog:?"?
  61. ????killproc?$prog?-QUIT?
  62. ????retval=$??
  63. ????echo?
  64. ????[?$retval?-eq?0?]?&&?rm?-f?$lockfile?
  65. ????return?$retval?
  66. }?
  67. ??
  68. restart()?{?
  69. ????configtest?||?return?$??
  70. ????stop?
  71. ????sleep?1?
  72. ????start?
  73. }?
  74. ??
  75. reload()?{?
  76. ????configtest?||?return?$??
  77. ????echo?-n?$"Reloading?$prog:?"?
  78. ????killproc?$nginx?-HUP?
  79. ????RETVAL=$??
  80. ????echo?
  81. }?
  82. ??
  83. force_reload()?{?
  84. ????restart?
  85. }?
  86. ??
  87. configtest()?{?
  88. ??$nginx?-t?-c?$NGINX_CONF_FILE?
  89. }?
  90. ??
  91. rh_status()?{?
  92. ????status?$prog?
  93. }?
  94. ??
  95. rh_status_q()?{?
  96. ????rh_status?>/dev/null?2>&1?
  97. }?
  98. ??
  99. case?"$1"?in?
  100. ????start)?
  101. ????????rh_status_q?&&?exit?0?
  102. ????????$1?
  103. ????????;;?
  104. ????stop)?
  105. ????????rh_status_q?||?exit?0?
  106. ????????$1?
  107. ????????;;?
  108. ????restart|configtest)?
  109. ????????$1?
  110. ????????;;?
  111. ????reload)?
  112. ????????rh_status_q?||?exit?7?
  113. ????????$1?
  114. ????????;;?
  115. ????force-reload)?
  116. ????????force_reload?
  117. ????????;;?
  118. ????status)?
  119. ????????rh_status?
  120. ????????;;?
  121. ????condrestart|try-restart)?
  122. ????????rh_status_q?||?exit?0?
  123. ????????????;;?
  124. ????*)?
  125. ????????echo?$"Usage:?$0?{start|stop|status|restart|condrestart|try-restart|reload|force-reload|configtest}"?
  126. ????????exit?2?
  127. esac?
  128. ?
  129. ?
  130. #chmod?a+x?/etc/init.d/nginx?
  131. #chkconfig?--add?nginx?
  132. #chkconfig?nginx?on?

2.3 编辑nginx的主配置文件

 
 
  1. #vim?/usr/local/nginx/conf/nginx.conf??内容如下?
  2. user??nginx;?
  3. worker_processes??10;?
  4. error_log??logs/error.log?crit;?
  5. pid????????logs/nginx.pid;?
  6. events?
  7. {?
  8. ??use?epoll;?
  9. ??worker_connections?51000;?
  10. }?
  11. http?{?
  12. ????include???????mime.types;?
  13. ????default_type??application/octet-stream;?
  14. ????????client_header_buffer_size?32k;?
  15. ????????large_client_header_buffers?4?32k;?
  16. ????????client_max_body_size?10m;?
  17. ????sendfile????????on;?
  18. ????tcp_nopush?????on;?
  19. ????keepalive_timeout??60;?
  20. ????tcp_nodelay?on;?
  21. ????????fastcgi_connect_timeout?300;?
  22. ????????fastcgi_send_timeout?300;?
  23. ????????fastcgi_read_timeout?300;?
  24. ????????fastcgi_buffer_size?64k;?
  25. ????????fastcgi_buffers?4?64k;?
  26. ????????fastcgi_busy_buffers_size?128k;?
  27. ????????fastcgi_temp_file_write_size?128k;?
  28. ????????gzip?on;?
  29. ????????gzip_min_length?1k;?
  30. ????????gzip_buffers????4?16k;?
  31. ????????gzip_http_version?1.0;?
  32. ????????gzip_comp_level?2;?
  33. ????????gzip_types??????text/plain?application/x-javascript?text/ccs?application/xml;?
  34. ????????gzip_vary?on;?
  35. ????????server?{?
  36. ????????????????listen???????80;?
  37. ????????????????server_name??172.16.0.3;?
  38. ????????????????index?index.html?index.htm?index.php;?
  39. ????????????????root?/web/bbs;?
  40. ????????????????location?~?.*.(php|php5)?$?
  41. ????????????????{?
  42. ????????????????fastcgi_pass????172.16.0.4:9000;?
  43. ????????????????fastcgi_index?index.php;?
  44. ????????????????fastcgi_param?SCRIPT_FILENAME?/web/bbs$fastcgi_script_name;?
  45. ????????????????include?fastcgi.conf;?
  46. ????????????????}?
  47. ????????????????access_log??????logs/bbs.log;?
  48. ?
  49. ????????}?
  50. }?

2.4 创建网站根目录以及测试文件

 
 
  1. #mkdir?-pv?/web/bbs?
  2. #vim?/web/bbs/index.php?
  3. <h1>test</h1>?
  4. <?php?
  5. phpinfo();?
  6. ?>?

2.5 启动nginx服务

 
 
  1. #service?nginx?restart?


3,配置NFS

 
 
  1. #vim?/etc/exports??
  2. /web?172.16.0.*(rw,no_root_squash,sync)?
  3. ?
  4. #chkconfig?portmap?on?
  5. #chkconfig?nfs?on?
  6. #service?portmap?restart?
  7. #service?nfs?restart?


三,安装配置SVR2

1.安装基本开发库,及依赖软件包

 
 
  1. #yum?groupinstall?"Development?Libraries"??"Development?Tools"?
  2. #yum?-y?install?pcre-devel?

2.安装配置nginx
2.1 编译安装nginx

 
 
  1. #useradd?-s?/sbin/nologin?nginx?
  2. #cd?/usr/src?
  3. #tar?xzvf?nginx-1.2.2.tar.gz?
  4. #cd?nginx-1.2.2?
  5. #./configure?--prefix=/usr/local/nginx?--pid-path=/var/run/nginx/nginx.pid??
  6. --lock-path=/var/lock/nginx.lock?--user=nginx?--group=nginx?--with-http_ssl_module??
  7. --with-http_flv_module?--with-http_stub_status_module?--with-http_gzip_static_module??
  8. --http-client-body-temp-path=/var/tmp/nginx/client/?--http-proxy-temp-path=/var/tmp/nginx/proxy??
  9. --http-fastcgi-temp-path=/var/tmp/nginx/fcgi?--http-uwsgi-temp-path=/var/tmp/nginx/uwsgi??
  10. --http-scgi-temp-path=/var/tmp/nginx/scgi?--with-pcre?
  11. #make?&& make?install?

2.2 为nginx提供服务启动脚本

 
 
  1. 见 二.2.2 的配置内容

2.3 编辑nginx的主配置文件

 
 
  1. #vim?/usr/local/nginx/conf/nginx.conf??内容如下?
  2. user??nginx;?
  3. worker_processes??10;?
  4. error_log??logs/error.log?crit;?
  5. pid????????logs/nginx.pid;?
  6. events?
  7. {?
  8. ??use?epoll;?
  9. ??worker_connections?51000;?
  10. }?
  11. http?{?
  12. ????include???????mime.types;?
  13. ????default_type??application/octet-stream;?
  14. ????????client_header_buffer_size?32k;?
  15. ????????large_client_header_buffers?4?32k;?
  16. ????????client_max_body_size?10m;?
  17. ????sendfile????????on;?
  18. ????tcp_nopush?????on;?
  19. ????keepalive_timeout??60;?
  20. ????tcp_nodelay?on;?
  21. ????????fastcgi_connect_timeout?300;?
  22. ????????fastcgi_send_timeout?300;?
  23. ????????fastcgi_read_timeout?300;?
  24. ????????fastcgi_buffer_size?64k;?
  25. ????????fastcgi_buffers?4?64k;?
  26. ????????fastcgi_busy_buffers_size?128k;?
  27. ????????fastcgi_temp_file_write_size?128k;?
  28. ????????gzip?on;?
  29. ????????gzip_min_length?1k;?
  30. ????????gzip_buffers????4?16k;?
  31. ????????gzip_http_version?1.0;?
  32. ????????gzip_comp_level?2;?
  33. ????????gzip_types??????text/plain?application/x-javascript?text/ccs?application/xml;?
  34. ????????gzip_vary?on;?
  35. ????????server?{?
  36. ????????????????listen???????80;?
  37. ????????????????server_name??172.16.0.2;?
  38. ????????????????index?index.html?index.htm?index.php;?
  39. ????????????????root?/web/bbs;?
  40. ????????????????location?~?.*.(php|php5)?$?
  41. ????????????????{?
  42. ????????????????fastcgi_pass????172.16.0.4:9000;?
  43. ????????????????fastcgi_index?index.php;?
  44. ????????????????fastcgi_param?SCRIPT_FILENAME?/web/bbs$fastcgi_script_name;?
  45. ????????????????include?fastcgi.conf;?
  46. ????????????????}?
  47. ????????????????access_log??????logs/bbs.log;?
  48. ?
  49. ????????}?
  50. }?
  51. ?

3.重启nginx服务

 
 
  1. #service?nginx?restart?


4.使用NFS 共享的网站目录,以达到共享存储的目的

 
 
  1. #mkdir /web
  2. #mount?-t?nfs?172.16.0.3:/web?/web?
  3. #echo "mount?-t?nfs?172.16.0.3:/web?/web?" >> /etc/rc.local

?

四.安装配置SVR1
1. 安装基本开发库,以及依赖的软件包

 
 
  1. #yum?groupinstall?"Development?Libraries"??"Development?Tools"?
  2. #yum?-y?install?pcre-devel?

2.安装配置nginx

 
 
  1. useradd?-s?/sbin/nologin?nginx?
  2. #cd?/usr/src?
  3. #tar?xzvf?nginx-1.2.2.tar.gz?
  4. #cd?nginx-1.2.2?
  5. #./configure?--prefix=/usr/local/nginx?--pid-path=/var/run/nginx/nginx.pid??
  6. --lock-path=/var/lock/nginx.lock?--user=nginx?--group=nginx?--with-http_ssl_module??
  7. --with-http_flv_module?--with-http_stub_status_module?--with-http_gzip_static_module??
  8. --http-client-body-temp-path=/var/tmp/nginx/client/?--http-proxy-temp-path=/var/tmp/nginx/proxy??
  9. --http-fastcgi-temp-path=/var/tmp/nginx/fcgi?--http-uwsgi-temp-path=/var/tmp/nginx/uwsgi??
  10. --http-scgi-temp-path=/var/tmp/nginx/scgi?--with-pcre?
  11. #make?&&?make?install?

3.为nginx提供服务启动脚本

 
 
  1. 见?二.2.2?的配置内容?

4.编辑nginx主配置文件,配置负载均衡

 
 
  1. #vim?/usr/local/nginx/conf/nginx.conf?
  2. user??nginx;?
  3. worker_processes??10;?
  4. error_log??logs/error.log?crit;?
  5. pid????????logs/nginx.pid;?
  6. events?
  7. {?
  8. ??use?epoll;?
  9. ??worker_connections?51000;?
  10. }?
  11. http?{?
  12. ????include???????mime.types;?
  13. ????default_type??application/octet-stream;?
  14. ????keepalive_timeout??60;?
  15. ????tcp_nodelay?on;?
  16. #指定负载均衡的方式
  17. ????upstream?bbs.andy.com?{?
  18. ????????server??172.16.0.2:80;?
  19. ????????server??172.16.0.3:80;?
  20. ????????ip_hash;?
  21. ????????}?
  22. ????server?{?
  23. ????????listen???????80;?
  24. ????????server_name??bbs.andy.com;?
  25. ????????index?index.html?index.htm?index.php;?
  26. ????????location?/?{?
  27. ????????????proxy_pass??????http://bbs.andy.com;?
  28. ????????????proxy_next_upstream?http_502?http_504?error?timeout?invalid_header;?
  29. ????????????proxy_set_header????Host????$host;?
  30. ????????????proxy_set_header????X-Real-IP???$remote_addr;?
  31. ????????????proxy_set_header????X-Forwarded-For?$proxy_add_x_forwarded_for;?
  32. ????????????proxy_connect_timeout???600;?
  33. ????????????proxy_read_timeout??600;?
  34. ????????????proxy_send_timeout??600;?
  35. ????????????proxy_buffer_size???8k;?
  36. ????????????proxy_temp_file_write_size??64k;?
  37. ????????}????
  38. ?
  39. ?????
  40. ????????access_log??????logs/bbs.log;?
  41. ?
  42. ????????}?
  43. }?

?

3.重启nginx服务

 
 
  1. #service?nginx?restart?


五,收尾配置,需要在每台服务器上执行以下命令

 
 
  1. #chkconfig?iptables?off?
  2. #service?iptables?stop?
  3. #setenforce?0?
  4. #echo?"setenforce?0"?>>?/etc/rc.local????

2.需要在SVR4上挂载nfs共享

 
 
  1. #mkdir?/web?
  2. #mount?-t?nfs?172.16.0.3:/web?/web?
  3. #echo?"mount?-t?nfs?172.16.0.3:/web?/web"?>>?/etc/rc.local?

OK.到这里配置就结束了,2012年7月16日凌晨3:00整 ? 完!

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读