1.Nginx的简单说明

  a.  Nginx是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP服务器,期初开发的目的就是为了代理电子邮件服务器室友:Igor Sysoev开发,源代码符合BSD开源。其特点就是占用内存少并发能力强,在天朝使用Nginx的大型网站已经有很多:百度、淘宝、腾讯等等...。

  b.Nginx作为Http服务器,有以下几项基本特征:

    b.1 处理静态文件,索引文件以及自动索引,打开文件描述符缓冲。

    b.2 无缓存的反向代理加速,简单的负载均衡和容错

    b.3 模块化的结构,包括gzipping,byte ranges,chunked responses以及SSI-filter等filter,如果由FastCGI或其它代理服务器处理蛋液中存在的多个SSI,则这项处理可以并行运行,而不需要相互等待。

    b.4 支持SSL和TLSSNI。

  c.Nginx官网:http://nginx.org/

  d.Nginx推荐学习网址:http://dreamfire.blog.51cto.com/418026/1140965

2.准备工作

  a.上面简单介绍了一下Nginx,大家如果想要了解更多关于Nginx的知识,请自行通过网络学习。

  b.工欲善其事必先利其器,下面我们就在Linux下面简单安装一下Niginx,在安装过程中需要了一些问题,同步都会在博客中说出来。

  c.Nginx的安装依赖于以下三个包,意思就是在安装Nginx之前首先必须安装一下的三个包,安装顺序为我写的顺序:

    c.1 SSL功能需要openssl库,下载地址:http://www.openssl.org/

    c.2 gzip模块需要zlib库,下载地址:http://www.zlib.net/

    c.3 rewrite模块需要pcre库,下载地址:http://www.pcre.org/

  d.Nginx的安装包:下载地址为:http://nginx.org/en/download.html

  e.将上面下载的几个软件全部使用Xftp上传到Linux系统中,上传路径和软件如图所示:

    

  f.操作需要的软件以及系统如下:虚拟机(Vmware),虚拟机中安装的Centos系统,Xshell,Xftp,以及上面的几个包。

  g.下面开始按照上面说的按照顺序开始安装软件。

3.安装SSL功能需要openssl库以及gzip模块需要的zlib库

  a(1).首先我们安装SSL功能需要的openssl库插件,注意:安装过程是按照我在linux下设置的文件路径来安装的,命令如下:

    a.1   tar -zxvf  soft/openssl-SNAP-20160104

    a.2   cd cd openssl-SNAP-20160104/

    a.3   ./config

    a.4   make

    a.5   make install

  b(1).安装gzip模块需要zlib库的安装方法和openssl安装的方法一模一样,也是分为上面五个步骤,只不过是文件的名称不一样,命令简单如下:

    b.1   tar -zxvf  soft/openssl-SNAP-20160104

    b.2   cd openssl-SNAP-20160104/

    b.3   ./configure

    b.4   make

    b.5   make install

  b.如果没有报错,则说明安装完全完成了~。

4.安装 rewrite模块需要pcre库

  a.安装 rewrite模块需要pcre库的安装方法和openssl安装的方法一模一样,也是分为上面五个步骤,只不过是文件的名称不一样,命令简单如下:

    a.1   tar -zxvf soft/pcre-8.38.tar.gz

    a.2   cd pcre-8.38/

    a.3   ./configure

    a.4   make

    a.5   make install

  b.在执行./configure的出现错误了,导致不能继续往下执行,报错内容为:

    error: You need a C++ compiler for C++ support,看到这句话我们就已经猜到了应该是c++包信息,而linux中没有,那么首先安装一下这个包信息即可,安装命令为:

    b.1  yum install -y gcc gcc-c++

  c.当安装完上面的c++包之后,在此运行,发现消息已经显示安装成功了,当基于上面的东西全部安装完成之后,就需要安装Nginx服务了。

5.安装 Nginx服务

  a.安装 rewrite模块需要pcre库的安装方法和openssl安装的方法一模一样,也是分为上面五个步骤,只不过是文件的名称不一样,命令简单如下:

    a.1   tar -zxvf soft/nginx-1.9.9.tar.gz

    a.2   cd nginx-1.9.9/

    a.3   ./configure --with-pcre=../pcre-8.38/ --with-zlib=../zlib-1.2.8/ --with-openssl=../openssl-SNAP-20160104/

    a.4   make

    a.5   make install

  b.在执行./configure的出现错误了,导致不能继续往下执行,报错内容为:

    error: You need a C++ compiler for C++ support,看到这句话我们就已经猜到了应该是c++包信息,而linux中没有,那么首先安装一下这个包信息即可,安装命令为:

    b.1  yum install -y gcc gcc-c++

  c.当安装完上面的c++包之后,在此运行,发现消息已经显示安装成功了。博文到这里如果安装的时候没有遇到错误的话说明已经安装成功了,下面我们就是测试Nginx是否安装成功。

