码迷,mamicode.com
首页 > Web开发 > 详细

Nginx 运维架构之(Nginx+PHP)

时间:2016-08-02 17:17:33      阅读:325      评论:0      收藏:0      [点我收藏+]

标签:web架构 nginx php tomcat apache keepalived

  1、首先我们来看下web服务器的排名情况

技术分享

可以看到Nginx占有30.6%,Apache 52.0%,Nginx特点如下

1、配置简单,灵活,轻量。

2、高并发(静态小文件),静态几万的并发

3、占用资源少

4、功能种类比较多(web,cache,proxy),每一个功能都不是特别强

5、支持epoll模型,使得nginx可以支持高并发 Apache 选择 select模型

6、nginx可以搭配动态服务(FASTCGI接口)

6、利用nginx可以对ip限速,可以限制连接数


并发能力

nginx 1-3万  php 300-800  db 300-800.日pv2000万以下,并发1万以下都可以用nginx做反向代理


2、nginx的安装(centos6.7)

[root@centos02 tools]#  yum install pcre pcre-devel openssl-devel -y
[root@centos02 tools]# wget  http://nginx.org/download/nginx-1.6.3.tar.gz 
[root@centos02 tools]# tar xf nginx-1.6.3.tar.gz 
[root@centos02 tools]# cd nginx-1.6.3
[root@centos02 nginx-1.6.3]# useradd -s /sbin/nologin -M nginx
[root@centos02 nginx-1.6.3]# ./configure --prefix=/application/nginx-1.6.3 --user=nginx --group=nginx  --with-http_stub_status_module --with-http_ssl_module
[root@centos02 nginx-1.6.3]# make && make install    
[root@centos02 nginx-1.6.3]# ln -s /application/nginx-1.6.3/ /application/nginx
[root@centos02 nginx-1.6.3]#  /application/nginx/sbin/nginx -t   检查语法
[root@centos02 nginx-1.6.3]#  /application/nginx/sbin/nginx   启动nginx

简单截图下安装过程

技术分享


技术分享

访问下nginx服务

技术分享

技术分享


一份简单的nginx配置

[root@centos02 conf]# cat nginx.conf
worker_processes  2;
events {
    worker_connections  1024;
}
http {
log_format  main  ‘$remote_addr - $remote_user [$time_local] "$request" ‘
                      ‘$status $body_bytes_sent "$http_referer" ‘
                      ‘"$http_user_agent" "$http_x_forwarded_for"‘;
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  65;
    server {
        listen       80;
        server_name  www.martin.com martin.com;
        location / {
            root   html/www;
            index  index.php index.html index.htm;
        }
        
         
        location ~ .*\.(php|php5)?$ {
            root  html/www;
            fastcgi_pass 127.0.0.1:9000;
            fastcgi_index index.php;
            include fastcgi.conf;
               }
         access_log  logs/access_www.log  main;        
   }
            
    server {
        listen       80;
        server_name  bbs.martin.com;
        location / {
            root   html/bbs;
            index  index.php index.html index.htm;
        }
      
             
        location ~ .*\.(php|php5)?$ {
            fastcgi_pass 127.0.0.1:9000;
            fastcgi_index index.php;
            include fastcgi.conf;
               }
         access_log  logs/access_bbs.log  main;       
    }
###status
   server{
      listen 80;
      server_name status.martin.org;
      location / {
      stub_status on;
      access_log off;
        }
   }
}


3、数据库MySQL的安装

[root@centos02 tools]# wget http://dev.mysql.com/get/Downloads/MySQL-5.5/mysql-5.5.49-linux2.6-x86_64.tar.gz   
 这是个二进制包,无需编译 
