美文网首页
[Nginx]Nginx应用基础

[Nginx]Nginx应用基础

作者: AbstractCulture | 来源:发表于2023-03-06 20:39 被阅读0次

    静态资源服务

    通过本地文件系统提供服务

    反向代理

    • Nginx基于NIO带来的强大性能
    • 缓存
    • 负载均衡

    为什么需要反向代理,因为随着微服务的推行,应用会进行集群化部署,这就需要在代理端进行负载均衡和动态路由等功能

    API服务

    • OpenResty

    Nginx的组成

    Nginx二进制可执行文件

    由各模块源码编译出的一个文件

    Nginx.conf配置文件

    控制Nginx的行为

    access.log访问日志

    记录每条http请求信息

    error.log错误日志

    定位问题

    启动nginx

    这里不展示nginx的安装繁琐过程,笔者选用的是docker直接容器启动并且挂载文件的方式.具体的docker挂载目录如下:

    image.png

    Nginx基础语法

    http {
        upstream myserver {
            ip_hash; 
            server 192.168.37.139:8801 weight=1;
            server 192.168.37.139:8802 weight=1;
            #down 不参与负载均衡
            #weight=5; 权重,越⾼分配越多
            #backup; 预留的备份服务器
            #max_fails 允许失败的次数
            #fail_timeout 超过失败次数后,服务暂停时间
            #max_coons 限制最⼤的接受的连接数
        }
        server {
            location / {
                proxy_pass http://myserver;
                proxy_connect_timeout 10;
            }
        }
    }
    
    • 配置文件由指令与指令块构成,例如:
    http{
        //...
    }
    
    • 每条指令以;分号结尾,指令与参数间以空格符号分隔.
    • 指令块以{}大括号将多条指令组合在一起.
    • include语句允许组合多个配置文件.
    • 需要注释时,采用#.
    • 使用$符号使用变量.
    • 部分指令的参数支持正则表达式.

    配置参数-时间

    名称 含义
    ms millliseconds
    s seconds
    m minutes
    h hours
    d days
    w weeks
    M months,30 days
    y years,365 days

    配置参数-空间

    名称 含义
    bytes bytes
    k/K kilobytes
    m/M megabytes
    g/G gigabytes

    http配置的指令块

    • http
    • server

    域名,可以是一个,可以是一组

    • upstream

    上游服务,需要跟tomcat打交道的时候可以配置一个upstream.

    upstream tomcat{
        server 127.0.0.1:8080;
    }
    
    • location

    代表的是url资源

    location /api {
        proxy_pass http://myserver;
        proxy_connect_timeout 10;
    }
    

    nginx命令行

    比如重新加载nginx配置:

    nginx -s reload

    需要查看指令目录或者帮助:

    nginx -h

    指定配置文件启动:

    nginx -c

    指定配置指令:

    nginx -g

    指定目录运行:

    nginx -p

    发送信号:

    nginx -s stop/quit/reload/reopen

    验证配置文件是否有语法错误:

    nginx -t/-T

    打印nginx的版本信息等:

    nginx -v

    • 使用nginx做日志切割

    假设每天都需要备份一份日志出来,这个时候你可能需要用到日志切割.

    cd /var/log/nginx
    mv access.log bak.log  
    ../etc/nginx -s reopen
    

    可以让运维写一个定时任务脚本,自动做日志切割.

    相关文章

      网友评论

          本文标题:[Nginx]Nginx应用基础

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