6.监测Nginx是否安装成功

  a.当上面的所有步骤完成之后,则说明Nginx安装已经完成,那么我们如何来确定是否安装成功了呢?通过以下命令来确定即可。

    a.1  cd /usr/local/nginx/sbin/

    a.2 ./nginx -t

  b. 当我执行第二个命令(./nginx -t)的时候出错了,报没有权限的错误。如图所示:

    

    备注:根据错误提示,我们就能够看出来,是说/usr/local/nginx下没有权限,解决办法也很简单,我们给文件赋值权限。

  c.如下图所示,配置权限(配置权限需要切换到root用户下)之后,执行上面两个步骤,如果linux中如下图所示:则说明安装已成功。

    

  d.当确认安装完成之后,首先就需要启动和查看Nginx默认安装的端口是多少,两个命令分别如下:

    (1)  ./nginx

    (2)  netstat -ntlp  ,  Nginx默认端口为80

  e.开放80端口,让其外部环境可以访问(如果不开放80端口,外部环境访问不了),命令以及截图如下:

    vim /etc/sysconfig/iptables

    备注:这里我使用vim更改防火强信息之后,在重新启动防火墙的时候出现了错误,错误信息为:Try `iptables-restore -h' or 'iptables-restore --help' for more information,这个错误信息提示我们不能重新启动防火墙,那怎么办呢?测试了一下已写命令的方式去更改,发现更改成功了,如图所示:

      

  f.当上面的工作完成之后,我们在外部浏览器中浏览:http://IP,出现如图所示,则说明安装已完全完成。

    

7.将Nginx设置为开机自动启动

  a.当上面6步完成之后,说明安装已经完全成功了,但是每次开机我们面临的一个问题,就是每次都要执行命令(1: cd /usr/local/nginx/sbin/   2:./nginx -t),那么这时候有这个需要,设置开机自启动,开机自动启动的命令为:将Nginx的启动命令添加到/etc/rc.local,命令如下:

    echo "/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf" >> /etc/rc.local

  b.然后将Linux关机重启测试一下,如果http://IP还能够访问,则说明配置成功了,我这边已测试,配置完全成功。

8.使用server命令启动nginx服务

  a.  现在觉得启动命令太麻烦,虽然开机可以自启动,但是每次改动要重新启动nginx的话,要么输入命令,要么开机,都还不是很好,那么我们能不能创造一个更好的方式呢?当然可以,我们可以通过设置System V脚本。

  b.脚本代码如下所示:

  1 #!/bin/sh
2 #
3 # nginx - this script starts and stops the nginx daemon
4 #
5 # chkconfig: - 85 15
6 # description: Nginx is an HTTP(S) server, HTTP(S) reverse \
7 # proxy and IMAP/POP3 proxy server
8 # processname: nginx
9 # config: /etc/nginx/nginx.conf
10 # config: /etc/sysconfig/nginx
11 # pidfile: /var/run/nginx.pid
12 # Source function library.
13 . /etc/rc.d/init.d/functions
14 # Source networking configuration.
15 . /etc/sysconfig/network
16 # Check that networking is up.
17 [ "$NETWORKING" = "no" ] && exit 0
18 nginx="/usr/local/nginx/sbin/nginx"
19 prog=$(basename $nginx)
20 NGINX_CONF_FILE="/usr/local/nginx/conf/nginx.conf"
21 [ -f /etc/sysconfig/nginx ] && . /etc/sysconfig/nginx
22 lockfile=/var/lock/subsys/nginx
23
24 start() {
25 [ -x $nginx ] || exit 5
26 [ -f $NGINX_CONF_FILE ] || exit 6
27 echo -n $"Starting $prog: "
28 daemon $nginx -c $NGINX_CONF_FILE
29 retval=$?
30 echo
31 [ $retval -eq 0 ] && touch $lockfile
32 return $retval
33 }
34
35 stop() {
36 echo -n $"Stopping $prog: "
37 killproc $prog -QUIT
38 retval=$?
39 echo
40 [ $retval -eq 0 ] && rm -f $lockfile
41 return $retval
42 killall -9 nginx
43 }
44
45 restart() {
46 configtest || return $?
47 stop
48 sleep 1
49 start
50 }
51
52 reload() {
53 configtest || return $?
54 echo -n $"Reloading $prog: "
55 killproc $nginx -HUP
56 RETVAL=$?
57 echo
58 }
59
60 force_reload() {
61 restart
62 }
63
64 configtest() {
65 $nginx -t -c $NGINX_CONF_FILE
66 }
67
68 rh_status() {
69 status $prog
70 }
71
72 rh_status_q() {
73 rh_status >/dev/null 2>&1
74 }
75
76 case "$1" in
77 start)
78 rh_status_q && exit 0
79 $1
80 ;;
81 stop)
82 rh_status_q || exit 0
83 $1
84 ;;
85 restart|configtest)
86 $1
87 ;;
88 reload)
89 rh_status_q || exit 7
90 $1
91 ;;
92 force-reload)
93 force_reload
94 ;;
95 status)
96 rh_status
97 ;;
98 condrestart|try-restart)
99 rh_status_q || exit 0
100 ;;
101 *)
102 echo $"Usage: $0 {start|stop|status|restart|condrestart|try-restart|reload|force-reload|configtest}"
103 exit 2
104 esac
  1 #!/bin/sh
2 #
3 # nginx - this script starts and stops the nginx daemon
4 #
5 # chkconfig: - 85 15
6 # description: Nginx is an HTTP(S) server, HTTP(S) reverse \
7 # proxy and IMAP/POP3 proxy server
8 # processname: nginx
9 # config: /etc/nginx/nginx.conf
10 # config: /etc/sysconfig/nginx
11 # pidfile: /var/run/nginx.pid
12 # Source function library.
13 . /etc/rc.d/init.d/functions
14 # Source networking configuration.
15 . /etc/sysconfig/network
16 # Check that networking is up.
17 [ "$NETWORKING" = "no" ] && exit 0
18 nginx="/usr/local/nginx/sbin/nginx"
19 prog=$(basename $nginx)
20 NGINX_CONF_FILE="/usr/local/nginx/conf/nginx.conf"
21 [ -f /etc/sysconfig/nginx ] && . /etc/sysconfig/nginx
22 lockfile=/var/lock/subsys/nginx
23
24 start() {
25 [ -x $nginx ] || exit 5
26 [ -f $NGINX_CONF_FILE ] || exit 6
27 echo -n $"Starting $prog: "
28 daemon $nginx -c $NGINX_CONF_FILE
29 retval=$?
30 echo
31 [ $retval -eq 0 ] && touch $lockfile
32 return $retval
33 }
34
35 stop() {
36 echo -n $"Stopping $prog: "
37 killproc $prog -QUIT
38 retval=$?
39 echo
40 [ $retval -eq 0 ] && rm -f $lockfile
41 return $retval
42 killall -9 nginx
43 }
44
45 restart() {
46 configtest || return $?
47 stop
48 sleep 1
49 start
50 }
51
52 reload() {
53 configtest || return $?
54 echo -n $"Reloading $prog: "
55 killproc $nginx -HUP
56 RETVAL=$?
57 echo
58 }
59
60 force_reload() {
61 restart
62 }
63
64 configtest() {
65 $nginx -t -c $NGINX_CONF_FILE
66 }
67
68 rh_status() {
69 status $prog
70 }
71
72 rh_status_q() {
73 rh_status >/dev/null 2>&1
74 }
75
76 case "$1" in
77 start)
78 rh_status_q && exit 0
79 $1
80 ;;
81 stop)
82 rh_status_q || exit 0
83 $1
84 ;;
85 restart|configtest)
86 $1
87 ;;
88 reload)
89 rh_status_q || exit 7
90 $1
91 ;;
92 force-reload)
93 force_reload
94 ;;
95 status)
96 rh_status
97 ;;
98 condrestart|try-restart)
99 rh_status_q || exit 0
100 ;;
101 *)
102 echo $"Usage: $0 {start|stop|status|restart|condrestart|try-restart|reload|force-reload|configtest}"
103 exit 2
104 esac

  c.创建命令如下,手先跳转到/etc/init.d下创建nginx启动脚本文件,命令如下;

    c.1 cd /etc/init.d/

    c.2 vim nginx  创建一个新的nginx文件,将上面的命令代码copy到里面,然后保存

  d.修改脚本权限,命令如下:chmod 755 nginx

  e.将脚本文件加入到chkconfig中  chkconfig --add nginx

  f.设置nginx开机在3和5级别自动启动  chkconfig --level 35 nginx on

  g.测试nginx脚本文件是否能够正常使用,命令如下,我均已测试,全部可以使用。

    g.1  /etc/init.d/nginx restart

    g.2  /etc/init.d/nginx reload

    g.3   /etc/init.d/nginx stop

转:Linux(Centos)之安装Nginx及注意事项的更多相关文章

  1. Linux(Centos)之安装Nginx及注意事项

    1.Nginx的简单说明 a.  Nginx是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP服务器,期初开发的目的就是为了代理电子邮件服务器室友:Igor Sysoev开发 ...

  2. linux/centos下安装nginx(rpm安装和源码安装)详细步骤

    Centos下安装nginx rpm包                                                                                 ...

  3. 【Linux】Centos之安装Nginx及注意事项

    相关内容链接 [Linux]nginx常用命令 [nginx]详细配置说明 1.Nginx的简单说明 a.  Nginx是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP服务 ...

  4. Linux(centos 7) 安装nginx

    在安装nginx之前需要安装依赖的包 一. gcc 安装安装 nginx 需要先将官网下载的源码进行编译,编译依赖 gcc 环境,如果没有 gcc 环境,则需要安装: yum install gcc- ...

  5. linux CentOS YUM 安装 nginx+tomcat+java+mysql运行环境

    Java环境配置 1 安装JDK 查看CentOS自带JDK是否已安装 1 [root@test ~]# yum list installed |grep java 若有自带安装的JDK,应如下操作进 ...

  6. Linux centos 下安装nginx

                     一.安装编译工具及库文件      yum -y install make zlib zlib-devel gcc-c++ libtool openssl opens ...

  7. Linux(Centos)之安装Redis及注意事项

    1.redis简单说明 a.在前面我简单的说过redis封装成共用类的实现,地址如下:http://www.cnblogs.com/hanyinglong/p/Redis.html. b.redis是 ...

  8. [Linux] PHP程序员玩转Linux系列-Linux和Windows安装nginx

    1.PHP程序员玩转Linux系列-怎么安装使用CentOS 2.PHP程序员玩转Linux系列-lnmp环境的搭建 3.PHP程序员玩转Linux系列-搭建FTP代码开发环境 4.PHP程序员玩转L ...

  9. 分布式文件系统 FastDFS 5.0.5 & Linux CentOS 7 安装配置(单点安装)——第一篇

    分布式文件系统 FastDFS 5.0.5 & Linux CentOS 7 安装配置(单点安装)--第一篇 简介 首先简单了解一下基础概念,FastDFS是一个开源的轻量级分布式文件系统,由 ...

随机推荐

  1. spring cloud 实践之hystrix注意事项

    当我们写类似下面代码时 package demo1.demo1; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org ...

  2. CISCO 动态路由(RIP)

    RIP(路由信息协议):是一种内部网关协议(IGP),是一种动态路由选择协议,基于距离矢量算法(DistanceVectorAlgorithms),使用“跳数”(即metric)来衡量到达目标地址的路 ...

  3. SQL INNER JOIN 关键字

    SQL INNER JOIN 关键字 在表中存在至少一个匹配时,INNER JOIN 关键字返回行. INNER JOIN 关键字语法 SELECT column_name(s) FROM table ...

  4. 隔离 docker 容器中的用户-------分享链接

    https://www.cnblogs.com/sparkdev/p/9614326.html

  5. 10 python 初学(Python 的编码解码)

    Python 2 : ASCII Python 3 :Unicode

  6. oracle SQL 执行进度

    SELECT SS.USERNAME, SS.SID, SS.SERIAL#, SS.MACHINE, SS.PROGRAM, SL.OPNAME, SL.TARGET, SL.START_TIME, ...

  7. Servlet简单概念和开发小总结

    一.Servlet概念 安装了tomcat了解到其实tomcat是一个容器,可以处理用户发送的请求(Request),之后会为请求做出一个响应(Response),此时用户只能请求一些现成的资源,容器 ...

  8. [Micropython]TPYBoard v202 v102+v202 家庭无线温湿度检测

     一.实验器件 1.TPYBoard v102 1块 2.TPYBoard v202 1块 3.Nokia 5110LCD显示屏 1块 4.DHT11温湿度传感器 1个 5.micro USB 数据线 ...

  9. Git分支管理规范

    关于Git的一些分支管理规范... 一.分支与角色说明 Git 分支类型 master 分支(主分支) 稳定版本 develop 分支(开发分支) 最新版本 release 分支(发布分支) 发布新版 ...

  10. Recurrent Neural Network[Quasi RNN]

    0.背景 RNN模型,特别是包含着门控制的如LSTM等模型,近年来成了深度学习解决序列任务的标准结构.RNN层不但可以解决变长输入的问题,还能通过多层堆叠来增加网络的深度,提升表征能力和提升准确度.然 ...