CentOS7编译安装Nginx

Nginx是一款是由俄罗斯程序设计师Igor Sysoev开发的高性能Web服务器,在面对高并发连接且处理静态资源较多的场景下,推荐使用Nginx替代Apache。

实验环境

操作系统:CentOS 7.9

Pcre:8.44

Zlib:1.2.11

OpenSSL:1.1.1i

Nginx:1.18

安装篇

第一步 安装依赖包

  1. # yum -y install gcc gcc-c++ autoconf automake  

第二步 下载、解压源码包

  1. # cd /usr/local/src/  
  2. # wget --no-check-certificate http://zlib.net/zlib-1.2.11.tar.gz  
  3. # wget --no-check-certificate https://ftp.pcre.org/pub/pcre/pcre-8.44.tar.gz  
  4. # wget --no-check-certificate https://www.openssl.org/source/openssl-1.1.1i.tar.gz  
  5. # wget --no-check-certificate http://nginx.org/download/nginx-1.18.0.tar.gz  
  6. # tar xzf zlib-1.2.11.tar.gz  
  7. # tar xzf pcre-8.44.tar.gz  
  8. # tar xzf openssl-1.1.1i.tar.gz  
  9. # tar xzf nginx-1.18.0.tar.gz  

第三步 新建用户组、用户

  1. # groupadd nginx  
  2. # useradd nginx -M -g nginx -s /sbin/nologin  

第四步 编译安装Nginx

  1. # cd /usr/local/src/nginx-1.18.0          
  2. # ./configure \
  3. --user=nginx \
  4. --group=nginx \
  5. --prefix=/usr/local/nginx \
  6. --with-pcre=/usr/local/src/pcre-8.44 \
  7. --with-openssl=/usr/local/src/openssl-1.1.1i \
  8. --with-zlib=/usr/local/src/zlib-1.2.11 \
  9. --with-http_gzip_static_module \
  10. --with-http_dav_module \
  11. --with-http_stub_status_module \
  12. --with-http_addition_module \
  13. --with-http_sub_module \
  14. --with-http_flv_module \
  15. --with-http_mp4_module \
  16. --with-http_ssl_module  \
  17. --with-http_v2_module
  18. # make
  19. # make install

第五步 配置启动服务脚本、开机启动

  1. # vim /etc/init.d/nginx  
  2.   
  3. #! /bin/sh  
  4. # chkconfig: 2345 55 25  
  5.   
  6. PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin  
  7. NAME=nginx  
  8. NGINX_BIN=/usr/local/nginx/sbin/$NAME  
  9. CONFIGFILE=/usr/local/nginx/conf/$NAME.conf  
  10. PIDFILE=/usr/local/nginx/logs/$NAME.pid  
  11. ulimit -n 8192  
  12.   
  13. case "$1" in  
  14. start)  
  15.     echo -n "Starting $NAME... "  
  16.     if [ -f $PIDFILE ]; then  
  17.         mPID=$(cat $PIDFILE)  
  18.         isStart=$(ps ax | awk '{ print $1 }' | grep -e "^${mPID}$")  
  19.         if [ "$isStart" != '' ]; then  
  20.             echo "$NAME (pid $(pidof $NAME)) already running."  
  21.             exit 1  
  22.         fi  
  23.     fi  
  24.   
  25.     $NGINX_BIN -c $CONFIGFILE  
  26.   
  27.     if [ "$?" != 0 ]; then  
  28.         echo " failed"  
  29.         exit 1  
  30.     else  
  31.         echo " done"  
  32.     fi  
  33.     ;;  
  34.   
  35. stop)  
  36.     echo -n "Stoping $NAME... "  
  37.     if [ -f $PIDFILE ]; then  
  38.         mPID=$(cat $PIDFILE)  
  39.         isStart=$(ps ax | awk '{ print $1 }' | grep -e "^${mPID}$")  
  40.         if [ "$isStart" = '' ]; then  
  41.             echo "$NAME is not running."  
  42.             exit 1  
  43.         fi  
  44.     else  
  45.         echo "$NAME is not running."  
  46.         exit 1  
  47.     fi  
  48.     $NGINX_BIN -s stop  
  49.   
  50.     if [ "$?" != 0 ]; then  
  51.         echo " failed. Use force-quit"  
  52.         exit 1  
  53.     else  
  54.         echo " done"  
  55.     fi  
  56.     ;;  
  57.   
  58. status)  
  59.     if [ -f $PIDFILE ]; then  
  60.         mPID=$(cat $PIDFILE)  
  61.         isStart=$(ps ax | awk '{ print $1 }' | grep -e "^${mPID}$")  
  62.         if [ "$isStart" != '' ]; then  
  63.             echo "$NAME (pid $(pidof $NAME)) already running."  
  64.             exit 1  
  65.         else  
  66.             echo "$NAME is stopped"  
  67.             exit 0  
  68.         fi  
  69.     else  
  70.         echo "$NAME is stopped"  
  71.         exit 0  
  72.     fi  
  73.     ;;  
  74. restart)  
  75.     $0 stop  
  76.     sleep 1  
  77.     $0 start  
  78.     ;;  
  79.   
  80. reload)  
  81.     echo -n "Reload service $NAME... "  
  82.     if [ -f $PIDFILE ]; then  
  83.         mPID=$(cat $PIDFILE)  
  84.         isStart=$(ps ax | awk '{ print $1 }' | grep -e "^${mPID}$")  
  85.         if [ "$isStart" != '' ]; then  
  86.             $NGINX_BIN -s reload  
  87.             echo " done"  
  88.         else  
  89.             echo "$NAME is not running, can't reload."  
  90.             exit 1  
  91.         fi  
  92.     else  
  93.         echo "$NAME is not running, can't reload."  
  94.         exit 1  
  95.     fi  
  96.     ;;  
  97.   
  98. configtest)  
  99.     echo -n "Test $NAME configure files... "  
  100.     $NGINX_BIN -t  
  101.     ;;  
  102.   
  103. *)  
  104.     echo "Usage: $0 {start|stop|restart|reload|status|configtest}"  
  105.     exit 1  
  106.     ;;  
  107. esac  

  1. # chmod +x /etc/init.d/nginx    
  2. # chkconfig --add nginx    
  3. # chkconfig nginx on  

第六步 测试启动

  1. # service nginx start  
  2. # curl -s -I http://127.0.0.1 | grep HTTP  
匿名

发表评论

匿名网友 填写信息

评论:0   其中:访客  0   博主  0
    • avatar 菜鸟

      装完没有nginx.conf文件样

        • avatar 王花郎

          回复 菜鸟 每一步都操作到位的话,主配置文件就在:/usr/local/nginx/conf/nginx.conf

            • avatar 菜鸟

              回复 王花郎 可以教教把NGINX和PHP关联起来吗。我配置了一些NGINX,不太起作用。