Linux 6下安装编译安装Nginx的步骤

Linux 6下安装编译安装Nginx的步骤

前言:

Nginx是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP服务器。在高连接并发的情况下,Nginx是Apache服务器不错的替代品:Nginx在美国是做虚拟主机生意的老板们经常选择的软件平台之一。能够支持高达50,000个并发连接数的响应,而且内存开销极小。这也是Nginx广受欢迎的重要原因。本文演示了基于Linux 6下编译安装Nginx,供大家参考。

一、安装环境

  # cat /etc/issue  Red Hat Enterprise Linux Server release 6.3 (Santiago)  Kernel r on an m  # nginx -v  nginx version: nginx/1.8.0  

二、配置安装环境

  ###为简化安装及配置,此处关闭了防火墙,生产环境建议开启  # service iptables stop  # chkconfig iptables off    # vi /etc/selinux/config   SELINUX=disabled    ###创建用户及组  #groupadd -r nginx  #useradd -s /sbin/nologin -g nginx -r nginx    ###安装环境依赖包 http://nginx.org/en/linux_packages.html  # yum install pcre-devel zlib-devel openssl openssl-devel gcc gcc-c++    

三、编译及安装Nginx

  # cd /tmp/  # tar -xvf nginx-1.8.0.tar.gz  # cd /nginx-1.8.0  # ./configure             --prefix=/etc/nginx                       --sbin-path=/usr/sbin/nginx                   --conf-path=/etc/nginx/nginx.conf                --error-log-path=/var/log/nginx/error.log            --http-log-path=/var/log/nginx/access.log            --pid-path=/var/run/nginx.pid                  --lock-path=/var/run/nginx.lock                 --http-client-body-temp-path=/var/cache/nginx/client_temp    --http-proxy-temp-path=/var/cache/nginx/proxy_temp        --http-fastcgi-temp-path=/var/cache/nginx/fastcgi_temp      --http-uwsgi-temp-path=/var/cache/nginx/uwsgi_temp        --http-scgi-temp-path=/var/cache/nginx/scgi_temp         --user=nginx                           --group=nginx                          --with-http_ssl_module                      --with-http_realip_module                    --with-http_addition_module                   --with-http_sub_module                      --with-http_dav_module                      --with-http_flv_module                      --with-http_mp4_module                      --with-http_gunzip_module                    --with-http_gzip_static_module                  --with-http_random_index_module                 --with-http_secure_link_module                  --with-http_stub_status_module                  --with-http_auth_request_module                 --with-mail                           --with-mail_ssl_module                      --with-file-aio                         --with-http_spdy_module                     --with-ipv6                             Configuration summary   + using system PCRE library   + using system OpenSSL library   + md5: using OpenSSL library   + sha1: using OpenSSL library   + using system zlib library     nginx path prefix: "/etc/nginx"   nginx binary file: "/usr/sbin/nginx"   nginx configuration prefix: "/etc/nginx"   nginx configuration file: "/etc/nginx/nginx.conf"   nginx pid file: "/var/run/nginx.pid"   nginx error log file: "/var/log/nginx/error.log"   nginx http access log file: "/var/log/nginx/access.log"   nginx http client request body temporary files: "/var/cache/nginx/client_temp"   nginx http proxy temporary files: "/var/cache/nginx/proxy_temp"   nginx http fastcgi temporary files: "/var/cache/nginx/fastcgi_temp"   nginx http uwsgi temporary files: "/var/cache/nginx/uwsgi_temp"   nginx http scgi temporary files: "/var/cache/nginx/scgi_temp"    ###如果apache httpd服务启动,建议先停止或更改端口号  # service httpd stop  # mkdir -p /var/cache/nginx/{client_temp,proxy_temp,fastcgi_temp,uwsgi_temp,scgi_temp}  # make && make install    ###启动nginx  # /usr/sbin/nginx -c /etc/nginx/nginx.conf    # ps -ef|grep nginx|grep -v grep  root   33412   1 0 10:18 ?    00:00:00 nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf  nginx   33413 33412 0 10:18 ?    00:00:00 nginx: worker process    [root@orasrv1 cache]# netstat -nltp|grep 80  tcp    0   0 0.0.0.0:80         0.0.0.0:*          LISTEN   33412/nginx       [root@orasrv1 cache]#     

