CentOS_7.2安装Nginx


白俊遥博客

一、安装依赖包和开发工具:

yum install vim vim-enhanced wget zip unzip telnet ntsysv compat* apr* nasm* gcc gcc* gcc-c++ ntp make imake cmake automake autoconf python-devel zlib zlib-devel glibc glibc-devel glib2 libxml glib2-devel libxml2 libxml2-devel bzip2 bzip2-devel libXpm libXpm-devel libidn libidn-devel libtool libtool-ltdl-devel* libmcrypt libmcrypt-devel libevent-devel libmcrypt* libicu-devel libxslt-devel postgresql-devel curl curl-devel perl perl-Net-SSLeay pcre pcre-devel ncurses ncurses-devel openssl openssl-devel openldap openldap-devel openldap-clients openldap-servers krb5 krb5-devel e2fsprogs e2fsprogs-devel libjpeg libpng libjpeg-devel libjpeg-6b libjpeg-devel-6b libpng-devel libtiff-devel freetype freetype-devel fontconfig-devel gd gd-devel kernel screen sysstat flex bison nss_ldap pam-devel compat-libstdc++-33

二、清除系统中的httpd痕迹


yum remove httpd

rm -rvf /etc/httpd

rm /usr/bin/pod2man


三、创建www用户和用户组:


groupadd www

useradd -s /sbin/nologin -g www www


四、下载解压nginx模块包:

下载zlib-1.2.8.tar.gz包

wget http://heanet.dl.sourceforge.net/project/libpng/zlib/1.2.8/zlib-1.2.8.tar.gz

解压zlib-1.2.8.tar.gz

tar zxvf zlib-1.2.8.tar.gz -C /usr/src


下载pcre-8.12.tar.gz

wget https://ftp.pcre.org/pub/pcre/pcre-8.12.tar.gz

解压pcre-8.12.tar.gz

tar zxvf pcre-8.12.tar.gz -C /usr/src

下载openssl-1.1.0d.tar.gz

wget https://www.openssl.org/source/openssl-1.1.0d.tar.gz

解压openssl-1.1.0d.tar.gz

tar zxvf openssl-1.1.0d.tar.gz -C /usr/src

五、下载、解压、配置、编译、安装nginx:


下载Nginx

wget http://nginx.org/download/nginx-1.10.3.tar.gz

解压Nginx

tar zxvf nginx-1.10.3.tar.gz -C /usr/src/

原文

./configure --prefix=/usr/local/nginx \

--user=www \

--group=www \

--sbin-path=/usr/local/nginx/sbin/nginx \

--conf-path=/usr/local/nginx/conf/nginx.conf \

--error-log-path=/home/www/log/error.log \

--http-log-path=/home/www/log/access.log \

--pid-path=/home/www/pid/nginx.pid \

--lock-path=/home/www/pid/nginx.lock \

--with-mail \

--with-file-aio \

--with-http_ssl_module \

--with-http_flv_module \

--with-http_dav_module \

--with-http_sub_module \

--with-http_spdy_module \

--with-http_realip_module \

--with-http_addition_module \

--with-http_gunzip_module \

--with-http_gzip_static_module \

--with-http_stub_status_module \

--with-zlib=/usr/src/zlib-1.2.8 \

--with-pcre=/usr/src/pcre-8.12 \

--with-openssl=/usr/src/openssl-1.0.1 \

--without-select_module \

--without-poll_module \

--http-client-body-temp-path=/tmp/clientbody \

--http-proxy-temp-path=/tmp/proxy \

--http-fastcgi-temp-path=/tmp/fastcgi \

--http-uwsgi-temp-path=/tmp/uwsgi \

--http-scgi-temp-path=/tmp/scgi

会报错,如图

白俊遥博客

因为 http_spdy_module在1.9.5的时候被 http_v2_module取代了

