知识屋:更实用的电脑技术知识网站
所在位置:首页 > 操作系统 > linux

Nginx 动静分离

发布时间:2014-09-05 17:05:42作者:知识屋

nginx是一个高性能的web服务器和反向代理服务器,因为稳定,底系统资源消耗而闻名。

但nginx效率虽然高,面临巨大的访问量时还是避免不了出现瓶颈。如今web服务器都会跑动态+静态的页面。后面的solr也有专门的动态静态的索引分工。当访问量较大的时候,有一种可行的应用:把nginx装一台服务器上,php+mysql装到另一台服务器。这样就减轻了服务器的负载。

环境描述:

192.168.253.129 服务器上装有nginx

192.168.253.131 服务器上装有php+mysql

一 在129上安装nginx

1 安装pcre ,因为nginx要根据正则表达式查询php请求

#rpm -qa | grep pcre              //查询系统中有没有安装PCRE,一般装系统是默认装有,所以我们要删掉系统自带的

#cp /lib64/libpcre.so.0 /            //在删除系统自带的PCRE之前,要先备份一下libpcre.so.0这个文件,因为RPM包的关联性太强,在删除后没libpcre.so.0这个文件时我们装PCRE是装不上的

rpm -e --nodeps pcre-6.6-2.el5_1.7       //删除系统自带的PCRE

tar -zxf pcre-7.8.tar.gz

cd pcre-7.8

cp /libpcre.so.0 /lib64/              //把我们删除系统自带的PCRE之前备份的libpcre.so.0拷贝到/lib 目录下

./configure         //配置PCRE,因为PCRE是一个库,而不是像pache、php、postfix等这样的程序,所以我们安装时选择默认路径即可,这样会在后面安装其它东西时避免一些不必要的麻烦,执行完这部后会显示出下图,上面显示了我们对PCRE的配置

make & make install

2 安装nginx

tar -zxf nginx-0.7.30.tar.gz

cd nginx-0.7.30

./configure --prefix=/usr/local/nginx      //此处在本环节只需指定一个路径

make && make install

 

二 在31上安装php+mysql

1         安装mysql

useradd mysql

tar zxvf mysql-5.0.40.tar.gz

cd mysql-5.0.40

./configure --prefix=/usr/local/mysql

make && make install

/usr/local/mysql/bin/mysql_install_db --user=mysql          //初始化MySQL数据库

chown -R mysql /usr/local/mysql/var

/usr/local/mysql/bin/mysqld_safe &          //启动MySQL

/usr/local/mysql/bin/mysqladmin -u root password 123456    //设置MySQL密码

cp support-files/my-medium.cnf /etc/my.cnf

echo "/usr/local/mysql/bin/mysqld_safe &" >>/etc/rc.local

安装php

首先我们把PHP和PHP-FPM下载到同一目录下,此次用的为php-5.3.0.tar.bz2和php-5.3.0-fpm-0.5.12.diff.gz,下载到了同一目录下

tar xvf php-5.3.0.tar.bz2

gzip -cd php-5.3.0-fpm-0.5.12.diff.gz | patch -d php-5.3.0 -p1          //将php-5.3.0-fpm-0.5.12.diff.gz以补丁形式加到php-5.3.0里面

cd php-5.3.0

./configure --prefix=/usr/local/php --enable-fastcgi --enable-fpm --with-mysql=/usr/local/mysql

make && make install

cp php.ini-dist /usr/local/php/etc/php.ini

三 在131上进行配置

修改php-fpm配置文件

1把127.0.0.1改成本机ip <value name="listen_address">192.168.253.131:9000</value>

2去掉注释,以nobody用户来运行php

Unix user of processes

 <value name="user">nobody</value>

 Unix group of processes

 <value name="group">nobody</value>

3修改客户端ip为192.168.253.129 ,只接受nginx的请求

<value name="allowed_clients">192.168.253.129</value>

建立一个php测试页面

Mkdir –p /www/html

Vim /www/html/index.php

<?php

Phpinfo();

?>

四 配置nginx在192.168.253.129

Vim /usr/local/nginx/conf/nginx/conf

打开CGI部分的注释,修改ip成192.168.253.131 ,并修改php文件的路径为/www/html

location ~ /.php$ {

            root           html;

            fastcgi_pass   192.168.253.131:9000;

            fastcgi_index  index.php;

            fastcgi_param  SCRIPT_FILENAME  /www/html$fastcgi_script_name;

            include        fastcgi_params;

        }

测试:

http://192.168.253.129/index.php

会显示存放在131下的测试页面index.php

 

 本文出自 “放逐” 博客

(免责声明:文章内容如涉及作品内容、版权和其它问题,请及时与我们联系,我们将在第一时间删除内容,文章内容仅供参考)
收藏
  • 人气文章
  • 最新文章
  • 下载排行榜
  • 热门排行榜