[root@centos02 tools]# tar xf mysql-5.5.49-linux2.6-x86_64.tar.gz 
[root@centos02 tools]# useradd -s /sbin/nologin -M mysql
[root@centos02 tools]# mv mysql-5.5.49-linux2.6-x86_64 /application/mysql-5.5.49 
[root@centos02 tools]# ln -s /application/mysql-5.5.49/  /application/mysql
[root@centos02 tools]#  /application/mysql/scripts/mysql_install_db --basedir=/application/mysql  --datadir=/application/mysql/data/ --user=mysql
[root@centos02 tools]# sed -i ‘s#/usr/local/mysql#/application/mysql#g‘ /application/mysql/support-files/mysql.server 
[root@centos02 tools]# cp /application/mysql/support-files/mysql.server /etc/init.d/mysqld 
[root@centos02 tools]# chmod +x /etc/init.d/mysqld

过程中的相关截图

技术分享

技术分享


4、php的安装

技术分享


php的安装(5.3.27),需要先安装nginx和mysql

[root@centos02 libiconv-1.14]# wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-6.repo
[root@centos02 tools]# yum install zlib-devel libxml2-devel libjpeg-devel libiconv-devel -y
[root@centos02 tools]# yum install freetype-devel libpng-devel gd-devel curl-devel libxslt-devel -y
[root@centos02 libiconv-1.14]# yum -y install libmcrypt-devel mhash mhash-devel mcrypt libxslt-devel 
[root@centos02 tools]# wget http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.14.tar.gz 
[root@centos02 tools]# tar xf libiconv-1.14.tar.gz 
[root@centos02 tools]# cd libiconv-1.14
[root@centos02 libiconv-1.14]# ./configure --prefix=/usr/local/libiconv
[root@centos02 libiconv-1.14]# make && make install
[root@centos02 tools]# tar xf php-5.3.27.tar.gz 
[root@centos02 tools]# cd php-5.3.27
[root@centos02 php-5.3.27]#  ./configure > --prefix=/application/php5.3.27 > --with-mysql=/application/mysql > --with-iconv-dir=/usr/local/libiconv > --with-freetype-dir > --with-jpeg-dir > --with-png-dir > --with-zlib > --with-libxml-dir=/usr > --enable-xml > --disable-rpath > --enable-safe-mode > --enable-bcmath > --enable-shmop > --enable-sysvsem > --enable-inline-optimization > --with-curl > --with-curlwrappers > --enable-mbregex > --enable-fpm > --enable-mbstring > --with-mcrypt > --with-gd > --enable-gd-native-ttf > --with-openssl > --with-mhash > --enable-pcntl > --enable-sockets > --with-xmlrpc > --enable-zip > --enable-soap > --enable-short-tags > --enable-zend-multibyte > --enable-static > --with-xsl > --with-fpm-user=nginx > --with-fpm-group=nginx > --enable-ftp
[root@centos02 php-5.3.27]# make

报错如下

技术分享

解决方法:

[root@centos02 php-5.3.27]#  ln -s /application/mysql/lib/libmysqlclient.so.18  /usr/lib64/
[root@centos02 php-5.3.27]# touch ext/phar/phar.phar
[root@centos02 php-5.3.27]# make && make install


技术分享

[root@centos02 php-5.3.27]# ln -s /application/php5.3.27/ /application/php
[root@centos02 php-5.3.27]# cp php.ini-production /application/php/lib/php.ini
[root@centos02 php-5.3.27]#  cd /application/php/etc/
[root@centos02 etc]# cp php-fpm.conf.default php-fpm.conf
[root@centos02 etc]# cat php-fpm.conf
[global]
[www]
user = nginx
group = nginx
listen = 127.0.0.1:9000
pm = dynamic
pm.max_children = 5
pm.start_servers = 2
pm.min_spare_servers = 1
pm.max_spare_servers = 3
[root@centos02 etc]#  /application/php/sbin/php-fpm

[root@centos02 etc]#  netstat -lantup|grep php-fpm

技术分享

 

/application/nginx/html/www
[root@centos02 www]# cat index.php 
<?php
phpinfo()
?>

打开浏览器访问测试

技术分享


至此整个架构完成,下次我们再介绍nginx+tomcat   nginx+keepalived

本文出自 “厚德载物” 博客,谢绝转载!

Nginx 运维架构之(Nginx+PHP)

标签:web架构 nginx php tomcat apache keepalived

原文地址:http://huaxin.blog.51cto.com/903026/1833506

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!