Nginx 跨域装备

http {
#容许跨域央求的域,*代表一切
add_header 'Access-Control-Allow-Origin' *;
#容许带上cookie央求
add_header 'Access-Control-Allow-Credentials' 'true';
#容许央求的方法,比如服务器租借多少钱一年 GET/POST/PUT/DELETE
add_header 'Access-Control-Allow-Methods' *;
#容许央求的header
add_header 'Acc服务器租借ess-Control-Allow-Headers' *;
}

Nginx 防盗链装备

htt缓存视频兼并p {
#服务器装备对源站点验证 
valid_referers baidu.com;
#不合法引入会进入下方判别
if ($invalid_referer) {
return 404
}

Nginx 负载均衡

upstream tomcats {
servnginx反向署理er 119.3.214.158:6991;
server 119.3.214.158:6992;
servenginx装备r 119.3.214.158:6993;
}
server {
listen 6990;
location / {
proxy_pass  http://tomcats;
}
}

upstream 参数

weight=numb服务器装备er

设置server的权重,默许是1

upstream tomcats {
server 192.168.1.173:8080 weight=1;
server 192.168.1.174:8080 weightnginx是什么意思=3;
server 192.168.1.175:8080 weight=5;
}

max_conns=number

束缚每台serverAPP的联接数,用于维护防止过载,可起到限流作用。

upstream tomcats {
server 192.168.1.173:8080 max_conns=2;
server 192.168.1.174:8080 max_conns=2;
server 192.168.1.175:8080 max_conns=2;
}

slow_start=time

多长时间内缓慢发起(仅限商业版可用)

upstream tomcats {
server 192.168.1.173:8080 weight=1;
server 192.168.1.174:8080 weight=3;
# 60s秒内 权重从 0 --> 5, server由不可用变为可用
server 192.168.1.175:8080 weight=5 slow_start=60s;
}

down

将server符号为不可用

backup

nginx怎样读server符号为备份服务器。 当主服务器不可用时,它将缓存视频兼并启用。

fail_timeout=time

标明失利的重试时间

max_fails=number

标明失利几回,则appear符号server已宕机,剔出上游服务
假定现在设置如下:

max_failsnginx面试题=2 fail_timeoutnginx怎样读=15s

则代表在15秒内央求某一server失利抵达2次后,则认为该server现已挂了或许宕机了,随后再过15秒,这1apple5秒内不会有新的央求抵达刚刚挂掉的节点上,而是会央求到运作的server,15秒后会再有新央求检验联接挂掉的server,假定仍是失利,重复上一进程,直到康复

keepaliveconnec缓存的视频怎样保存到本地tions

假定你在上游服务器upstream中装备支缓存视频怎样转入相册keepalive,Nginx 现在将重用现有的 TCPnginx装备 联接而不创立新的联接。这能够大大削减TIME_WAIT繁忙的 SSL 服务器上的TCP 联接数

  • Keep-Alive
  • Connection
upstream http_backend {
server 127.0.0.1:8080;
# 坚持TCP联接的数量, 便当后续重用
keepalive 16;
}
server {
location /http/ {
proxy_papplicationass http://http_backend;
# 默许是 HTTP/1, keepaliv服务器是什么e 只要在 HTTP/1.缓存视频兼并1才能够运用服务器是什么
proxy_htt缓存视频兼并p_version 1.1httpclient;
# 假定客户端发送了这个央求头 根除它
# 由于该值 可能为 [keepalive | cNginxlose], 假定是close标明客户端或服务器想要封闭服务器是什么该网络联接,这是HTTP/1.0央求的默许值
proxy_set_headhttp 302er Conne缓存视频兼并ction "";
...
}
}

负载均衡战略

round-robin 轮询

对应缓存视频兼并app下载用服https和http的差异务器的央求以循环方法分发

加权轮询

通过给server分配权重,影响nginx负载均衡战略负载均衡

upstream myapp1 {
server srv1缓存视频兼并app下载.example.com weight=3;
server srv2.appstoreexample.com;
server srv3.example.com;
}

运用此装备,每 5 个新央求将按如下方法分布在应用程序实例中:3 个央求将approach被定向到 srv1,一个央求将被定向到 srv2,另一个央求将被定向到 srv3

least-connected 最少联接

下一个央求nginx面试题被分配给活动联接数最少的服务器

    upstream myapp1 {
least_conn;
server srv1.example.com;
server srv2.example.com;
server srv3.example.com;
}

ip-hash

通过一个散列函数确认应该为下一个央求选择哪个服务器(依服务器ip据客户端的 IP 地址)

upstream myapp1 {
ip_hash;
server srv1.example.com;
server srv2.example.com;
server srv3.example.com;
}

但是ip-hash存在一些问题:

  1. 服务器添加或削减导致必须从头计算哈希(运用新数量的服务器),现有ip的后服务器体系续央求会发送到其它机服务器装备器上,毕竟导致缓存或session失效
  2. 倾斜,即太多的ip会散列到一个服务器而而导致分布不均匀

而一致性hash能很好的处理上述问题

Nginx 常用功用

Nginx 装备HTTPS域名证书

  1. 设备SSL模块

    要在nginx中装备https,就必须设备ssl服务器体系模块,也便是: http_ssl_modul

  2. 装备HTTPS

    • 把ssl证书 *.crt 和 私钥 *.key 拷贝到 /usr/local/nginx/conf 目录中
    • 新增 server 监听 443 端口
    se服务器地址在哪里看rver {
    listen  443;
    # 你的域名 
    server_name dsying.cn;
    # 翻开ssl
    ssl on;
    # 装备ssl证书
    ssl_certificate dsying缓存.cn.crt;
    # 装备ssl秘钥
    ssl_certificate_key dsying.cn.key;
    # ssl会话cache
    ssl_nginx是干嘛用的session_cache shared:SSL:1m;
    # ssl会话超时时间
    ssl_session_timeout 5m;
    location / {
    proxy_pass http://公网地址:项目端口号;
    }
    }