资讯专栏INFORMATION COLUMN

centos下nginx的安装与自启

Yi_Zhi_Yu / 1969人阅读

摘要:安装首先安装之类的东西,编译用选择安装目录,我选的是一般我们都需要先装,前者为了重写,后者为了压缩。指的是的源码路径。

老早就想买个服务器,可惜囊中羞涩,一直没有下手,前两天逛阿里云看见个云翼计划,赶紧踩着青春的尾巴买了一年ECS
自己没事耍耍也是好的呀

阿里云翼计划

废话不多说,这就开始

准备工作

服务器一台 我用的是阿里云centos7

xshell 其它亦可

linux基本操作

nginx和配置

我们一会还要安装node,node自己本身可以作为服务器进行驱动,但是node本身对文件的处理能力并不是很好,所以当我们的生产环境中应尽量使用nginx来处理静态的资源以及反向代理,同时也解决了node分布式以及负载均衡的相关问题。

安装

首先安装make gcc之类的东西,编译用

yum -y install automake autoconf libtool make
yum install gcc gcc-c++

选择nginx安装目录,我选的是 /usr/local/src

cd /usr/local/src

一般我们都需要先装pcre, zlib,前者为了重写rewrite,后者为了gzip压缩。

wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.42.tar.gz
tar -zxvf pcre-8.42.tar.gz
cd pcre-8.42
./configure
make
make install

可以在ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/选择最新版本pcre

wget http://zlib.net/zlib-1.2.11.tar.gz
tar -zxvf zlib-1.2.11.tar.gz
cd zlib-1.2.11
./configure
make
make install

可以在http://zlib.net/选择最新版本zlib

安装ssl

网络通信安全,功能丰富且自包含的开源安全工具箱

wget https://www.openssl.org/source/openssl-1.1.1.tar.gz
tar -zxvf openssl-1.1.1.tar.gz

可以在https://www.openssl.org/source/选择最新版本openssl

安装nginx

Nginx 一般有两个版本,分别是稳定版和开发版,您可以根据您的目的来选择这两个版本的其中一个,下面是把 Nginx 安装到 /usr/local/nginx 目录下的详细步骤:

wget http://nginx.org/download/nginx-1.4.2.tar.gz
tar -zxvf nginx-1.4.2.tar.gz
cd nginx-1.4.2
 
./configure --sbin-path=/usr/local/nginx/nginx 
--conf-path=/usr/local/nginx/nginx.conf 
--pid-path=/usr/local/nginx/nginx.pid 
--with-http_ssl_module 
--with-pcre=/usr/src/local/pcre-8.42 
--with-zlib=/usr/src/local/zlib-1.2.11 
--with-openssl=/usr/src/local/openssl-1.1.1
 
make
make install

--with-pcre=/usr/src/local/pcre-8.42 指的是pcre-8.42 的源码路径。
--with-zlib=/usr/src/local/zlib-1.2.11 指的是zlib-1.2.11 的源码路径。

安装完成

安装成功后 /usr/local/nginx 目录下如下

drwx------  2 nobody root    4096 Nov  2 10:16 client_body_temp
-rw-r--r--  1 root   root    1034 Nov  1 18:43 fastcgi.conf
-rw-r--r--  1 root   root    1034 Nov  1 18:43 fastcgi.conf.default
-rw-r--r--  1 root   root     964 Nov  1 18:43 fastcgi_params
-rw-r--r--  1 root   root     964 Nov  1 18:43 fastcgi_params.default
drwx------  2 nobody root    4096 Nov  2 10:16 fastcgi_temp
drwxr-xr-x  2 root   root    4096 Nov  2 11:11 html
-rw-r--r--  1 root   root    2837 Nov  1 18:43 koi-utf
-rw-r--r--  1 root   root    2223 Nov  1 18:43 koi-win
drwxr-xr-x  2 root   root    4096 Nov  2 10:16 logs
-rw-r--r--  1 root   root    3463 Nov  1 18:43 mime.types
-rw-r--r--  1 root   root    3463 Nov  1 18:43 mime.types.default
-rwxr-xr-x  1 root   root 7177456 Nov  1 18:43 nginx
-rw-r--r--  1 root   root    3937 Nov 13 16:14 nginx.conf
-rw-r--r--  1 root   root    2685 Nov  1 18:43 nginx.conf.default
-rw-r--r--  1 root   root       5 Nov 12 10:02 nginx.pid
drwx------ 12 nobody root    4096 Nov 13 15:29 proxy_temp
-rw-r--r--  1 root   root     596 Nov  1 18:43 scgi_params
-rw-r--r--  1 root   root     596 Nov  1 18:43 scgi_params.default
drwx------  2 nobody root    4096 Nov  2 10:16 scgi_temp
-rw-r--r--  1 root   root     623 Nov  1 18:43 uwsgi_params
-rw-r--r--  1 root   root     623 Nov  1 18:43 uwsgi_params.default
drwx------  2 nobody root    4096 Nov  2 10:16 uwsgi_temp
-rw-r--r--  1 root   root    3610 Nov  1 18:43 win-utf
启动
cd /usr/local/nginx/
./nginx

