美文网首页niginx
1-(1)nginx安装及使用

1-(1)nginx安装及使用

作者: 神奇作手 | 来源:发表于2019-10-06 10:39 被阅读0次

    1、在centos7上安装 nginx

    1.1、下载

    进入官网下载我们需要的版本,复制下载链接,使用wget工具下载,

    wget http://nginx.org/download/nginx-1.16.1.tar.gz
    

    1.2、解压

    tar -xzf nginx-1.16.1.tar.gz
    

    1.3、安装依赖

      在你不清楚服务器有没有安装这些依赖的情况下,可以先跳过,报错再回来,或者直接都安装一下也没坏处。

    1.3.1、gcc 源码的编依赖 于gcc 环境
    yum install gcc
    
    1.3.2、PCRE(Perl Compatible Regular Expressions) Perl库,包括 perl 兼容的正则表达式库
    yum install -y pcre pcre-devel
    
    1.3.3、zlib 库提供了很多种压缩和解压缩的方式, nginx 使用 zlib 对 http 包的内容进行 gzip
    yum install -y zlib zlib-devel
    
    1.3.4、OpenSSL是一个开放源代码的软件库包,应用程序可以使用这个包来进行安全通信,避免窃听,同时确认另一端连接者的身份。这个包广泛被应用在互联网的网页服务器上
      yum install -y openssl openssl-devel
    

    比较懒的可以直接执行这个命令:

    yum install gcc openssl-devel pcre-devel -y
    

    查看依赖安装:

    pcre-config --version
    

    1.4、配置

    先进入解压文件目录:

    cd nginx-1.16.1
    

    查看自己需要得配置,建议看看官网的参数说明根据你需要的情景使用配置

    ./configure  --help  
    

    这里我只设置了安装目录,其他均采用了默认

    ./configure --prefix=/server/nginx
    

    出现这个证明已经配置成功

    Configuration summary
      + using system PCRE library
      + OpenSSL library is not used
      + using system zlib library
    
      nginx path prefix: "/server/nginx"
      nginx binary file: "/server/nginx/sbin/nginx"
      nginx modules path: "/server/nginx/modules"
      nginx configuration prefix: "/server/nginx/conf"
      nginx configuration file: "/server/nginx/conf/nginx.conf"
      nginx pid file: "/server/nginx/logs/nginx.pid"
      nginx error log file: "/server/nginx/logs/error.log"
      nginx http access log file: "/server/nginx/logs/access.log"
      nginx http client request body temporary files: "client_body_temp"
      nginx http proxy temporary files: "proxy_temp"
      nginx http fastcgi temporary files: "fastcgi_temp"
      nginx http uwsgi temporary files: "uwsgi_temp"
      nginx http scgi temporary files: "scgi_temp"
    

    1.5、编译和安装

    make && make install
    

    看到这个界面证明已经安装成功了

    cp conf/nginx.conf '/server/nginx/conf/nginx.conf.default'
    test -d '/server/nginx/logs' \
        || mkdir -p '/server/nginx/logs'
    test -d '/server/nginx/logs' \
        || mkdir -p '/server/nginx/logs'
    test -d '/server/nginx/html' \
        || cp -R html '/server/nginx'
    test -d '/server/nginx/logs' \
        || mkdir -p '/server/nginx/logs'
    make[1]: Leaving directory `/root/nginx-1.16.1'
    [root@iZxz5n6q7bcnqgZ nginx-1.16.1]# 
    

    1.6、测试启动

    cd /server/nginx/sbin    //这个是配置安装包时候的目录
    ./nginx  //启动
    ./nginx -s stop  //停止
    ./nginx -s quit   //退出
    ./nginx -s reload  //重启
    

    1.7、其它相关配置

    1.7.1、主机浏览器无法访问问题

     云服务器Linux,安装配置完成nginx后,如果主机无法访问。则虚拟机没有放行Nginx默认端口80

    解决办法:

    (1)、查看防火墙对外开放的端口

    firewall-cmd --zone=public --list-ports
    

    (2)、开启 web 端口

    firewall-cmd --permanent --add-port=80/tcp
    

    (3)、重启 firewall

    firewall-cmd --reload
    
    1.7.2、配置 systemctl 命令

     centos7服务管理都是通过systemctl命令的,所以我们可以添加一下对应nginx的service服务,systemctl服务储存地址 :/usr/lib/systemd/system/

    执行以下命令新建nginx服务:

    vim /usr/lib/systemd/system/nginx.service
    

    并录入以下内容:

    [Unit]
    Description=nginx - high performance web server
    After=network.target remote-fs.target nss-lookup.target
     
    [Service]
    Type=forking
    ExecStart=/server/nginx/sbin/nginx
    ExecReload=/server/nginx/sbin/nginx -s reload
    ExecStop=/server/nginx/sbin/nginx -s stop
    

    配置说明:

    [Unit]:服务的说明
    Description:描述服务
    After:描述服务类别
     
    [Service]服务运行参数的设置
    Type=forking是后台运行的形式
    ExecStart为服务的具体运行命令
    ExecReload为重启命令
    ExecStop为停止命令
    PrivateTmp=True表示给服务分配独立的临时空间
    注意:启动、重启、停止命令全部要求使用绝对路径
     
    [Install]服务安装的相关设置,可设置为多用户
    

    要服务生效,需要重新加载服务

    systemctl daemon-reload
    

    现在可以使用systemctl命令来对nginx进行操作了

    systemctl start nginx  //启动
    systemctl stop nginx  //停止
    systemctl reload nginx  //重启 可以不用停止nginx服务,使修改的配置生效
    systemctl restart nginx  //重启
    systemctl enable nginx  //设置开机启动
    systemctl disable nginx  //禁用开机启动
    systemctl status nginx  //查看服务状态
    

    获取所有正在运行的服务

    systemctl list-units --type=service
    

    启动后可以访问一下看到这个界面就证明安装成功了


    2、nginx常用命令

    使用 nginx 命令前提条件:必须进入 nginx 得目录中

    /server/nginx/sbin(自己的目录)
    
    2.1、查看 niginx 的版本
    ./nginx -v
    
    2.2、启动 niginx
    ./nginx
    
    2.1、关闭niginx
    ./nginx -s stop
    
    2.1、重新加载 niginx
    ./nginx -s reload 
    

    3、nginx配置文件

    3.1、配置文件位置

     在nginx目录下的conf文件里面,即 */nginx/conf/nginx.conf

    /server/nginx/conf
    
    3.2、配置文件组成

    nginx 的配置文件由三部分组成:全局块、events 块、http 块。

    3.2.1、第一部分:全局块

       从配置文件开始到 events 块之间的内容,主要设置一些影响 nginx 服务器整体运行的配置指令,只有包括配置运行 nginx 服务器的用户(组),允许生成的 worker process 数,进程 PID 存放路径、日志存放路径、类型以及配置文件的引入等

    worker_processes  1;
    

      这是 Nginx 服务器并发处理服务的关键配置,值越大,可以支持的并发处理量越多,但是会受到硬件、软件等设备的制约。

    3.2.2、第二部分:events 块

       events块涉及的指令主要影响 Nginx 服务器与用户的网络连接,常用的设置包括是否开启对多 work process 下的网络连接进行序列化,是否允许同时接收多个网络连接,选取哪种事件驱动模型来处理连接请求,每个 word process 可以同时支持的最大连接数等。

    events {
        worker_connections  1024;
    }
    

      表示每个 work process 支持的最大连接数为 1024。
      这部分的配置对 Nginx 的性能影响较大,在实际中应该灵活配置。

    3.2.3、第三部分:http 块

       这算是 Nginx 服务器配置中最频繁的部分,代理、缓存和日志定义等绝大多数功能和第三方模块的配置都在这里。
       http 块也可以包括 http全局块、server 块。

    (1)、http 全局块

       http 全局块配置的指令包括文件引入、MIME-TYPE 定义、日志自定义、连接超时时间、但链接请求数上线等。

    (2)、server 块

       这块和虚拟主机有密切关系,虚拟主机从用户角度看,和一台独立的硬件主机是完全一样的,该技术的产生是为了节省互联网服务器硬件成本。
       每个 http 块可以包括多个 server 块,而每个 server 块就相当于一个虚拟主机。而每个 server 块也分为全局 server 块,以及可以同时包含多个 location 块。

    ①、全局 server 块
       最常见的配置是本虚拟机主机的监听配置和本虚拟机主机的名称或 IP 配置。

    ②、location 块
       一个 server 块可以配置多个 location 块。
       这块的主要作用是基于 Nginx 服务器接收到的请求字符串(例如 server_name/uri-string),对虚拟主机名称(也可以是 IP 别名)之外的字符串(例如 前面 /uri_string)进行匹配,对待定的请求进行处理。地址定向、数据缓存和应答控制等功能,还有许多第三方模块的配置也在这里进行。

    相关文章

      网友评论

        本文标题:1-(1)nginx安装及使用

        本文链接:https://www.haomeiwen.com/subject/cihupctx.html