centos下nginx的安装与自启

2018-11-15 admin

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

阿里云翼计划

废话不多说,这就开始

准备工作

  1. 服务器一台 我用的是阿里云centos7
  2. xshell 其它亦可
  3. linux基本操作

nginx和配置

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

安装

  1. 首先安装make gcc之类的东西,编译用
yum -y install automake autoconf libtool make
yum install gcc gcc-c++
  1. 选择nginx安装目录,我选的是 /usr/local/src
cd /usr/local/src
  1. 一般我们都需要先装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

  1. 安装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

  1. 安装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
  1. :wq保存退出
  2. 增加脚本的可执行权限
chmod +x /etc/rc.d/init.d/nginxserver
  1. 添加脚本到开机自动启动项目中
cd /etc/rc.d/init.d
chkconfig --add nginxserver
chkconfig nginxserver on

完事!

[转载]原文链接:https://segmentfault.com/a/1190000017027241

本站文章除注明转载外,均为本站原创或编译。欢迎任何形式的转载,但请务必注明出处。

转载请注明:文章转载自 JavaScript中文网 [https://www.javascriptcn.com]

本文地址:https://www.javascriptcn.com/read-45558.html

文章标题:centos下nginx的安装与自启

相关文章
10个强大的纯CSS3动画案例分享
我们的网页外观主要由CSS控制,编写CSS代码可以任意改变我们的网页布局以及网页内容的样式。CSS3的出现,更是可以让网页增添了不少动画元素,让我们的网页变得更加生动有趣,并且更易于交互。本文分享了10个非常炫酷的CSS3动画案例,希望大家...
2015-11-16
v-charts | 饿了么团队开源的基于 Vue 和 ECharts 的图表工具
在使用echarts生成图表时,经常需要做繁琐的数据类型转化、修改复杂的配置项,v-charts的出现正是为了解决这个 痛点。基于Vue2.0和echarts封装的v-charts图表组件,只需要统一提供一种对前后端都友好的数据格式 设置简...
2018-05-24
JavaScript常用特效chm下载
下载地址:JavaScript常用特效chm下载 对了,如果打开空白,在手册上右键属性解除锁定即可。 ...
2015-11-12
从2014年的发展来展望JS的未来将会如何
<font face="寰�杞�闆呴粦, Arial, sans-serif ">2014骞达紝杞�浠惰�屼笟鍙戝睍杩呴€燂紝鍚勭�嶈��瑷€灞傚嚭涓嶇┓锛屼互婊¤冻鐢ㄦ埛涓嶆柇鍙樺寲鐨勯渶姹傘€傝繖浜涜��...
2015-11-12
12个你未必知道的CSS小知识
虽然CSS并不是一种很复杂的技术,但就算你是一个使用CSS多年的高手,仍然会有很多CSS用法/属性/属性值你从来没使用过,甚至从来没听说过。 1.CSS的color属性并非只能用于文本显示 对于CSS的color属性,相信所有Web开发人员...
2015-11-12
ajax为什么令人惊异?ajax的优缺点
使用Ajax的最大优点,就是能在不更新整个页面的前提下维护数据。这使得Web应用程序更为迅捷地回应用户动作,并避免了在网络上发送那些没有改变的信息。 Ajax不需要任何浏览器插件,但需要用户允许JavaScript在浏览器上执行。就像DHT...
2015-11-12
HTML5的5个不错的开发工具推荐
HTML5规范终于在今年正式定稿,对于从事多年HTML5开发的人员来说绝对是一个重大新闻。数字天堂董事长,DCloud CEO王安也发表了文章,从开发者和用户两个角度分析了HTML对两个人群的优势。其实,关于HTML5的开发工具,我们以往的...
2015-11-12
JavaScript教程:JS中的原型
Keith Peters 几年前发表的一篇博文,关于学习没有“new”的世界,其中解释了使用原型继承代替构造函数。两者都是纯粹的原型编码。 标准方法(The Standard Way) 一直以来,我们学习的在 JavaScript 里创建对...
2015-11-12
AJAX的浏览器支持
AJAX 的要点是 XMLHttpRequest 对象。 不同的浏览器创建 XMLHttpRequest 对象的方法是有差异的。 IE 浏览器使用 ActiveXObject,而其他的浏览器使用名为 XMLHttpRequest 的 Jav...
2015-11-12
typeof、instanceof和contructor的区别
typeof:以字符串的形式返回变量的原始类型,typeof在两种情况下会返回"undefined":一个变量没有被声明的时候,和一个变量的值是undefined的时候,注意,typeof null也会返回object,...
2015-11-12
回到顶部