Nginx详解

本文详细介绍了Nginx的优势、安装方法、服务管理、配置文件详解、自定义日志、访问控制、状态访问、反向代理和负载均衡、动静分离等核心功能。并探讨了常见的500、502、503、504错误及其解决方案,以及如何查看并发。
摘要由CSDN通过智能技术生成

Nginx

一.nginx详解

1.优势

支持高并发 (静态请求)

高性能反向代理功能(负载均衡服务器)

安装非常简单、bug很少、可在线平滑升级

模块丰富(功能丰富)

2.安装

  1. yum安装(本地源,base源,epel扩展源)

    方案一、使用官方源:
    注意:本地yum源没有nginx的安装包,需要其他的扩展源
    #安装epel  yum源  (需要开启官方Base源)
    yum install epel-release -y
    会发现多了两个yum源文件:
    epel.repo  epel-testing.repo    (epel扩展源:包含nginx)
    
    
    #安装nginx
    yum -y install nginx
    #启动nginx
    systemctl start nginx
    
    #防火墙放行
    firewall-cmd --add-service=http --per
    firewall-cmd --reload
    
    #主配置文件:/etc/nginx/nginx.conf
    
    
    
  2. 源码安装

    1.停止原有web服务卸载yum安装的nginx
    2.准备源码安装依赖的环境
    yum install -y gcc pcre-devel zlib-devel
    注意:本地yum源版本过低,使用官方yum源:CentOS-Base.repo
    
    3.创建程序运行用户和组
    useradd  -M -s /sbin/nologin  nginx
    
    4. 下载源码包
    wget http://nginx.org/download/nginx-1.19.7.tar.gz
    
    
    5.解包
    tar -axf nginx-1.19.7.tar.gz
    6.配置
    cd ~/nginx-1.19.7
    ./configure --prefix=/usr/local/nginx --user=nginx --group=nginx
    
     注释:      --prefix=/usr/local/nginx #指定安装目录
                    --user=nginx --group=nginx #指定程序运行的用户和组
    
    7.编译安装
    make  &&  make install
    
    8.启动服务
    /usr/local/nginx/sbin/nginx
    netstat -tunlp | grep nginx
    
    firewall-cmd --zone=public --add-port=80/tcp --permanent
    firewall-cmd --reload
    
    9.客户机测试访问
    
    10.环境优化
    环境变量:PATH (命令的默认搜索路径)
    /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
    简化命令的路径
    vim   /etc/profile.d/nginx.sh
    export PATH="/usr/local/nginx/sbin:$PATH"
    source /etc/profile #立即生效
    
    以后启动只需要执行:nginx    或  nginx -c /usr/local/nginx/conf/nginx.conf
     ## 设置:开机自启动
    echo "/usr/local/nginx/sbin/nginx" >> /etc/rc.d/rc.local (开机会执行的脚本)          
    chmod +x /etc/rc.d/rc.local
    

    3.nginx服务管理

    1.启动
    nginx 或 nginx -c /usr/local/nginx/conf/nginx.conf
    2.快速关闭
    pkill -9 nginx
    或者 nginx -s stop
    3.重载
    nginx -s reload
    4.优雅的关闭
    nginx -s quit

    4.nginx升级或者添加模块

    1.进入之前编译安装的目录,清除旧数据
    make clean

    2.重新配置,添加你需要的模块(功能)
    ./configure --prefix=/usr/local/nginx --user=nginx --group=nginx
    –with…
    (重新配置会涉及到更多依赖包,根据报错去安装)

    3.编译安装
    make && make install

    4 .平滑升级
    make upgrade

    5.查看
    nginx -V

    #日志切割(防止单个文件过大,可以及时删除旧日志,节省磁盘空间)
    cat log.sh
    #!/bin/bash
    dir=/usr/local/nginx
    mv $dir/logs/access.log $dir/logs/date +%F.access.log
    mv $dir/logs/error.log $dir/logs/date +%F.error.log
    $dir/sbin/nginx -s reopen
    find $dir/logs/ -iname “*log” -atime +3 -exec rm -rf {} ;
    编辑周期性计划任务定期执行该脚本:
    crontab -e
    59 23 * * * /bin/bash /root/log.sh

    修改时间测试:
    date -s “2021-11-24 23:58:50”

5.nginx配置文件详解

nginx主配置文件主要有以下几大块

1、全局块:配置影响nginx全局的指令。一般有运行nginx服务器的用户组,nginx进程pid存放路径,日志存放路径,配置文件引入,允许生成worker process数等。
2、events块:配置影响nginx服务器或与用户的网络连接。有每个进程的最大连接数,选取哪种事件驱动模型处理连接请求,是否允许同时接受多个网路连接,开启多个网络连接序列化等。
3、http块:可以嵌套多个server,配置代理,缓存,日志定义等绝大多数功能和第三方模块的配置。如文件引入,mime-type定义,日志自定义,是否使用sendfile传输文件,连接超时时间,单连接请求数等。
4、server块:配置虚拟主机的相关参数,一个http中可以有多个server。
5、location块:配置请求的路由,以及各种页面的处理情况。  



[root@clone1 nginx]# vim /usr/local/nginx/conf/nginx.conf    #user  nobody;                          
worker_processes  1;///worker进程轻易不要调,否则会出问题,,这里的worker进程数调成了多少,对应的nginx就会生成多少worker进程。#最优值取决于许多因素,包括(但不限于)CPU核的数量、存储数据的硬盘数量及负载模式。#不能确定的时候,将其设置为可用的CPU核心数将是一个好的开始(设置为“auto”将尝试自动检测它)    #error_log  logs/error.log;    #error_log  logs/error.log  notice;    #error_log  logs/error.log  info;       #pid        logs/nginx.pid;             events {
   

​        worker_connections  1024;

​       ///每个进程最大的连接数,可以适当调高一点,最大值是65535

,nginx最终的并发连接数是这里的每个进程连接数乘以上面的worker进程数目

}
    http {
              (这种方式可以自定义发布目录)                                   include       mime.types;             
        default_type  application/octet-stream;server_tokens off;#隐藏软件版本号
\#定义访问日志格式        #                  '$status $body_bytes_sent "$http_referer" '        #                  '"$http_user_agent" "$http_x_forwarded_for"';        #access_log  logs/access.log  main;                                                                       
sendfile        on;#开启高效文件传输模式        #tcp_nopush     on;    #keepalive_timeout  0; keepalive_timeout  65;#连接超时时间        #gzip  on; server {
   
            listen       80;                        #监听端口
            server_name  localhost;            \#虚拟主机名称
            \#charset koi8-r;                //字符集设置  

​        \#access_log  logs/host.access.log  main;        //定义日志。编译安装的日志
​        location / {
                                                   #资源路径
​            root   html;                                        //默认发布网站目录,可以自定义
​            index  index.html index.htm;            //在发布网站目录下面有默认主页。可以写多个。按顺序访问
​      }\#error_page  404              /404.html;\# redirect server error pages to the static page /50x.html
​        \#
​        error_page   500 502 503 504  /50x.html;
​        location = /50x.html {
   
​            root   html;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值