歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> 關於Linux >> Nginx在LAMP上的擴充

Nginx在LAMP上的擴充

日期:2017/3/1 14:02:29   编辑:關於Linux
Nginx在LAMP上的擴充 在原來搭建好LAMP的基礎上安裝nginx [root@localhost nginx-1.0.15]# yum install libxslt-devel [root@localhost ~]# tar xf pcre-8.33.tar.gz -C /usr/src/ [root@localhost ~]# cd /usr/src/pcre-8.33/ [root@localhost pcre-8.33]# ./configure && make && make install [root@localhost nginx-1.0.15]# wget http://nginx.org/download/nginx-1.0.15.tar.gz [root@localhost nginx-1.0.15]# ./configure --error-log-path=/var/log/nginx/error.log --pid-path=/var/run/nginx/nginx.pid --user=daemon --group=daemon --with-rtsig_module --with-select_module --with-poll_module --with-ipv6 --with-http_ssl_module --with-http_realip_module --with-http_addition_module --with-http_xslt_module --with-http_image_filter_module --with-http_sub_module --with-http_dav_module --with-http_gzip_static_module --with-http_flv_module --with-http_perl_module --with-perl=/usr/bin/perl --http-log-path=/var/log/nginx/access.log --with-pcre --with-pcre=/usr/src/pcre-8.33/ --with-http_stub_status_module [root@localhost nginx-1.0.15]# make && make install [root@localhost conf]# vi /usr/local/nginx/conf/nginx.conf user daemon; worker_processes 1; error_log /var/log/nginx/error.log info; pid /var/run/nginx/nginx.pid; events { worker_connections 1024; } http { include mime.types; default_type application/octet-stream; log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"'; access_log /var/log/nginx/access.log main; sendfile on; #tcp_nopush on; #keepalive_timeout 0; keepalive_timeout 65; #gzip on; server { listen 80; server_name localhost; charset gb2312; access_log /var/log/nginx/access.log main; location / { root /www; index index.html index.htm; } error_page 404 /404.html; # redirect server error pages to the static page /50x.html # error_page 500 502 503 504 /50x.html; location = /50x.html { root /www; } location ~ \.php$ { root /www; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME /www$fastcgi_script_name; include fastcgi_params; } } [root@localhost nginx]# cd sbin/ [root@localhost sbin]# ls nginx [root@localhost sbin]# ./nginx [root@localhost sbin]# lsof -i:80 COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME nginx 14359 root 6u IPv4 21618 TCP *:http (LISTEN) nginx 14360 daemon 6u IPv4 21618 TCP *:http (LISTEN) [root@localhost sbin]# pwd /usr/local/nginx/sbin PHP安裝 [root@localhost ~]# tar xf /softs/php-5.3.27.tar.bz2 -C /usr/src/ [root@localhost php-5.3.27]# ./configure --disable-ipv6 --with-libxml-dir=/usr --with-openssl=/usr --with-pcre-regex=/usr/local --with-zlib=/usr --with-bz2=/usr --enable-calendar --with-curl=/usr --with-pcre-dir=/usr/local --enable-ftp --with-openssl-dir=/usr --with-gd=/usr/local --with-jpeg-dir=/usr/local --with-png-dir=/usr/local --with-zlib-dir=/usr/local --with-xpm-dir=/usr --with-freetype-dir=/usr/local --enable-gd-native-ttf --enable-gd-jis-conv --with-mhash=/usr/local --enable-mbstring --with-mcrypt=/usr/local --with-mysql=/usr/local/mysql --with-mysql-sock=/var/run/mysqld/mysql5.socket --with-mysqli=/usr/local/mysql/bin/mysql_config --with-snmp=/usr --enable-sockets --enable-zip && make && make install [root@localhost cgi]# ./php-cgi -a -b 127.0.0.1:9000 -c /usr/local/lib/php.ini & [2] 9879 [1] 宸叉姝? ./php-cgi -a -b 127.0.0.1:9000 -c /usr/local/lib/php.ini [root@localhost cgi]# pwd /usr/src/php-5.3.27/sapi/cgi 訪問 127.0.0.1/index.php 現在只有一個php-cgi進程,當大量的並發請求時,這是不夠的。所以我用壓力測試軟件http_load測試一下 [root@localhost softs]# wget http://icn.me/http_load_tar_gz [root@localhost http_load-12mar2006]# make && make install [root@localhost www]# http_load -parallel 100 -seconds 10 url.txt http://192.168.254.153/a.php: byte count wrong http://192.168.254.153/a.php: byte count wrong http://192.168.254.153/a.php: byte count wrong http://192.168.254.153/a.php: byte count wrong http://192.168.254.153/a.php: byte count wrong 30431 fetches, 100 max parallel, 5.06531e+06 bytes, in 10 seconds 166.452 mean bytes/connection 3043.1 fetches/sec, 506531 bytes/sec msecs/connect: 0.272351 mean, 137.327 max, 0.012 min msecs/first-response: 17.6569 mean, 3034.86 max, 0.097 min 29934 bad byte counts HTTP response codes: code 200 -- 497 code 404 -- 29934 當並發數為100時,掛掉了,所以我們需要差生多個php-cgi進程,這裡引入一個工具spqwn-fcgi [root@localhost spawn-fcgi-1.6.3]# wget http://download.lighttpd.net/spawn-fcgi/releases-1.6.x/spawn-fcgi-1.6.3.tar.gz [root@localhost spawn-fcgi-1.6.3]# tar xf spawn-fcgi-1.6.3.tar.gz [root@localhost spawn-fcgi-1.6.3]# cd spawn-fcgi-1.6.3 [root@localhost spawn-fcgi-1.6.3]# ./configure && make && make install [root@localhost src]# spawn-fcgi -f /usr/local/bin/php spawn-fcgi: no socket given (use either -p or -s) [root@localhost src]# spawn-fcgi -f /usr/local/bin/php-cgi -a 127.0.0.1 -u daemon -p 9000 -C 150 spawn-fcgi: child spawned successfully: PID: 11498 [root@localhost src]# ps -e | grep php | wc 151 604 4832 [root@localhost www]# http_load -parallel 100 -seconds 10 url.txt 33289 fetches, 100 max parallel, 432757 bytes, in 10 seconds 13 mean bytes/connection 3328.9 fetches/sec, 43275.7 bytes/sec msecs/connect: 0.0322589 mean, 0.809 max, 0.024 min msecs/first-response: 29.9192 mean, 117.142 max, 8.778 min HTTP response codes: code 200 -- 33289
Copyright © Linux教程網 All Rights Reserved