四、配置nginx为系统服务

  vi /etc/init.d/nginx     #!/bin/bash  # nginx Startup script for the Nginx HTTP Server  # chkconfig: - 85 15  # description: Nginx is an HTTP(S) server, HTTP(S) reverse   #        proxy and IMAP/POP3 proxy server  # Author : Leshami  # Blog  : http://blog.csdn.net/leshami        # processname: nginx  # pidfile: /var/run/nginx.pid  # config: /etc/nginx/nginx.conf    #path for nginx binary  nginxd=/usr/sbin/nginx    #path for nginx configuration  nginx_config=/etc/nginx/nginx.conf    #path for nginx pid  nginx_pid=/var/run/nginx.pid  RETVAL=0  prog="nginx"  # Source function library.  . /etc/rc.d/init.d/functions  # Source networking configuration.  . /etc/sysconfig/network  # Check that networking is up.  [ ${NETWORKING} = "no" ] && exit 0  [ -x $nginxd ] || exit 0  # Start nginx daemons functions.  start() {  if [ -e $nginx_pid ];then    echo "nginx already running...."    exit 1  fi    echo -n $"Starting $prog: "    daemon $nginxd -c ${nginx_config}    RETVAL=$?    echo    [ $RETVAL = 0 ] && touch /var/lock/subsys/nginx    return $RETVAL  }  # Stop nginx daemons functions.  stop() {      echo -n $"Stopping $prog: "      killproc $nginxd      RETVAL=$?      echo      [ $RETVAL = 0 ] && rm -f /var/lock/subsys/nginx /var/run/nginx.pid  }  # reload nginx service functions.  reload() {    echo -n $"Reloading $prog: "    #kill -HUP `cat ${nginx_pid}`    killproc $nginxd -HUP    RETVAL=$?    echo  }  # See how we were called.  case "$1" in  start)      start      ;;  stop)      stop      ;;  reload)      reload      ;;  restart)      stop      start      ;;  status)      status $prog      RETVAL=$?      ;;  *)      echo $"Usage: $prog {start|stop|restart|reload|status|help}"      exit 1  esac  exit $RETVAL    # chmod u+x /etc/init.d/nginx     # service nginx start  Starting nginx:                      [ OK ]    # ps -ef|grep nginx |grep -v grep  root   33534   1 0 10:33 ?    00:00:00 nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf  nginx   33535 33534 0 10:33 ?    00:00:00 nginx: worker process      # service nginx stop  Stopping nginx:                      [ OK ]    # chkconfig --add nginx  # chkconfig nginx on    

五、安装过程中的常见故障

  ./configure: error: the HTTP rewrite module requires the PCRE library.  You can either disable the module by using --without-http_rewrite_module  option, or install the PCRE library into the system, or build the PCRE library  statically from the source with nginx by using --with-pcre=<path> option.    ./configure: error: the HTTP gzip module requires the zlib library.  You can either disable the module by using --without-http_gzip_module  option, or install the zlib library into the system, or build the zlib library  statically from the source with nginx by using --with-zlib=<path> option.  ### 以上2个错误,请安装相应的依赖包,见本文第二部分:配置安装环境    # /usr/sbin/nginx   nginx: [emerg] getpwnam("nginx") failed  ### 需要创建nginx用户组及用户    # /usr/sbin/nginx  nginx: [emerg] mkdir() "/var/cache/nginx/client_temp" failed (2: No such file or directory)  ### 需要创建对应的目录    

如有疑问请留言或者到本站社区交流讨论,感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

参与评论