alonli 发表于 2018-11-10 06:43:05

linux下安装nginx与nginx调优

  linux系统为rhel5.6,nginx版本为nginx-1.1.6.tar.gz,可以到网上下载最新的安装,由于nginx是基于很多模块实现强大的功能,所以要安装并编译其他模块软件包,这里安装的模块软件包有:agentzh-encrypted-session-nginx-module-v0.02-0-gc752861.tar.gz、chunkin-nginx-module-0.23rc2.tar.gz、google-perftools-1.8.3.tar.gz、libunwind-0.99.tar.gz、pcre-8.11.tar.gz、simpl-ngx_devel_kit-v0.2.17-10-g4192ba6.tar.gz,如果有需要还可以下载更多的包进行编译安装,可以到wiki.nginx.org里面下载需要的软件与文档等。安装nginx要先从安装各模块包开始,各模块包的安装没有先后顺序限制,当然在开始安装这些包前要先安装gcc、gcc-c++等工具、先确保系统的80端口没有被占用等先前工作。
  操作过程:
  # yum install gcc gcc-c++ openssl-devel -y   ###准备工作
  # mkdir nginx      ###将nginx模块包放在这个目录中
  # tar zxf agentzh-encrypted-session-nginx-module-v0.02-0-gc752861.tar.gz
  # mv agentzh-encrypted-session-nginx-module-c752861/ encrypted-session-nginx-module    ###该模块仅解压即可,不需要编译安装,需要在编译nginx时将其加进去
  # tar zxf chunkin-nginx-module-0.23rc2.tar.gz
  #mv chunkin-nginx-module-0.23rc2 chunkin-nginx-module    ###该模块仅解压即可,不需要编译安装,需要在编译nginx时将其加进去
  # tar zxf google-perftools-1.8.3.tar.gz
  #mv google-perftools-1.8.3 google-perftools   ###该模块仅解压即可,不需要编译安装,需要在编译nginx时将其加进去
  # cd google-perftools
  # ./configure --enable-frame-pointers####如果是64位系统要加--enable-frame-pointers参数
  # make &&make install    ###该模块编译安装后还要在nginx编译时将其添加进去
  # tar zxf libunwind-0.99.tar.gz
  # mv libunwind-0.99 libunwind
  # cd libunwind
  # ./configure CFLAGS=-fPIC
  # make CFLAGS=-fPIC
  # make install CFLAGS=-fPIC    ####该模块编译安装要加CFLAGS=-fPIC
  # tar zxf pcre-8.11.tar.gz
  # cd pcre-8.11
  # ./configure
  # make
  # make install    ####安装nginx需要的正则表达式包,该软件作用是nginx的rewrite功能需要它
  # tar zxf simpl-ngx_devel_kit-v0.2.17-10-g4192ba6.tar.gz
  # mv simpl-ngx_devel_kit-4192ba6/ simpl-ngx_devel_kit###该模块仅解压即可,不需要编译安装,需要在编译nginx时将其加进去
  # ln -s /usr/local/lib/libprofiler.so.0 /lib/
  # ln -s /usr/local/lib/libprofiler.so.0 /usr/lib/
  # ln -s /usr/local/lib/libunwind.so.7 /lib/
  # ln -s /usr/local/lib/libunwind.so.7 /usr/lib/   ####这4步的软链接需要做,我这里是32位系统,如果是64位系统,可以做下面几步:
  # ln -s /usr/local/lib/libprofiler.so.0 /lib/
  # ln -s /usr/local/lib/libprofiler.so.0 /usr/lib/
  # ln -s /usr/local/lib/libprofiler.so.0 /lib64/
  # ln -s /usr/local/lib/libprofiler.so.0 /usr/lib64/
  # ln -s /usr/local/lib/libunwind.so.7 /lib/
  # ln -s /usr/local/lib/libunwind.so.7 /usr/lib/
  # ln -s /usr/local/lib/libunwind.so.7 /lib64/
  # ln -s /usr/local/lib/libunwind.so.7 /usr/lib64/
  # tar zxf nginx-1.1.6.tar.gz
  # cd nginx-1.1.6
  #./configure --prefix=/usr/local/nginx --user=www --group=www --with-http_ssl_module --with-file-aio --with-http_stub_status_module --with-http_sub_module --with-http_addition_module --with-http_random_index_module --with-http_secure_link_module --with-http_dav_module --with-http_mp4_module --with-http_degradation_module --with-http_gzip_static_module --with-google_perftools_module --with-http_flv_module --add-module=/root/nginx/chunkin-nginx-module --add-module=/root/nginx/simpl-ngx_devel_kit --add-module=/root/nginx/encrypted-session-nginx-module ####将上面解压或者安装好的各模块软件添加进去
  # make
  # make install
  # useradd -M www   ####创建不带用户目录www用户
  # /usr/local/nginx/sbin/nginx   ####启动nginx服务
  # ps -ef |grep nginx####如果配置文件中的 user nobody没有划掉注释,这里的worker process使用者会是nobody,去掉注释后会变成nobody
  root      3324   10 10:18 ?      00:00:00 nginx: master process /usr/local/nginx/sbin/nginx
  nobody    332533240 10:18 ?      00:00:00 nginx: worker process
  nobody    332633240 10:18 ?      00:00:00 nginx: worker process
  nobody    332733240 10:18 ?      00:00:00 nginx: worker process
  nobody    332833240 10:18 ?      00:00:00 nginx: worker process
  root      4035 123650 10:50 pts/3    00:00:00 grep nginx
  # cat /usr/local/nginx/logs/nginx.pid   ####这两步都发现有nginx服务进程,说明nginx启动成功
  3324
  走到这里,nginx安装完成并且可以正常运行,下面对nginx优化,这里对nginx的配置文件里的参数优化,将nginx的原配置文件备份成nginx.conf_bak,下面是优化后的配置文件:
  # mv nginx_laoshi.conf /usr/local/nginx/conf/nginx.conf
  # cat /usr/local/nginx/conf/nginx.conf
  usernobody;
  worker_processes4;
  worker_cpu_affinity 00000001 00000010 00000100 00001000
  error_loglogs/error.log error;
  pid      logs/nginx.pid;
  events {
  worker_connections102400;
  use epoll;
  }
  http {
  include       mime.types;
  default_typeapplication/octet-stream;
  log_formatmain'$remote_addr - $remote_user [$time_local] "$request" '
  '$status $body_bytes_sent "$http_referer" '
  '"$http_user_agent" "$http_x_forwarded_for"';
  access_loglogs/access.logmain;
  client_header_buffer_size 4k;
  large_client_header_buffer 4 32k;
  open_file_cache max=102400 inactive=20s;
  open_file_cache_valid 30s;
  open_file_cache_min_uses 1;
  #client_max_body_size 8m;
  server_names_hash_bucket_size 128;
  sendfile      on;
  #autoindex on;
  tcp_nopush   on;
  tcp_nodelay   on;
  keepalive_timeout120;
  gzipon;
  gzip_staticon;
  gzip_min_length1k;
  gzip_buffer 4 16k;
  gzip_types text/css text/javascript application/xml text/plain application/x-javascript;
  gzip_varyon;
  gzip_comp_level5;
  upstream www.vfast.com.cn {
  #ip_hash;
  #fair;
  #url_hash;
  server 10.255.254.132:80 max_fails=5;
  server 10.255.254.134:80 weight=10 ;
  }
  server {
  listen       80;
  server_namewww.vfast.com.cn;
  location / {
  proxy_pass http://www.vfast.com.cn;
  }
  }
  server {
  listen8080;
  server_name stats.vfast.com.cn;
  location /status {
  stub_status on;
  access_log off;
  auth_basic "status";
  }
  }
  }
  这里的配置文件参数调优是针对某台机器做的,不同机器的参数调优也略有不同,应按实际情况的做,调优完成后,要重启nginx服务:

  # /usr/local/nginx/sbin/nginx -s>  # ps -ef |grep nginx |grep master |awk '{print $2}'   ###只查找nginx主进程号
  3324
  # kill -HUP 3324   ###nginx实现了平滑重启
  ok,到这里,nginx的编译安装以及调优完成。

页: [1]
查看完整版本: linux下安装nginx与nginx调优