Linux编译安装Nginx

  • A+
所属分类:服务搭建

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

实验环境

操作系统:CentOS 7.6

Pcre:8.43

Zlib:1.2.11

OpenSSL:1.0.2s

Nginx:1.16.1

安装篇

第一步 安装依赖包

  1. [root@wanghualang ~]# yum -y install gcc gcc-c++ autoconf automake  

第二步 下载、解压源码包

  1. [root@wanghualang ~]# cd /usr/local/src/  
  2. [root@wanghualang src]# wget --no-check-certificate http://zlib.net/zlib-1.2.11.tar.gz  
  3. [root@wanghualang src]# wget --no-check-certificate https://ftp.pcre.org/pub/pcre/pcre-8.43.tar.gz  
  4. [root@wanghualang src]# wget --no-check-certificate https://www.openssl.org/source/openssl-1.0.2s.tar.gz  
  5. [root@wanghualang src]# wget --no-check-certificate http://nginx.org/download/nginx-1.16.1.tar.gz  
  6. [root@wanghualang src]# tar xzf zlib-1.2.11.tar.gz  
  7. [root@wanghualang src]# tar xzf pcre-8.43.tar.gz  
  8. [root@wanghualang src]# tar xzf openssl-1.0.2s.tar.gz  
  9. [root@wanghualang src]# tar xzf nginx-1.16.1.tar.gz  

第三步 新建用户组、用户

  1. [root@wanghualang ~]# groupadd nginx  
  2. [root@wanghualang ~]# useradd nginx -M -g nginx -s /sbin/nologin  

第四步 编译安装Nginx

  1. [root@wanghualang ~]# cd /usr/local/src/nginx-1.16.1    
  2. [root@wanghualang nginx-1.16.1]# ./configure \
  3. --user=nginx \
  4. --group=nginx \
  5. --prefix=/usr/local/nginx \
  6. --with-pcre=/usr/local/src/pcre-8.43 \
  7. --with-openssl=/usr/local/src/openssl-1.0.2s \
  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. [root@wanghualang nginx-1.16.1]# make  
  18. [root@wanghualang nginx-1.16.1]# make install  

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

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

  1. [root@wanghualang ~]# chmod +x /etc/init.d/nginx    
  2. [root@wanghualang ~]# chkconfig --add nginx    
  3. [root@wanghualang ~]# chkconfig nginx on  

第六步 测试启动

  1. [root@wanghualang ~]# service nginx start  
  2. [root@wanghualang ~]# curl -s -I http://127.0.0.1 | grep HTTP  
  • 微信赞助网站
  • weinxin
  • 支付宝赞助网站
  • weinxin
avatar

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: