<b>动态nginx缓存优化加快搭建教程</b>[服务器安全]
本文“<b>动态nginx缓存优化加快搭建教程</b>[服务器安全]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
Nginx+php(FastCGI)+Memcached+Mysql+APC高性能web服务器安装
下面来具体实现下LEMP架构(linux+nginx+mysql+php/perl/python)
大概有朋友对静态动态解析历程不太清楚,笔者按照自己理解简单阐述,若有错误地方请前辈多加指导.
nginx只是供应一个静态web服务,动态web服务还需求与PHP等脚本语言结合利用.
Nginx+php(FastCGI)+Memcached+Mysql+APC 是目前主流的高性能服务器搭建方法!合适大中型网站,小型站长也可以采取这种组合!
前面 nginx php mysql大家已经很熟习了,这里简单介绍下 memcached 和 APC .
一:memcached
在很多场所,我们城市听到 memcached 这个名字,但很多同学只是听过,并没有效过或实际理解过,只知道它是一个很不错的东东.这里简单介绍一下,memcached 是高效、快速的分布式内存对象缓存系统,主要用于加快 WEB 动态利用程序.由于nginx对静态网站加快效果明显,而动态一向效果不太好,有了memcached,生活将变得简单.
二:APC
Alternative PHP Cache(APC)是 PHP 的一个免费公开的优化代码缓存.它用来供应免费,公开并且健旺的架构来 缓存和优化 PHP 的中间代码.
安装配置:
预备工作,需求上面提到的软件别的还有两个包mysql-5.1.41.tar.gz、php-5.3.5.tar.gz (其他类似版本也可以)可以在官网下载.
1、编译安装Nginx (安装nginx之前需求安装pcre包和zlib以支慎重写,正则以及网页紧缩等等)
(1)首先配置安装pcre:
cd /usr/src &&tar xzf pcre-8.01.tar.gz &&cd pcre-8.01 && ./configure --prefix=/usr/local/pcre &&make &&make install
(2)然后再编译安装nginx :
useradd www && cd /usr/src && tar xzf nginx-0.7.61.tar.gz &&cd nginx-0.7.61 && ./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-openssl=/usr/ --with-pcre=/usr/src/pcre-8.01 --user=www --group=www &&make &&make install
【nginx注意* --with-pcre=/usr/src/pcre-8.01指向的是源码包解压的途径,而不是安装的途径,不然会报make[1]: *** [/usr/local/pcre/Makefile] Error 127 错误】
2、接下来安装mysql
(1)、cd /usr/src && tar xzf mysql-5.1.41.tar.gz && cd mysql-5.1.41 && ./configure --prefix=/usr/local/mysql/ --enable-assembler --with-extra-charsets=complex --enable-thread-safe-client --with-big-tables --with-readline --with-ssl --with-embedded-server --enable-local-infile --with-plugins=innobase && make &&make install
(2)、mysql安装完毕,成立mysql用户和组并初始化数据库,并启动数据库.
cd /usr/local/mysql && useradd mysql && chown -R mysql:mysql /usr/local/mysql && /usr/local/mysql/bin/mysql_install_db --user=mysql && chown -R mysql:mysql var/ && ./bin/mysqld_safe --user=mysql &
【假如mysql启动报错,请查抄 /usr/local/mysql/var 目录,mysql能否有权限】
3、安装 php :
cd /usr/src &&tar xzf php-5.3.5.tar.gz && cd php-5.3.5 && ./configure --prefix=/usr/local/php --with-config-file-path=/usr/local/php/etc --with-mysql=/usr/local/mysql --with-mysqli=/u
sr/local/mysql/bin/mysql_config --with-iconv-dir=/usr/local --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --with-li
bxml-dir=/usr --enable-xml --disable-rpath --enable-discard-path --enable-safe-mode --enable-bcmath --enable-shmop --enable-sysvsem
--enable-inline-optimization --with-curl --with-curlwrappers --enable-mbregex --enable-fpm --enable-sockets && make &&make install
安装完毕!【注意这个参数在此可以不加--enable-fastcgi;其他之前版本需求加上,以上安装按照自己的挑选增添,假如报错,按照具体报错找缘由】
4、整合Nginx和php(FastCGI)安装完php-5.3.5后支持fastCGI
(1)、配置nginx ,拷贝nginx配置文件:
user www www;
worker_processes 8;
error_log /usr/local/nginx/logs/error.log crit;
pid /usr/local/nginx/nginx.pid;
#Specifies the value for maximum file descriptors that can be opened by this process.
worker_rlimit_nofile 51200;
events
{
use epoll;
worker_connections 51200;
}
http
{
include mime.types;
default_type application/octet-stream;
charset utf-8;
error_page 400 404 403 500 502 503 http://blog.mgcrazy.com;
server_names_hash_bucket_size 128;
client_header_buffer_size 2k;
large_client_header_buffers 4 4k;
client_max_body_size 8m;
sendfile on;
tcp_nopush on;
keepalive_timeout 60;
fastcgi_cache_path /usr/local/nginx/fastcgi_cache levels=1:2
keys_zone=TEST:10m
inactive=5m;
fastcgi_connect_timeout 300;
fastcgi_send_timeout 300;
fastcgi_read_timeout 300;
fastcgi_buffer_size 4k;
fastcgi_buffers 8 4k;
fastcgi_busy_buffers_size 8k;
fastcgi_temp_file_write_size 8k;
##以下设置fastcGI_cache缓存,加快你的web站点!
fastcgi_cache TEST;
fastcgi_cache_valid 200 302 1h;
fastcgi_cache_valid 301 1d;
fastcgi_cache_valid any 1m;
fastcgi_cache_min_uses 1;
fastcgi_cache_use_stale error timeout invalid_header http_500;
fastcgi_cache_key http://$host$request_uri;
open_file_cache max=204800 inactive=20s;
open_file_cache_min_uses 1;
open_file_cache_valid 30s;
tcp_nodelay on;
gzip on;
gzip_min_length 1k;
gzip_buffers 4 16k;
gzip_http_version 1.0;
gzip_comp_level 2;
gzip_types text/plain application/x-javascript text/css application/xml;
gzip_vary on;
##设置301跳转,让二级域名跳转到你规定的url;
server
{
listen 80;
server_name blog.mgcrazy.com wgkgood.gicp.net linux.mgcrazy.com;
if ($host = 'wgkgood.gicp.net' ) {
rewrite ^/(.*)$ http://blog.mgcrazy.com/$1 permanent;
}
if ($host = 'linux.mgcrazy.com' ) {
rewrite ^/(.*)$ http://blog.mgcrazy.com/$1 permanent;
}
index index.php index.htm index.html;
root /home/webapps/www;
#limit_conn crawler 20;
location ~ .*\.(php|php5)?$
{
#fastcgi_pass unix:/tmp/php-cgi.sock;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
include fcgi.conf;
}
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
{
expires 30d;
}
location ~ .*\.(js|css)?$
{
expires 1h;
}
log_format access '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" $http_x_forwarded_for';
access_log /usr/local/nginx/logs/access.log access;
}
}
Nginx配置完毕!启动nginx ;/usr/local/nginx/sbin/nginx 便可,重启nginx号令以下/usr/local/nginx/sbin/nginx –s reload
(2)、配置fcgi.conf文件以下
fastcgi_param GATEWAY_INTERFACE CGI/1.1;
fastcgi_param SERVER_SOFTWARE nginx;
fastcgi_param QUERY_STRING $query_string;
fastcgi_param REQUEST_METHOD $request_method;
fastcgi_param CONTENT_TYPE $content_type;
fastcgi_param CONTENT_LENGTH $content_length;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param SCRIPT_NAME $fastcgi_script_name;
fastcgi_param REQUEST_URI $request_uri;
fastcgi_param DOCUMENT_URI $document_uri;
fastcgi_param DOCUMENT_ROOT $document_root;
fastcgi_param SERVER_PROTOCOL $server_protocol;
fastcgi_param REMOTE_ADDR $remote_addr;
fastcgi_param REMOTE_PORT $remote_port;
fastcgi_param SERVER_ADDR $server_addr;
fastcgi_param SERVER_PORT $server_port;
fastcgi_param SERVER_NAME $server_name;
# PHP only, required if PHP was built with --enable-force-cgi-redirect
fastcgi_param REDIRECT_STATUS 200;
5、配置php配置文件:
cd /usr/local/php5/etc/ && cp php-fpm.conf.default php-fpm.conf
然后按照提醒编辑php-fpm.conf里面的选项.
开启php-fpm
cp /usr/src/php-5.3.5/sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm 然后启动 /etc/init.d/php-fpm start 便可.
6、安装apc配置:
cd /usr/src && tar xzf APC-3.1.4.tgz &&cd APC-3.1.4
/usr/local/php5/bin/phpize && ./configure --enable-apc --enable-apc-mmap --with-php-config=/usr/local/php5/bin/php-config &&make&& make install
安装完后会生成一个apc.so在/usr/local/php5/lib/php/extensions/no-debug-non-zts-20060613/里面.
7、安装memcached,使fastcGI支持memcached
首先安装libevent
cd /usr/src && tar xzf libevent-1.4.12-stable.tar.gz && cd libevent-1.4.12-stable && ./configure –prefix=/usr/local/libevent &&make && make install
然后安装memcached //缓存加快
tar xzf memcache-2.2.5.tar.gz && cd memcache-2.2.5 && /usr/local/php5/bin/phpize && ./configure –prefix=/usr/local/memcached --with-libevent=/usr/local/libevent --with-php-config=/usr/local/php5/bin/php-config &&make &&make install
安装完后,会在/usr/local/php5/lib/php/extensions/no-debug-non-zts-20060613/里生成一个memcache.so 这个模块:
8、编辑php.ini
默许的php.ini在/usr/local/php5/lib/php.ini
extension_dir = "./" //改正途径
改正成
extension_dir="/usr/local/php5/lib/php/extensions/no-debug-non-zts-20090626"
把下面这些增添到最后:
extension = apc.so
extension=memcache.so //这里引用缓存模块
[APC]
apc.enabled = 1
apc.shm_segments = 1
apc.shm_size = 64M
apc.optimization = 1
apc.num_files_hint = 0
apc.ttl=7200
apc.user_ttl=7200
apc.gc_ttl = 3600
apc.cache_by_default = on
安装到此已经完成!
重新启动nginx和php-fpm ,用测试页面便可拜候.
以上是“<b>动态nginx缓存优化加快搭建教程</b>[服务器安全]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
本文地址: | 与您的QQ/BBS好友分享! |