Home >php教程 >php手册 >nginx+apache+mysql+php+memcached+squid集群web环境 (1/6)

nginx+apache+mysql+php+memcached+squid集群web环境 (1/6)

WBOY
WBOYOriginal
2016-06-13 10:10:33923browse

 客户端 | ===> |负载均衡器| ===> |反向代理/缓存| ===> |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;
pid logs/nginx.pid;
#工作模式及连接数上限
events {
use epoll;
worker_connections 1024;
}
#设定http服务器,利用它的反向代理功能提供负载均衡支持
http {
#设定mime类型
include conf/mime.types;
default_type application/octet-stream;
#设定日志格式
log_format main '$remote_addr - $remote_user [$time_local] '
'"$request" $status $bytes_sent '
'"$http_referer" "$http_user_agent" '
'"$gzip_ratio"';
log_format download '$remote_addr - $remote_user [$time_local] '
'"$request" $status $bytes_sent '
'"$http_referer" "$http_user_agent" '
'"$http_range" "$sent_http_content_range"';
#设定请求缓冲
client_header_buffer_size 1k;
large_client_header_buffers 4 4k;
#开启gzip模块
gzip on;
gzip_min_length 1100;
gzip_buffers 4 8k;
gzip_types text/plain;
output_buffers 1 32k;
postpone_output 1460;
#设定access log
access_log logs/access.log main;
client_header_timeout 3m;
client_body_timeout 3m;
send_timeout 3m;
sendfile on;
tcp_nopush on;
tcp_nodelay on;
keepalive_timeout 65;
#设定负载均衡的服务器列表
ups教程tream mysvr {
#weigth参数表示权值,权值越高被分配到的几率越大
#本机上的squid开启3128端口
server 192.168.8.1:3128 weight=5;
server 192.168.8.2:80 weight=1;
server 192.168.8.3:80 weight=6;
} 1 2 3 4 5 6

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn