nginx 安装步骤详解

  • 安装 nginx 之前需要先安装好相关依赖
    nginx 的一些模块需要引用一些 lib 库,主要包括 g++,gcc,openssl-devel,pcre-devel 和 zlib-devel等,执行如下命令即可安装:
    yum -y install g++ gcc openssl openssl-devel pcre-devel zlib zlib-devel
  • 下载并解压安装包
    // 安装在 /usr/local 目录下
    cd /usr/local
    
    //从官网下载最新版安装包
    wget http://nginx.org/download/nginx-1.17.8.tar.gz
    
    //解压压缩包
    tar -zxvf nginx-1.17.8.tar.gz

    不知道大家有没有疑惑就是 wget 后面这个地址从哪里得到的?
    网上很多教程都是直接写上来了,好像是从天上掉下来的一个东西一样,我这里提供一个方案,个人觉得不是很好,但是可以参考一下,如果大家有更好的方案,希望能在留言区告诉我,不甚感谢。

    1:首先我们进入 nginx 官网



    2:选择最新版本的 nginx



    3:右键选择复制链接,复制完之后就可以直接放到 wget 之后使用了

    • 现在我们已经拿到最新的软件包并解压了,下面就是安装了

      1:执行完上面的步骤之后,我们此时应该在 /usr/local 目录下,该目录包含已经解压好的 nginx 目录



      2:进入 nginx-1.17.8 编译安装
       

      //进入 nginx-1.17.8 目录
      cd nginx-1.17.8
      
      //构建,这个词有点高大上,等会再解释
      ./configure
      
      //编译
      make
      
      //安装
      make install

      好,我们现在可以研究下构建、编译和安装这三个命令都是干嘛的!
      ./configure
      网上好多都是直接贴上来也没有解释这句话有啥用,可是既然要用,nginx 应该告诉我们是要干嘛吧,出于直觉我去看了下 README有没有告诉我




      好,很容易就看懂了,不过它又告诉我看它没有用,官方文档才靠谱,(kuzidoutuole,你给我看这个?),好吧,只能选择原谅它,继续去官方文档找找看





      好,我终于找到个有用的了,简单介绍下就是,./configure 它就是个命令,它可以带很多参数来对 nginx 进行配置,并且最后它还会生成一个文件 Makefile。简单找几个参数介绍下:

      --prefix=path   该参数用来指定保留服务器文件的目录,我就简单把它理解为 nginx 的安装目录了,然后它默认为 /usr/local/nginx, 这也就是你什么都不配置,它自动就会生成一个 nginx 目录的原因呀!

      --sbin-path=path  该参数用于设置可执行文件的名称,默认为 prefix/sbin/nginx, 即安装完成之后进入prefix/sbin目录执行 ./nginx 就能启动 nginx 

      --conf-path=path  该参数用于指定配置文件的名称,默认为 prefix/conf/nginx.conf, 可以在该文件中进行相关配置

      剩下还有大概几百个参数,有兴趣的可以自己看下,然后文末还有使用例子可以参考下:



      然后我执行 ./configure 可以看下结果:



      可以看到,因为我自己没有做配置,所以所有的配置都是默认的,然后还生成了 Makefile 文件,有兴趣的可以去研究下 Makefile 文件

      make
             make用来编译的,它从Makefile中读取指令,然后编译。

      make install
             make install是用来安装的,它也从Makefile中读取指令,安装到指定的位置。

  • 此时已经安装好了,需要配置下 nginx.conf 
     
    vi /usr/local/nginx/conf/nginx.conf

    找到 server 修改默认的端口号,因为默认的 80 会跟 apache 占用 80 端口冲突,当然也可以设置监听多个端口,如下所示监听了 8090 和 8091 两个端口:


    配置完成之后可以在 /usr/local/nginx/sbin 目录下执行命令  ./nginx -t 检查配置文件是否正确,如下:

  • 启动 nginx 
     
    //进入启动脚本所在目录
    cd /usr/local/nginx/sbin
    
    //启动 nginx 
    ./nginx
  • 至此,nginx 安装启动完成!但是还没完!

    1:服务器默认防火墙是开启的,要想从外部访问,必须关闭防火墙,下面三条命令可以用来操作防火墙
     
    //关闭防火墙
    sudo systemctl stop firewalld
    
    //查看防火墙状态
    sudo systemctl status firewalld
    
    //开启防火墙
    sudo systemctl start firewalld
    

    如下图所示,状态为 inactive 的时候,表示防火墙已经关闭,状态为 active 的时候,状态为开启




    2:此时可以试着在浏览器通过IP和端口号来访问,刚刚我们设置监听的是8090和8091端口,那么就可以访问这个端口,如下,出现以下页面表示安装成功:




    3:如果没有出现上面的页面,则可以 ping 一下 ip 地址,telnet 一下端口号,看看是不是都是好的,如果你用的是阿里云的服务器,那么你要在阿里云上把对应端口给开放了,如下:




    我上面是开通了8090-8099这个范围的接口,你也可以自己根据需要选择适合自己的

    4:有时候使用 ./nginx -s reload 会报如下错误:
    nginx: [error] open() "/usr/local/nginx/logs/nginx.pid" failed (2: No such file or directory)
    这是因为当我们停止 nginx 的时候会把 nginx.pid 这个文件删掉,所以会找不到这个文件,此时就不要用重启命令了,只用用 ./nginx 启动命令来启动 nginx 就可以了,它会生成该文件,即只有在 nginx 在启动中这个状态下才可以直接使用 ./nginx -s reload 命令来重新加载配置文件。

    5:nginx 常用简单命令:

    //启动 nginx
    ./nginx
    
    //重新加载配置文件(不停止 nginx 服务的情况下加载新的配置)
    ./nginx -s reload
    
    //停止 nginx
    ./nginx -s stop
    
    //测试 nginx 配置是否有语法错误
    ./nginx -t
    
    //查看 nginx 版本
    ./nginx -v
    
    //获取帮助信息
    ./nginx -h

     

  • END

     

发布了3 篇原创文章 · 获赞 0 · 访问量 7978
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章