Nginx ("engine x") 是一个高性能的 HTTP 和反向代理服务器,也是一个 IMAP/POP3/SMTP 代理服务器。 Nginx 是由 Igor Sysoev 为俄罗斯访问量第二的 Rambler.ru 站点开发的,它已经在该站点运行超过两年半了。Igor 将源代码以类BSD许可证的形式发布。
Nginx 超越 Apache 的高性能和稳定性,使得国内使用 Nginx 作为 Web 服务器的网站也越来越多,其中包括
新浪博客、
新浪播客、
网易新闻等门户网站频道,
六间房、
56.com等视频分享网站,
Discuz!官方论坛、
水木社区等知名论坛,
豆瓣、
YUPOO相册、
海内SNS、
迅雷在线等新兴Web 2.0网站。
实验环境
Centos4.5
pcre-7.8.tar.gz 正则表达式
下载地址:
ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/
nginx-0.7.26.tar
下载地址:
http://www.nginx.net/
php-5.2.6.tar.bz2
下载地址:
http://www.php.net/releases/
php-5.2.6-fpm-0.5.9.diff.gz
php-fpm是为
PHP打的一个FastCGI
管理补丁,可以平滑变更php.ini配置而无需重启php-cgi
下载地址:
http://php-fpm.anight.org/
注:PHP的版本要和fpm的版本一致
my
sql-5.0.67.tar.gz
Discuz!_6.0.0_SC_UTF8.zip
1、安装pcre
# tar -zxvf pcre-7.8.tar.gz
# cd pcre-7.8
# ./configure
# make && make install
2、安装nginx
# tar -zxvf nginx-0.7.26.tar.gz
# cd nginx-0.7.26
# ./configure --prefix=/usr/local/nginx
# make && make install
启动nginx
# /usr/local/nginx/sbin/nginx
停止nginx
# kill -QUIT `cat /usr/local/nginx/logs/nginx.pid`
重启nginx
kill -HUP `cat /usr/local/nginx/logs/nginx.pid`
添加到自启动
# echo "/usr/local/nginx/sbin/nginx">>/etc/rc.local
3、安装
mysql
# tar -zxvf mysql-5.0.67.tar.gz
# cd mysql-5.0.67
# groupadd mysql
# useradd -g mysql -s /sbin/nologin -M mysql
# ./configure --prefix=/usr/local/mysql --with-charset=gbk --with-extra-charset=all --enable-hread-safe-client --enable-local-infile --with-low-memory
# make && make install
# cp support-files/my-medium.cnf /etc/my.cnf
# chown -R mysql.mysql /usr/local/mysql/
# /usr/local/mysql/bin/mysql_install_db --user=mysql
# chown -R root.root /usr/local/mysql/
# chown -R mysql.mysql /usr/local/mysql/var/
启动
数据库服务,并添加到自启动
# /usr/local/mysql/bin/mysqld_safe --user=mysql &
#cp support-files/mysql.server /etc/rc.d/init.d/mysqld
#chmod 755 /etc/rc.d/init.d/mysqld
加入自动启动服务队列:
#chkconfig --add mysqld
#chkconfig --level 345 mysqld on
添加root密码
# /usr/local/mysql/bin/mysqladmin -u root password "123456"
测试一下:
# /usr/local/mysql/bin/mysql -u root -p
输入密码:123456,看能不能进入到
数据库
配置库
文件搜索路径
# echo "/usr/local/mysql/lib/mysql">>/etc/ld.so.conf
# ldconfig
# ldconfig -v
添加/usr/local/mysql/bin到环境变量PATH中
#echo "export PATH=$PATH:/usr/local/mysql/bin">>/etc/profile
#source /etc/profile
4、安装PHP
这里产生的是可执行文件,和
apache的不一样,和apache结合的时候产生的是动态库
# tar -jxvf php-5.2.6.tar.bz2
# gzip -cd php-5.2.6-fpm-0.5.9.diff.gz |patch -d php-5.2.6 -p1
# cd php-5.2.6
# ./configure --prefix=/usr/local/php --with-mysql=/usr/local/mysql --enable-fastcgi --enable-fpm --with-config-file-path=/usr/local/php/etc --enable-force-cgi-redirect
# make && make install
# cp php.ini-recommended /usr/local/php/etc/php.ini
# vi /usr/local/php/php-fpm.conf
(1)<value name="listen_address">127.0.0.1:9000</value>
修改为<value name="listen_address">IP:9000</value> //本机就用默认的127.0.0.1
(2)下面这两行去掉注释并修改
<value name="sendmail_path">/usr/sbin/sendmail -t -i</value>
<value name="display_errors">1</value>
(3)<value name="user">nobody</value> //去注释
(4)<value name="group">nobody</value> //去注释
(5)<value name="allowed_clients">127.0.0.1</value> //允许连接的PC,本机就用127.0.0.1
启动php-fpm
# /usr/local/php/sbin/php-fpm start
添加到自启动
# echo "/usr/local/php/sbin/php-fpm start">>/etc/rc.local
5、修改nginx的配置文件,支持PHP
# vi /usr/local/nginx/conf/nginx.conf
user nobody;
worker_processes 8;
pid /usr/local/nginx/logs/nginx.pid;
worker_rlimit_nofile 1024;
events
{
use epoll;
worker_connections 1024;
}
http{
include mime.types;
default_type application/octet-stream;
server_names_hash_bucket_size 128;
client_header_buffer_size 32k;
large_client_header_buffers 4 32k;
client_max_body_size 8m;
sendfile on;
tcp_nopush on;
keepalive_timeout 60;
tcp_nodelay on;
fastcgi_connect_timeout 300;
fastcgi_send_timeout 300;
fastcgi_read_timeout 300;
fastcgi_buffer_size 64k;
fastcgi_buffers 4 64k;
fastcgi_busy_buffers_size 128k;
fastcgi_temp_file_write_size 128k;
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;
server {
listen 80;
server_name
www.bbb.com;
root /var/www/blog;
index index.html index.htm index.php;
location ~ .*\.(php|php5)?$ {
root html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /var/www/blog$fastcgi_script_name;
include fastcgi_params;
}
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 /var/logs/access.log access;
}
}
注:
server部分为PHP虚拟主机
127.0.0.1:9000为fastcgi的PC,我这里用的本机
/var/www/blog$fastcgi_script_name; 为PHP网页保存的目录
测试配置文件:
# /usr/local/nginx/sbin/nginx -t
6、优化Linux内核参数
# vi /etc/sysctl.conf
在末尾增加以下内容:
net.ipv4.tcp_fin_timeout = 30
net.ipv4.tcp_keepalive_time = 300
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_tw_recycle = 1
net.ipv4.ip_local_port_range = 5000 65000
使配置立即生效:
# /sbin/sysctl -p
转载于:https://www.cnblogs.com/top5/archive/2009/08/12/1544095.html