openresty

2018-08-11  本文已影响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

上一篇 下一篇

猜你喜欢

热点阅读