./configure --prefix=/usr/local/nginx \ --user=www \ --group=www \ --sbin-path=/usr/local/nginx/sbin/nginx \ --conf-path=/usr/local/nginx/conf/nginx.conf \ --error-log-path=/home/www/log/error.log \ --http-log-path=/home/www/log/access.log \ --pid-path=/home/www/pid/nginx.pid \ --lock-path=/home/www/pid/nginx.lock \ --with-mail \ --with-file-aio \ --with-http_ssl_module \ --with-http_flv_module \ --with-http_dav_module \ --with-http_sub_module \ --with-http_v2_module \ --with-http_realip_module \ --with-http_addition_module \ --with-http_gunzip_module \ --with-http_gzip_static_module \ --with-http_stub_status_module \ --with-zlib=/usr/src/zlib-1.2.8 \ --with-pcre=/usr/src/pcre-8.12 \ --with-openssl=/usr/src/openssl-1.1.0d \ --without-select_module \ --without-poll_module \ --http-client-body-temp-path=/tmp/clientbody \ --http-proxy-temp-path=/tmp/proxy \ --http-fastcgi-temp-path=/tmp/fastcgi \ --http-uwsgi-temp-path=/tmp/uwsgi \ --http-scgi-temp-path=/tmp/scgi

六、编辑nginx.conf配置文件:


cp /usr/local/nginx/conf/nginx.conf /usr/local/nginx/conf/nginx.conf.bak

ln -s /usr/local/nginx/conf/nginx.conf /etc/nginx.conf

vim /etc/nginx.conf


user www www;

worker_processes auto;

#pid /home/www/pid/nginx.pid;

worker_rlimit_nofile 51200;


events

    {

        use epoll;

        worker_connections 51200;

        multi_accept on;

    }

http

    {

        include mime.types;

        default_type application/octet-stream;

        charset UTF-8;

        server_names_hash_bucket_size 128;

        client_header_buffer_size 32k;

        large_client_header_buffers 4 32k;

        client_max_body_size 50m;

        client_body_buffer_size 128k;

        sendfile on;

        tcp_nopush on;

        keepalive_timeout 45;

        server_tokens off;

        tcp_nodelay on;


    # Proxy

        proxy_set_header Host $host;

        proxy_set_header X-Real-IP $remote_addr;

        proxy_set_header REMOTE-HOST $remote_addr;

        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;


    # Fastcgi

        fastcgi_connect_timeout 300;

        fastcgi_send_timeout 300;

        fastcgi_read_timeout 300;

        fastcgi_buffer_size 64k;

        fastcgi_buffers 4 64k;

        fastcgi_busy_buffers_size 128k;

        fastcgi_temp_file_write_size 256k;


    # Gzip Compression

        gzip on;

        gzip_buffers 16 8k;

        gzip_comp_level 2;

        gzip_http_version 1.1;

        gzip_min_length 256;

        gzip_proxied any;

        gzip_vary on;

        gzip_types


    # MIME Type

        text/xml application/xml application/atom+xml application/rss+xml application/xhtml+xml image/svg+xml

        text/javascript application/javascript application/x-javascript

        text/x-json application/json application/x-web-app-manifest+json

        text/css text/plain text/x-component

        font/opentype application/x-font-ttf application/vnd.ms-fontobject

        image/x-icon;

        gzip_disable  "msie6";


    # Cache

        open_file_cache max=51200 inactive=20s;

        open_file_cache_valid 30s;

        open_file_cache_min_uses 1;

        open_file_cache_errors on;


    # Log Format

        log_format access    '[$time_iso8601] "$remote_addr" "$http_x_forwarded_for"'

                    '"$request" "$request_body" "$http_cookie"'

                    '"$upstream_addr" "$upstream_status"'

                    '"$http_referer" "$status"'

                    '"$body_bytes_sent" "$http_user_agent"';


################################################## default ##################################################


    server

        {

            listen 80 default;

            server_name 127.0.0.1;

            #access_log /home/www/log/access.log access;

            #error_log /home/www/log/error.log error;

            root /home/www/html/;

            index index.html index.htm index.php;


            location ~ [^/]\.php(/|$)

            {

                fastcgi_pass unix:/dev/shm/php-cgi.sock;

                fastcgi_index index.php;

                include fastcgi.conf;

            }

            #location /nginx_status

            #{

                #stub_status on;

                #access_log off;

                #allow 127.0.0.1;

                #deny all;

            #}

            location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|flv|ico)$

            {

                expires 30d;

                access_log off;

            }

            location ~ .*\.(js|css)?$

            {

                expires 7d;

                access_log off;

            }

            if (!-e $request_filename)

            {

                rewrite  ^(.*)$  /index.php?s=$1  last;

                break;

            }

        }


