cike0415 发表于 2018-11-13 07:42:53

Centos系统--利用Nginx架设高性能的Web环境

实验环境  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的版本一致
  mysql-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- --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 &
  #cpsupport-files/mysql.server/etc/rc.d/init.d/mysqld
  #chmod755/etc/rc.d/init.d/mysqld
  加入自动启动服务队列:
  #chkconfig --add mysqld
  #chkconfig--level345mysqldon
  添加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)127.0.0.1:9000
  修改为IP:9000//本机就用默认的127.0.0.1
  (2)下面这两行去掉注释并修改
  /usr/sbin/sendmail -t -i
  1
  (3)nobody   //去注释
  (4)nobody//去注释
  (5)127.0.0.1   //允许连接的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
  usernobody;
  worker_processes8;
  pid/usr/local/nginx/logs/nginx.pid;
  worker_rlimit_nofile 1024;
  events
  {
  use epoll;
  worker_connections 1024;
  }
  http{
  include       mime.types;
  default_typeapplication/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_length1k;
  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_namewww.bbb.com;
  root   /var/www/blog;
  indexindex.html index.htm index.php;
  location ~ .*\.(php|php5)?$ {
  root         html;
  fastcgi_pass   127.0.0.1:9000;
  fastcgi_indexindex.php;
  fastcgi_paramSCRIPT_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_formataccess'$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.logaccess;
  }
  }
  注:
  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

页: [1]
查看完整版本: Centos系统--利用Nginx架设高性能的Web环境