Nginx学习日志

Nginx安装:

1、ping www.baidu.com确认是否可用上网
2、iptables -L iptalbes-t nat -L 确认是否有防火墙规则(iptables -F iptalbes -t nat -L)关闭
3、getenforce(setenforce 0 关闭)

yum -y install gcc gcc-c++ autoconf pcre pcre-devel make automake
yum -y install wget httpd-tools vim




二:
Nginx的优点:
1、IO多路复用的epoll(多个描述符的IO操作都能在一个线程内交替的顺序完成)
2、轻量级
3、CPU亲和(把CPU核心和Nginx工作进程绑定,把每个worker进程绑定在一个CPU上)
4、sendfile(零拷贝)

安装Nginx
创建yum源:vi /etc/yum.repos.d/nginx.repo
安装:yum install nginx
检查安装路径:rpm -ql nginx

Nginx log_format变量
用户请求变量
内部变量
自定义变量

Nginx配置文件
检查配置文件是否正确: nginx -t -c nginx.conf
重新加载配置文件 nginx -s restart -c nginx.conf

Nginx模块
substatus 显示nginx服务器的状态
random_index on 随机显示主页
sub_filter string replacement 替换返回值
sub_filter_last_modified on 校验返回值是否有更新
sub_filter_once on 替换时的匹配次数
limit_conn_module 连接频率限制
limit_conn_zone key zone=name:size
limit_conn zone number
limit_req_module 请求频率限制
limit_req_zone key zone=name:size rate=rate
limit_req zone=name [burst=number] [nodelay]
http_access_module 基于Ip的访问控制
allow address|CIDR|unix|all 允许
deny address|CIDR|unix|all 不允许
局限性解决方案:
1、采用别的http头信息控制访问,如http_x_forwarded_for
2、结合geo模块
3、通过http自定义变量传递
http_auth_basic_module 基于用户的信任登陆
auth_basic string | off
auth_basic_user_file path
局限性:
1、依赖文件,效率低下
解决方案
1、Nginx结合lua实现高效验证
2、Nginx和LDAP打通,利用nginx-auth-ldapy模块

三:

静态资源模块
sendfile no
tcp_nopush on|off (提高网络包传输效率)
tcp_nodelay on|off (提高网络包的实时传输)
gzip on|off 压缩传输
gzip_comp_level level 压缩比率
gzip_http_version 1.1  gzip版本
http_gzip_static_module 预读gzip功能
http_gunzip_module 应用支持gunzip的压缩模式

本地缓存模块
expires [modified] time;

跨站访问模块
add_header name(Access-Control-Allow-Origin) value(Url) [always]

防盗链模块(http_refer)
valid_referers none blocked url
if($invalid_referer){
return 403
}

代理模块
proxy_pass URL
proxy_buffering on|off 缓冲区
proxy_redirect default 跳转重定向
proxt_set_header field value 设置头信息
proxy_conect_timeout time 超时时间

负载均衡
upstream name {…}

代理缓存
proxy_cache

大文件分片请求
slice

动静分离

rewrite重定性
rewrite ^(.*)$/pages/main.html break

secure_link_module模块
1、制定并允许检查请求的链接的真实性及保护资源免澡未经访问授权
2、限制链接的生效周期

geoip_module模块
基于IP地址匹配MaxMind GeoIP二进制文件,读取IP所在的地域信息
安装:yum install nginx-module-geoip

HTTPS证书生成
1、openssl genrsa -idea -out jesonc.key 1024
2、openssl req -new -key jesonc.key -out jesonc.csr
3、openssl -x509 -req -days 3650 -in jesonc.csr -signkey jesonc.key -out jesonc.crt
4、(苹果)openssl req -days 3650 -x509 -sha256 -nodes -newkey rsa:2048 -keyout jesonc.key -out jesonc_apple.crt

HTTPS服务优化
1、激活keepalive长连接(keeplive_time 100)
2、设置ssl session缓存(ssl_session_cache shared:SSL:10m; ssl_session_timeout:10m)

Nginx与Lua开发


try_file 判断文件是否存在

系统性能优化


ab压力测试工具
安装 yum install httpd-tools
使用 ab -n 2000 -c 2 http://127.0.0.1
    -n 请求的次数 -c 并发数 -k是否开启长连接
系统与Nginx的性能优化
1、文件句柄
根据用户设置
vi /etc/security/limits.conf
root soft nofile 65535
root hard nofile 65535
根据进程设置
vi /etc/nginx/nginx.conf
worker_rlimit_nofile 35535;

2、CPU亲和
worket_processes CPU核心数;
worker_cpu_affinity auto;

worker_connections 每个进程处理的连接数(10240)

安全篇

Nginx+LUA防火墙
https://github.com/loveshell/ngx_lua_waf

猜你喜欢

转载自blog.csdn.net/q490880/article/details/78375494