nginx+apache+mysql+php+memcached+squid搭建集群web環境
2024-08-30 12:27:17
供稿:網友
服務器的大用戶量的承載方案
一、前言
二、編譯安裝
三、 安裝MySQL、memcache
四、 安裝Apache、PHP、eAccelerator、php-memcache
五、 安裝Squid
六、后記
一、前言,準備工作
當前,LAMP開發模式是WEB開發的首選,如何搭建一個高效、可靠、穩定的WEB服務器一直是個熱門主題,本文就是這個主題的一次嘗試。
我們采用的架構圖如下:
引用-------- ---------- ------------- --------- ------------
| 客戶端 | ===> |負載均衡器| ===> |反向代理/緩存| ===> |WEB服務器| ===> |數據庫服務器|
-------- ---------- ------------- --------- ------------
Nginx Squid Apache,PHP MySQL
eAccelerator/memcache準備工作:
引用服務器: Intel(R) Xeon(TM) CPU 3.00GHz * 2, 2GB mem, SCISC 硬盤
操作系統:CentOs4.4,內核版本2.6.9-22.ELsmp,gcc版本3.4.4
軟件:
Apache 2.2.3(能使用MPM模式)
PHP 5.2.0(選用該版本是因為5.2.0的引擎相對更高效)
eAccelerator 0.9.5(加速PHP引擎,同時也可以加密PHP源程序)
memcache 1.2.0(用于高速緩存常用數據)
libevent 1.2a(memcache工作機制所需)
MySQL 5.0.27(選用二進制版本,省去編譯工作)
Nginx 0.5.4(用做負載均衡器)
squid-2.6.STABLE6(做反向代理的同時提供專業緩存功能)
二、編譯安裝
一、) 安裝Nginx
1.) 安裝
Nginx發音為[engine x],是由俄羅斯人Igor Sysoev建立的項目,基于BSD許可。據說他當初是F5的成員之一,英文主頁:http://nginx.net。俄羅斯的一些大網站已經使用它超過兩年多了,一直表現不凡。
Nginx的編譯參數如下:
[root@localhost]#./configure --prefix=/usr/local/server/nginx --with-openssl=/usr/include /
--with-pcre=/usr/include/pcre/ --with-http_stub_status_module --without-http_memcached_module /
--without-http_fastcgi_module --without-http_rewrite_module --without-http_map_module /
--without-http_geo_module --without-http_autoindex_module
在這里,需要說明一下,由于Nginx的配置文件中我想用到正則,所以需要 pcre 模塊的支持。我已經安裝了 pcre 及 pcre-devel 的rpm包,但是 Ngxin 并不能正確找到 .h/.so/.a/.la 文件,因此我稍微變通了一下:
[root@localhost]#mkdir /usr/include/pcre/.libs/
[root@localhost]#cp /usr/lib/libpcre.a /usr/include/pcre/.libs/libpcre.a
[root@localhost]#cp /usr/lib/libpcre.a /usr/include/pcre/.libs/libpcre.la
然后,修改 objs/Makefile 大概在908行的位置上,注釋掉以下內容:
./configure --disable-shared
接下來,就可以正常執行 make 及 make install 了。
2.) 修改配置文件 /usr/local/server/nginx/conf/nginx.conf
以下是我的 nginx.conf 內容,僅供參考:
#運行用戶
user nobody nobody;
#啟動進程
worker_processes 2;
#全局錯誤日志及PID文件
error_log logs/error.log notice;