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   其中:访客  2   博主  1
      • 菜鸟 菜鸟

        装完没有nginx.conf文件样

          • 王花郎 王花郎

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

              • 菜鸟 菜鸟

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