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