CentOS_7.2安装Nginx_1.9

时间:2023-03-08 23:33:20
CentOS_7.2安装Nginx_1.9

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

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++-

二、清除系统中的httpd痕迹

yum remove httpd
rm -rvf /etc/httpd
rm /usr/bin/pod2man

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

groupadd www
useradd -s /sbin/nologin -g www www

四、解压nginx模块包:

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

五、解压、配置、编译、安装nginx_1.9:

tar zxvf nginx-.tar.gz -C /usr/src/
cd /usr/src/nginx-/
./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- \
--with-pcre=/usr/src/pcre-8.12 \
--with-openssl=/usr/src/openssl- \
--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
make
make install

六、编辑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 ;

events
    {
        use epoll;
        worker_connections ;
        multi_accept on;
    }
http
    {
        include mime.types;
        default_type application/octet-stream;
        charset UTF-;
        server_names_hash_bucket_size ;
        client_header_buffer_size 32k;
        large_client_header_buffers  32k;
        client_max_body_size 50m;
        client_body_buffer_size 128k;
        sendfile on;
        tcp_nopush on;
        keepalive_timeout ;
        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 ;
        fastcgi_send_timeout ;
        fastcgi_read_timeout ;
        fastcgi_buffer_size 64k;
        fastcgi_buffers  64k;
        fastcgi_busy_buffers_size 128k;
        fastcgi_temp_file_write_size 256k;

    # Gzip Compression
        gzip on;
        gzip_buffers  8k;
        gzip_comp_level ;
        gzip_http_version 1.1;
        gzip_min_length ;
        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= inactive=20s;
        open_file_cache_valid 30s;
        open_file_cache_min_uses ;
        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  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=$  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 

九、编写nginx启动脚本:

vim /etc/init.d/nginx
#!/bin/sh
# chkconfig:
# Description:        Start and Stop Nginx
# Provides:        nginx
# Default-Start:
# Default-Stop:
PATH=/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/$NAME
case "$1" in
start)
echo -n "Starting $NAME... "
if netstat -tnpl | grep -q nginx;then
echo "$NAME (pid `pidof $NAME`) already running."
exit
fi
$NGINX_BIN -c $CONFIGFILE
 ] ; then
echo " failed"
exit
else
echo " done"
fi
;;
stop)
echo -n "Stoping $NAME... "
if ! netstat -tnpl | grep -q nginx; then
echo "$NAME is not running."
exit
fi
$NGINX_BIN -s stop
 ] ; then
echo " failed. Use force-quit"
exit
else
echo " done"
fi
;;
status)
if netstat -tnpl | grep -q nginx; then
PID=`pidof nginx`
echo "$NAME (pid $PID) is running..."
else
echo "$NAME is stopped"
exit
fi
;;
force-quit)
echo -n "Terminating $NAME... "
if ! netstat -tnpl | grep -q nginx; then
echo "$NAME is not running."
exit
fi
kill `pidof $NAME`
 ] ; then
echo " failed"
exit
else
echo " done"
fi
;;
restart)
$SCRIPTNAME stop
sleep
$SCRIPTNAME start
;;
reload)
echo -n "Reload service $NAME... "
if netstat -tnpl | grep -q nginx; then
$NGINX_BIN -s reload
echo " done"
else
echo "$NAME is not running, can't reload."
exit
fi
;;
configtest)
echo -n "Test $NAME configure files... "
$NGINX_BIN -t
;;
*)
echo "Usage: $SCRIPTNAME {start|stop|force-quit|restart|reload|status|configtest}"
exit
;;
esac

十、添加nginx系统服务:

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

十一、重新启动nginx服务:

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

十二、测试:

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  -j ACCEPT