现在打开浏览器,输入此机器IP即可看到

Welcome To Nginx

安装成功!

将nginx加入可执行程序目录

竟然每次操作nginx都要进入/usr/local/nginx/
好麻烦有木有
没关系 软链接来帮你
/usr/local/bin目录是给用户放置自己的可执行程序的地方,
我们只需在这里建立nginx的软链接即可全局执行nginx

ln -s /usr/local/nginx/nginx /usr/local/bin/nginx

大功告成!

设置nginx开机自启动

每次开机我们都要启动nginx,同样巨麻烦,所以可以写一个自启动脚本,使其开机自启动,岂不美滋滋

cd /etc/rc.d/init.d
vim nginxserver

这是nginx官网上的自启脚本,将这些粘贴进nginxserver

#!/bin/sh
#
# nginx - this script starts and stops the nginx daemon
#
# chkconfig:   - 85 15
# description:  NGINX is an HTTP(S) server, HTTP(S) reverse 
#               proxy and IMAP/POP3 proxy server
# processname: nginx
# config:      /etc/nginx/nginx.conf
# config:      /etc/sysconfig/nginx
# pidfile:     /var/run/nginx.pid

# Source function library.
. /etc/rc.d/init.d/functions

# Source networking configuration.
. /etc/sysconfig/network

# Check that networking is up.
[ "$NETWORKING" = "no" ] && exit 0

nginx="/usr/local/nginx/nginx"
prog=$(basename $nginx)

NGINX_CONF_FILE="/usr/local/nginx/nginx.conf"

[ -f /etc/sysconfig/nginx ] && . /etc/sysconfig/nginx

lockfile=/var/lock/subsys/nginx

make_dirs() {
   # make required directories
   user=`$nginx -V 2>&1 | grep "configure arguments:.*--user=" | sed "s/[^*]*--user=([^ ]*).*/1/g" -`
   if [ -n "$user" ]; then
      if [ -z "`grep $user /etc/passwd`" ]; then
         useradd -M -s /bin/nologin $user
      fi
      options=`$nginx -V 2>&1 | grep "configure arguments:"`
      for opt in $options; do
          if [ `echo $opt | grep ".*-temp-path"` ]; then
              value=`echo $opt | cut -d "=" -f 2`
              if [ ! -d "$value" ]; then
                  # echo "creating" $value
                  mkdir -p $value && chown -R $user $value
              fi
          fi
       done
    fi
}

start() {
    [ -x $nginx ] || exit 5
    [ -f $NGINX_CONF_FILE ] || exit 6
    make_dirs
    echo -n $"Starting $prog: "
    daemon $nginx -c $NGINX_CONF_FILE
    retval=$?
    echo
    [ $retval -eq 0 ] && touch $lockfile
    return $retval
}

stop() {
    echo -n $"Stopping $prog: "
    killproc $prog -QUIT
    retval=$?
    echo
    [ $retval -eq 0 ] && rm -f $lockfile
    return $retval
}

restart() {
    configtest || return $?
    stop
    sleep 1
    start
}

reload() {
    configtest || return $?
    echo -n $"Reloading $prog: "
    killproc $nginx -HUP
    RETVAL=$?
    echo
}

force_reload() {
    restart
}

configtest() {
  $nginx -t -c $NGINX_CONF_FILE
}

rh_status() {
    status $prog
}

rh_status_q() {
    rh_status >/dev/null 2>&1
}

case "$1" in
    start)
        rh_status_q && exit 0
        $1
        ;;
    stop)
        rh_status_q || exit 0
        $1
        ;;
    restart|configtest)
        $1
        ;;
    reload)
        rh_status_q || exit 7
        $1
        ;;
    force-reload)
        force_reload
        ;;
    status)
        rh_status
        ;;
    condrestart|try-restart)
        rh_status_q || exit 0
            ;;
    *)
        echo $"Usage: $0 {start|stop|status|restart|condrestart|try-restart|reload|force-reload|configtest}"
        exit 2
esac

:wq保存退出

增加脚本的可执行权限

chmod +x /etc/rc.d/init.d/nginxserver

添加脚本到开机自动启动项目中

cd /etc/rc.d/init.d
chkconfig --add nginxserver
chkconfig nginxserver on

完事!

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/40206.html

相关文章

  • 虚拟机Linux Centos7搭建web环境(LNMP)

    摘要:本文内容是,如何在下快速搭建环境。虚拟机实体机环境都可以。按照提示,输入。 本文内容是,如何在Linux centos7下快速搭建LNMP环境。虚拟机、实体机环境都可以。另外,安装教程参考的是,下面这篇文章进行文字排版和内容扩充,感谢hcchanqing作者。CentOS6.2 yum安装配置LNMP服务器(Nginx+PHP+MySQL) 特别提醒:本文系统用的Centos7,是7!...

    Enlightenment 评论0 收藏0

发表评论

0条评论

Yi_Zhi_Yu

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<