1.nginx支持反向代理,高性能、稳定,可重写url,内存小,隐藏正式服务器ip。 缺点:动态代理差,一般用于前端反向代理。
2.nginx解决了c10k问题。
3.c10问题:一秒之内连接客户端数目为10k。
4.正向代理:一般作为客户端代理访问不同服务器端,例如翻墙软件。
5.反向代理:服务器端,接受服务器端请求,然后将请求分发到其他服务器处理,将结果反馈给客户端。
6.支持多协议,http、https、smtp、pop3、imap协议,跨平台、配置简单、消耗资源少、支持热部署、支持gzip压缩、接受请求是异步的。
7.ngnix配置 示例
Upstream proxy_nginx {
//least_conn; ip_hash;
server 192.168.0.254 weight=1max_fails=2 fail_timeout=10s ;
server 192.168.0.253 weight=2 max_fails=2fail_timeout=10s;
server192.168.0.252 backup; server192.168.0.251 down;
}
server{
listen 80;
server_name xiaoka.com;
}
location / {
proxy_pass http:// proxy_nginx;
proxy_set_header Host
proxy_set_header X-Real-IP
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
8.常用负载均衡算法round-robin(默认)、least-connected、ip-hash、weighted
round-robin ;
least-conned:发给连接数最少的;
ip-hash:同一用户请求发到同一台服务器;
weighted:权重算法
9.ngx_http_upstream_module用于定义可通过fastcgi传递、proxy传递、uwsgi传递、memcached传递和scgi传递指令来引用的服务器组。
10.高可用配置
server {
listen 80;
server_name www.lijie.com;
location / {
### 指定上游服务器负载均衡服务器
proxy_pass http://backServer;
###nginx与上游服务器(真实访问的服务器)超时时间 后端服务器连接的超时时间_发起握手等候响应超时时间
proxy_connect_timeout 1s;
###nginx发送给上游服务器(真实访问的服务器)超时时间
proxy_send_timeout 1s;
### nginx接受上游服务器(真实访问的服务器)超时时间
proxy_read_timeout 1s;
index index.html index.htm;
}
}
11.nginx采用异步非阻塞处理请求,占用资源少,支持更多并发。
12.常用命令
启动:nginx
停止:nginx -s stop 或者 nginx -s quit
重启:/sbin/nginx -s reload 或者service nginx reload
重载制定文件:.nginx -c /usr/local/nginx/conf/nginx.conf
13.nginx io事件模型以及连接数上限
events {
use epoll; #epoll 是多路复⽤ IO(I/O Multiplexing)中的⼀种⽅式,但是仅⽤于 linux2.6
#以上内核,可以⼤⼤提⾼ nginx 的性能
worker_connections 1024;#单个后台 worker process 进程的最⼤并发链接数
# multi_accept on;
}
14.nginx动静分离
15.Nginx处理HTTP请求的11个阶段的顺序处理
16.错误代码
502 =错误网关
503 =服务器超载
500:
Internal Server Error 内部服务错误,比如脚本错误,编程语言语法错误。
502:
Bad Gateway错误,网关错误。比如服务器当前连接太多,响应太慢,页面素材太多、带宽慢。
503:
Service Temporarily Unavailable,服务不可用,web服务器不能处理HTTP请求,可能是临时超载或者是服务器进行停机维护。
504:
Gateway timeout 网关超时,程序执行时间过长导致响应超时,例如程序需要执行20秒,而nginx最大响应等待时间为10秒,这样就会出现超时。
17.可以限流、限速、限制ip、限制访问文件