################################################## vhost ##################################################


    include vhost/*.conf;

    }

七、创建nginx相关目录,并修改权限:

mkdir -p /home/www/html
chown -R www:www /home/www/

八、测试启动nginx服务:

ln -s /usr/local/nginx/sbin/nginx /usr/bin/nginx
nginx -t
nginx -c /usr/local/nginx/conf/nginx.conf
ps -aux | grep nginx
netstat -anptu | grep 80

九、编写nginx启动脚本:

vim /etc/init.d/nginx

白俊遥博客

#!/bin/sh
# chkconfig:        2345 80 20# Description:        Start and Stop Nginx
# Provides:        nginx
# Default-Start:    2 3 4 5# Default-Stop:        0 1 6PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
NAME=nginx
NGINX_BIN=/usr/local/nginx/sbin/$NAME
CONFIGFILE=/usr/local/nginx/conf/$NAME.conf
PIDFILE=/home/www/pid/$NAME.pid
SCRIPTNAME=/etc/init.d/$NAMEcase "$1" instart)
echo -n "Starting $NAME... "if netstat -tnpl | grep -q nginx;then
echo "$NAME (pid `pidof $NAME`) already running."exit 1fi
$NGINX_BIN -c $CONFIGFILEif [ "$?" != 0 ] ; then
echo " failed"exit 1elseecho " done"fi
;;
stop)
echo -n "Stoping $NAME... "if ! netstat -tnpl | grep -q nginx; then
echo "$NAME is not running."exit 1fi
$NGINX_BIN -s stopif [ "$?" != 0 ] ; then
echo " failed. Use force-quit"exit 1elseecho " done"fi
;;
status)if netstat -tnpl | grep -q nginx; then
PID=`pidof nginx`
echo "$NAME (pid $PID) is running..."elseecho "$NAME is stopped"exit 0        fi
;;
force-quit)
echo -n "Terminating $NAME... "if ! netstat -tnpl | grep -q nginx; then
echo "$NAME is not running."exit 1fi
kill `pidof $NAME`if [ "$?" != 0 ] ; then
echo " failed"exit 1elseecho " done"    fi
;;
restart)
$SCRIPTNAME stop
sleep 1$SCRIPTNAME start
;;
reload)                                                                                       
echo -n "Reload service $NAME... "if netstat -tnpl | grep -q nginx; then
$NGINX_BIN -s reload
echo " done"elseecho "$NAME is not running, can't reload."exit 1fi
;;
configtest)
echo -n "Test $NAME configure files... "$NGINX_BIN -t
;;
*)
echo "Usage: $SCRIPTNAME {start|stop|force-quit|restart|reload|status|configtest}"exit 1;;
esac

白俊遥博客

十、添加nginx系统服务:

chmod a+x /etc/init.d/nginx 
chkconfig --add nginx 
chkconfig --level 2345 nginx on 
chkconfig --list | grep nginx

十一、重新启动nginx服务:

service nginx restart
ps -aux | grep nginx
netstat -anptu | grep 80

十二、测试:

vim /home/www/html/index.html

This is test nginx!!!
nginx server test is ok!!!
chown www:www /home/www/html/index.html

 

十三、防火墙开启80端口:

iptables -A INPUT -p tcp --dport 80 -j ACCEPT


fiveblog
请先登录后发表评论
  • 最新评论
  • 总共0条评论