设为首页 收藏本站
查看: 911|回复: 0

[经验分享] Centos系统--利用Nginx架设高性能的Web环境

[复制链接]

尚未签到

发表于 2018-11-13 07:42:53 | 显示全部楼层 |阅读模式
实验环境  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 &
  #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)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
  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


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.iyunv.com/thread-634290-1-1.html 上篇帖子: nginx+apache+mysql+php+memcached+squid搭建门户网站 下篇帖子: Let's Encrypt: CentOS/RHEL 7下的nginx安装https
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表