openresty

作者: 可笑可乐 | 来源:发表于2018-08-11 10:26 被阅读75次

    1 NGINX

    epoll 与 select poll的区别
    基于IO事件 的异步非阻塞模式,能够处理大量连接,并不会随着连接数的增长而性能降低,因为采用了事件callback机制,只有发生了io事件的连接才会被调用。而select poll采用了轮询机制。
    epoll采用mmap内存映射机制,内核与用户空间使用同一块内存,所谓的零拷贝。

    nginx安装:
    yum -y install openssl openssl-devel
    yum install gcc

    wget http://nginx.org/download/nginx-1.15.3.tar.gz
    tar -xzvf nginx-1.15.3.tar.gz -C /usr/local/src/software
    cd /usr/local/src/software
    ./configure --prefix=/usr/local/nginx1.15 --with-http_ssl_module --with-http_realip_module
    make
    make install

    1.2 linux 内核参数优化 sysctl.conf

    vim sysctl.conf
    net.ipv4.netfilter.ip_conntrack_tcp_timeout_established = 1800
    net.ipv4.ip_conntrack_max = 16777216 # 如果使用默认参数,容易出现网络丢包
    net.ipv4.netfilter.ip_conntrack_max = 16777216# 如果使用默认参数,容易出现网络丢包
    net.ipv4.tcp_max_syn_backlog = 65536
    net.core.netdev_max_backlog = 32768
    net.core.somaxconn = 32768
    net.core.wmem_default = 8388608
    net.core.rmem_default = 8388608
    net.core.rmem_max = 16777216
    net.core.wmem_max = 16777216
    net.ipv4.tcp_timestamps = 0
    net.ipv4.tcp_synack_retries = 2
    net.ipv4.tcp_syn_retries =
    net.ipv4.tcp_tw_recycle = 1
    net.ipv4.tcp_tw_reuse = 1
    net.ipv4.tcp_mem = 94500000 915000000 927000000
    net.ipv4.tcp_max_orphans = 3276800
    net.ipv4.ip_local_port_range = 1024 65535
    sysctl -p #配置生效

    1.3 nginx配置文件

    cd /usr/local/nginx1.15/conf
    vim nginx.conf

    2 LUA脚本语言

    luajit (just in time)把lua脚本代码编译成机器码,性能更高
    lua解释器、即时编译器

    3 openresty

    lua脚本:

    1、安装开发环境

    2、编写lua脚本文件 ,放置在luajit.exe的当前目录下的script文件夹,在jit命令行执行

    dofile('script/hello.lua')

    3、字符串比较其实为内部存储地址比较

    4、没有continue

    5、for语句

    for i = 1, 5 do print(i) end 。step默认为1

    for i = 1, 5 ,2 do print(i) end

    6、弱类型语言

    7、模块编写、模块引用

    require的用法

    8、table数组下标从1开始

    9、注意:删除数组元素时,直接remove,不要用=nil

    10,日期和时间,在openresty里不推荐使用lua的date api,这会引发系统调用的损耗,同时无法为luajit编译,对性能造成较大影响,使用ngx。today,ngx。now等

    11、数学库:math.random 等

    12、文件操作

    隐式文件描述、显示文件描述

    在openresty里,对

    13、操作符重载

    __add 重载+

    14、lua面向对象编程

    15、局部变量, local foo=1,否则默认都是全局变量

    16、正则表达式

    17、

    nignx:

    [图片上传失败...(image-c889c-1533954389847)]

    worker_processes:2 --CPU个数

    反向代理:

    server{

    listen 802;
    
    server_name localhost;
    
    location / {
    
        proxy_pass http://ekp.xiamenair.com.cn;
    

    proxy_redirect off;

    proxy_set_header Host $host;

    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

    }
    

    负载均衡:upstream模块

    upstream test.net

    { ip_hash;

    server 192.168.10.13:80;

    server 192.168.10.14:80 down;

    server 192.168.10.15:8009 max_fails=3 fail_timeout=20s;

    server 192.168.10.16:8080;

    }

    server

    {

    location / { proxy_pass http://test.net; } }

    openresty:

    设置前缀: nginx -s reload -p openresty-test

    start nginx

    nginx -s reload

    nginx -s quit

    相关文章

      网友评论

          本文标题:openresty

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