徐州企业免费建站,深圳市建设项目,手机网站添加微信方式,海南封岛最新消息LNMP基于FastCGI实现Nginx,PHP,MySQL的分离[日期#xff1a;2012-11-12]来源#xff1a;Linux社区作者#xff1a;laoguang[字体#xff1a;大 中 小]平时安装LNMP是把它们安装到同一台机器上#xff0c;我想这个对大家来说丝毫没有挑战#xff0c;下面我们实现把他们剥离…LNMP基于FastCGI实现Nginx,PHP,MySQL的分离[日期2012-11-12]来源Linux社区作者laoguang[字体大 中 小]平时安装LNMP是把它们安装到同一台机器上我想这个对大家来说丝毫没有挑战下面我们实现把他们剥离到不同的机器上让各个服务器直接分担原来的压力也可以增加节点实现负载均衡如多增加一台php让两台机器轮询的编译php也可以在增加一台nginx实现dns的轮询负载均衡。规划nginx:172.16.1.1php(FASTCGI):172.16.1.2MySQL:172.16.1.3环境RedHat 5.8 32位,yum可以正常使用开发包组Development Tools Development Libraries X Software Development已经安装好如果没有请先安装。SElinux确保已经关闭iptables先关闭之。操作步骤一.在172.16.1.1编译安装nginx1.先安装pcre-develnginx的rewrite功能依赖pcre提供的库。# yum -y install pcre-devel2.为nginx建立用户实现安全运行指定uid的原因是为了与php通过nfs共享时权限方便# groupadd -r -g 5000 nginx# useradd -r -g nginx -u 5000 nginx3.下载并编译安装nginx# wget http://www.nginx.org/download/nginx-1.2.4.tar.gz# tar xvf nginx-1.2.4.tar.gz# cd nginx-1.2.4#./configure \--prefix/usr \--sbin-path/usr/sbin/nginx \--conf-path/etc/nginx/nginx.conf \--error-log-path/var/log/nginx/error.log \--http-log-path/var/log/nginx/access.log \--pid-path/var/run/nginx/nginx.pid \--lock-path/var/lock/nginx.lock \--usernginx \--groupnginx \--with-http_ssl_module \--with-http_flv_module \--with-http_stub_status_module \--with-http_gzip_static_module \--http-client-body-temp-path/var/tmp/nginx/client/ \--http-proxy-temp-path/var/tmp/nginx/proxy/ \--http-fastcgi-temp-path/var/tmp/nginx/fcgi/ \--http-uwsgi-temp-path/var/tmp/nginx/uwsgi \--http-scgi-temp-path/var/tmp/nginx/scgi \--with-pcre##各个选项意思就不讲解了如果需要理解请找google吧# make make install4.为nginx提供SysV init脚本新建文件/etc/rc.d/init.d/nginx内容如下#!/bin/sh## nginx - this script starts and stops the nginx daemon## chkconfig: - 85 15# description: Nginx is an HTTP(S) server, HTTP(S) reverse \# proxy and IMAP/POP3 proxy server# processname: nginx# config: /etc/nginx/nginx.conf# config: /etc/sysconfig/nginx# pidfile: /var/run/nginx.pid# Source function library.. /etc/rc.d/init.d/functions# Source networking configuration.. /etc/sysconfig/network# Check that networking is up.[ $NETWORKING no ] exit 0nginx/usr/sbin/nginxprog$(basename $nginx)NGINX_CONF_FILE/etc/nginx/nginx.conf[ -f /etc/sysconfig/nginx ] . /etc/sysconfig/nginxlockfile/var/lock/subsys/nginxmake_dirs() {# make required directoriesusernginx -V 21 | grep configure arguments: | sed s/[^*]*--user\([^ ]*\).*/\1/g -options$nginx -V 21 | grep configure arguments:for opt in $options; doif [ echo $opt | grep .*-temp-path ]; thenvalueecho $opt | cut -d -f 2if [ ! -d $value ]; then# echo creating $valuemkdir -p $value chown -R $user $valuefifidone}start() {[ -x $nginx ] || exit 5[ -f $NGINX_CONF_FILE ] || exit 6make_dirsecho -n $Starting $prog: daemon $nginx -c $NGINX_CONF_FILEretval$?echo[ $retval -eq 0 ] touch $lockfilereturn $retval}stop() {echo -n $Stopping $prog: killproc $prog -QUITretval$?echo[ $retval -eq 0 ] rm -f $lockfilereturn $retval}restart() {configtest || return $?stopsleep 1start}reload() {configtest || return $?echo -n $Reloading $prog: killproc $nginx -HUPRETVAL$?echo}force_reload() {restart}configtest() {$nginx -t -c $NGINX_CONF_FILE}rh_status() {status $prog}rh_status_q() {rh_status /dev/null 21}case $1 instart)rh_status_q exit 0$1;;stop)rh_status_q || exit 0$1;;restart|configtest)$1;;reload)rh_status_q || exit 7$1;;force-reload)force_reload;;status)rh_status;;condrestart|try-restart)rh_status_q || exit 0;;*)echo $Usage: $0 {start|stop|status|restart|condrestart|try-restart|reload|force-reload|configtest}exit 2esac为此脚本赋予执行权限# chmod x /etc/rc.d/init.d/nginx添加至服务管理列表并让其开机自动启动# chkconfig --add nginx# chkconfig nginx on启动服务并测试# service nginx start直接访问172.16.1.1查看是否有nginx的欢迎信息如果有代表nginx安装一切正常。