侯体宗的博客
  • 首页
  • Hyperf版
  • beego仿版
  • 人生(杂谈)
  • 技术
  • 关于我
  • 更多分类
    • 文件下载
    • 文字修仙
    • 中国象棋ai
    • 群聊
    • 九宫格抽奖
    • 拼图
    • 消消乐
    • 相册

详解Linux(Centos)之安装Nginx及注意事项

linux  /  管理员 发布于 7年前   152

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/

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中没有,那么首先安装一下这个包信息即可,安装命令为:

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中没有,那么首先安装一下这个包信息即可,安装命令为:

 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.脚本代码如下所示:

#!/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/sbin/nginx"   prog=$(basename $nginx)   NGINX_CONF_FILE="/usr/local/nginx/conf/nginx.conf" [ -f /etc/sysconfig/nginx ] && . /etc/sysconfig/nginx   lockfile=/var/lock/subsys/nginx  start() {   [ -x $nginx ] || exit 5   [ -f $NGINX_CONF_FILE ] || exit 6   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   killall -9 nginx }  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 

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     

到这里我们这片笔记就完成了,希望对大家的学习有所帮助,也希望大家多多支持。


  • 上一条:
    详解Centos7.2安装Nginx实现负载平衡
    下一条:
    centos7安装nginx的两种方法介绍
  • 昵称:

    邮箱:

    0条评论 (评论内容有缓存机制,请悉知!)
    最新最热
    • 分类目录
    • 人生(杂谈)
    • 技术
    • linux
    • Java
    • php
    • 框架(架构)
    • 前端
    • ThinkPHP
    • 数据库
    • 微信(小程序)
    • Laravel
    • Redis
    • Docker
    • Go
    • swoole
    • Windows
    • Python
    • 苹果(mac/ios)
    • 相关文章
    • 在Linux系统中使用Iptables实现流量转发功能流程步骤(0个评论)
    • vim学习笔记-入门级需要了解的一些快捷键(0个评论)
    • 在centos7系统中实现分区并格式化挂载一块硬盘到/data目录流程步骤(0个评论)
    • 在Linux系统种查看某一个进程所占用的内存命令(0个评论)
    • Linux中grep命令中的10种高级用法浅析(0个评论)
    • 近期文章
    • 在go语言中使用api.geonames.org接口实现根据国际邮政编码获取地址信息功能(1个评论)
    • 在go语言中使用github.com/signintech/gopdf实现生成pdf分页文件功能(0个评论)
    • gmail发邮件报错:534 5.7.9 Application-specific password required...解决方案(0个评论)
    • 欧盟关于强迫劳动的规定的官方举报渠道及官方举报网站(0个评论)
    • 在go语言中使用github.com/signintech/gopdf实现生成pdf文件功能(0个评论)
    • Laravel从Accel获得5700万美元A轮融资(0个评论)
    • 在go + gin中gorm实现指定搜索/区间搜索分页列表功能接口实例(0个评论)
    • 在go语言中实现IP/CIDR的ip和netmask互转及IP段形式互转及ip是否存在IP/CIDR(0个评论)
    • PHP 8.4 Alpha 1现已发布!(0个评论)
    • Laravel 11.15版本发布 - Eloquent Builder中添加的泛型(0个评论)
    • 近期评论
    • 122 在

      学历:一种延缓就业设计,生活需求下的权衡之选中评论 工作几年后,报名考研了,到现在还没认真学习备考,迷茫中。作为一名北漂互联网打工人..
    • 123 在

      Clash for Windows作者删库跑路了,github已404中评论 按理说只要你在国内,所有的流量进出都在监控范围内,不管你怎么隐藏也没用,想搞你分..
    • 原梓番博客 在

      在Laravel框架中使用模型Model分表最简单的方法中评论 好久好久都没看友情链接申请了,今天刚看,已经添加。..
    • 博主 在

      佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 @1111老铁这个不行了,可以看看近期评论的其他文章..
    • 1111 在

      佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 网站不能打开,博主百忙中能否发个APP下载链接,佛跳墙或极光..
    • 2016-11
    • 2017-07
    • 2017-10
    • 2017-11
    • 2018-01
    • 2018-02
    • 2020-03
    • 2020-04
    • 2020-05
    • 2020-06
    • 2021-02
    • 2021-03
    • 2021-04
    • 2021-06
    • 2021-07
    • 2021-08
    • 2021-09
    • 2021-10
    • 2021-11
    • 2021-12
    • 2022-01
    • 2022-03
    • 2022-04
    • 2022-08
    • 2022-11
    • 2022-12
    • 2023-01
    • 2023-02
    • 2023-03
    • 2023-06
    • 2023-07
    • 2023-10
    • 2023-12
    • 2024-01
    • 2024-04
    Top

    Copyright·© 2019 侯体宗版权所有· 粤ICP备20027696号 PHP交流群

    侯体宗的博客