测试环境:centos-2.6.32.x86_64+nginx-1.2.5+php-5.4.6
总体来说nginx的有以下八大优点:
1.高并发连接:官方测试能支撑5万并发连接,在实际生产环境中跑到2,~3W并发连接。
2.内存消耗少:在3W并发连接下,开启的10个NGINX进程才消耗150M内存(15M*10=150M)
3.配置文件非常简单:风格跟程序一样通俗易懂。
4.成本低廉:Nginx作为开源软件,可以免费使用,而购买F5 BIG-IP、NetScaler
等硬件负载均衡交换机则需要十多万至几十万人民币。
5.支持rewrite重写规则:能够根据域名、URL的不同,将HTTP请求分发到不同的后端服务器群组。
6.内置的健康检查功能:如果Nginx Proxy后端的后台web服务器宕机了,不会音响前端访问。
7.节省带宽:支持GZIP压缩,可以添加浏览器本地缓存的Header头。
8.稳定性高:用于反向代理,宕机的概率微乎其微。
nginx安装配置:
安装前准备环境:
yum install
gcc openssl-devel pcre-devel lib-devel
openssl
下载PCRE:
wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.32.zip
wget http://nginx.org/download/nginx-1.2.5.tar.gz
添加用户www:
useradd www
安装:
安装PCRE:
cd /data/tools/pcre-8.32
./configure
make && make install
安装nginx
./configure --user=www --group=www --prefix=/data/app/nginx/ --with-http_stub_status_module --with-http_ssl_module --with-pcre=../pcre-8.32 && make && make install
修改配置文件:
cp nginx.conf.default nginx.conf
增加PHP解析配置:
location ~ \.php$ {
root html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /data/app/nginx/html$fastcgi_script_name;
include fastcgi_params;
}
设置开机自启:
vi /etc/rc.d/rc.local ,添加如下内容:
/data/app/nginx/sbin/nginx &
或:
添加服务列表,并设置开机自动启动
#chkconfig --add nginx
#chkconfig nginx on
查看配置文件:
[root@dns02 conf]# ps -ef|grep nginx
root 990 1 0 Feb27 ? 00:00:00 nginx: master process /data/app/nginx/sbin/nginx
www 21052 990 0 15:51 ? 00:00:00 nginx: worker process
www 21053 990 0 15:51 ? 00:00:00 nginx: worker process
www 21054 990 0 15:51 ? 00:00:00 nginx: worker process
www 21055 990 0 15:51 ? 00:00:00 nginx: worker process
默认测试页面:
常用命令:
关闭nginx:
./nginx -S stop
pkill -9 nginx(关闭所有nginx进程)
重新加载不重启nginx:
./nginx -s reload
平滑重启nginx:
kill -HUP Nginx 主进程号
或kill -HUP ‘cat /Data/app/nginx/nginx.pid’
检查配置文件:./nginx -t
开放防火墙80端口:
/sbin/iptables -I INPUT -p tcp --dport 80 -j ACCEPT
----------------------------------------------------------------------------------------------
PHP安装配置:
配置基础环境:yum install bzip* libxml* curl curl-devel libpng* libxslt-devel(即使如此,也可能还会缺少其它库或软件)
编译:
'./configure' '--prefix=/data/app/php' '--with-openssl' '--with-kerberos' '--enable-mbstring' '--enable-exif' '--enable-calendar' '--with-curl' '--disable-debug' '--enable-inline-optimization' '--enable-ctype' '--with-bz2' '--with-zlib' '--with-gd' '--with-gettext' '--enable-force-cgi-redirect' '--with-iconv=/usr/local/libiconv' '--enable-gd-native-ttf' '--enable-sockets' '--with-xsl' '--enable-fastcgi' '--with-ldap' '--with-ldap-sasl' '--with-xmlrpc' '--with-jpeg-dir=/usr/local/jpeg' '--with-png-dir=/usr/lib64' '--enable-ctype' '--with-bz2' '--with-zlib' '--with-gd' '--with-iconv' '--with-libxml-dir=/usr/lib64' '--with-config-file-path=/data/app/php/etc' '--enable-fpm'
一路遇到各种报错,编译报错解决办法:
configure: error: Cannot find ldap libraries in /usr/lib.
解决: cp -frp /usr/lib64/libldap* /usr/lib/
configure: error: xslt-config not found. Please reinstall the libxslt >= 1.1.0 d
解决:yum install libxslt-devel
configure: error: jpeglib.h not found.
解决:yum install libjpeg*
configure: error: Cannot find ldap.h
解决:yum install openldap openldap-devel
修改配置文件:
复制:cp php-fpm.conf.default php-fpm.conf
修改:
pm.max_children = 50
pm.start_servers = 10
pm.min_spare_servers = 5
pm.max_spare_servers = 35
启动PHP:
/data/app/php/sbin/php-fpm &
添加到启动项:
vi /etc/rc.d/rc.local ,添加如下内容:
/data/app/php/sbin/php-fpm &
查看进程:
[root@dns01 etc]# ps -ef|grep php
root 1217 1 0 11:08 ? 00:00:00 php-fpm: master process (/data/app/php/etc/php-fpm.conf)
nobody 1218 1217 0 11:08 ? 00:00:00 php-fpm: pool www
nobody 1219 1217 0 11:08 ? 00:00:00 php-fpm: pool www
nobody 1220 1217 0 11:08 ? 00:00:00 php-fpm: pool www
nobody 1221 1217 0 11:08 ? 00:00:00 php-fpm: pool www
nobody 1222 1217 0 11:08 ? 00:00:00 php-fpm: pool www
nobody 1223 1217 0 11:08 ? 00:00:00 php-fpm: pool www
nobody 1224 1217 0 11:08 ? 00:00:00 php-fpm: pool www
nobody 1225 1217 0 11:08 ? 00:00:00 php-fpm: pool www
nobody 1226 1217 0 11:08 ? 00:00:00 php-fpm: pool www
nobody 1227 1217 0 11:08 ? 00:00:00 php-fpm: pool www
测试PHP页面php.php:
至此已基本完成环境部署。