CentOS7.2安装Nginx 1.9

今天在最新的centos7.2上安装nginx1.9,希望安装流程对你有所帮助,一定要查看对应centos的版本。

一、确认一下centos的版本

[[email protected] ~]# cat /etc/redhat-release
CentOS Linux release 7.2.1511 (Core) 

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

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

成功返回:

Transaction Summary
================================================================================
Install  91 Packages (+45 Dependent packages)
Upgrade   9 Packages (+19 Dependent packages)

Total size: 202 M
Total download size: 178 M

三、清除系统中的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-1.2.8.tar.gz -C /usr/src
tar zxvf pcre-8.12.tar.gz -C /usr/src
tar zxvf openssl-1.0.1.tar.gz -C /usr/src

六、解压、配置、编译、安装nginx1.9:

tar zxvf nginx-1.9.0.tar.gz -C /usr/src/
cd /usr/src/nginx-1.9.0/
./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
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 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启动脚本:

  1. 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 6
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 1
fi
$NGINX_BIN -c $CONFIGFILE
if [ "$?" != 0 ] ; then
echo " failed"
exit 1
else
echo " done"
fi
;;
stop)
echo -n "Stoping $NAME... "
if ! netstat -tnpl | grep -q nginx; then
echo "$NAME is not running."
exit 1
fi
$NGINX_BIN -s stop
if [ "$?" != 0 ] ; then
echo " failed. Use force-quit"
exit 1
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 0        
fi
;;
force-quit)
echo -n "Terminating $NAME... "
if ! netstat -tnpl | grep -q nginx; then
echo "$NAME is not running."
exit 1
fi
kill `pidof $NAME`
if [ "$?" != 0 ] ; then
echo " failed"
exit 1
else
echo " 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"
else
echo "$NAME is not running, can't reload."
exit 1
fi
;;
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

发布日期:

所属分类: Linux/Centos/Os 标签: