一、Nginx介绍
1.为啥学Nginx?
传统模式:服务器搭建集群,存在的问题
1.请求发给谁?
2.如果请求都给了服务器1呢?
3.动态和静态资源都发给服务器
搭建集群后使用Nginx做反向代理服务器,解决了上面的问题
2.Nginx介绍
Nginx特点:
1.稳定性强,7*24小时不间断运行
2.丰富的配置实例
3.占内存小,并发强
3.Nginx核心配置文件
worker_processes 1;
error_log /var/log/nginx/error.log warn;
pid /var/run/nginx.pid;
#以上为全局块
#worker_processes数值越大,并发能力越强
#error_log 错误日志存放位置
events {
worker_connections 1024;
}
#worker_connections 数值越大并发越强
http {
include /etc/nginx/mime.types;
default_type application/octet-stream;
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log /var/log/nginx/access.log main;
sendfile on;
#tcp_nopush on;
keepalive_timeout 65;
#gzip on;
server {
listen 80;
listen [::]:80;
server_name localhost;
location / {
root /usr/share/nginx/html;
index index.html index.htm;
}
#location 块
#root:将接收到的请求根据/usr/share/nginx/html查找静态资源
#index:默认去上述路径找到index.html
}
#server块
#listen代表Nginx监听的端口号
#localhost:Nginx接收请求的ip
}
#include代表引入一个外部文件
#/mime.types存放大量媒体类型
#include /etc/nginx/conf.d/*.conf;引用了conf.d目录下以.conf为结尾的配置文件
二、正向代理,反向代理,负载均衡
1.正向代理
2.反向代理
3Nginx的location路径映射
1.=匹配(精准匹配)
location = /{
#主机名后面不能加任何内容
}
2.通用匹配
location /xxx{
#匹配所有以/xxx开头的路径
}
3.正则匹配
location ~ /xxx{
#匹配所有以/xxx开头的路径
}
3.匹配开头
location ^~ /xxx{
#匹配所有以/xxx开头的路径
}
5. ~* \.(gif|jpg|png)${
#以gif,jpg,png为结尾的路径
}
4.负载均衡
Nginx提供了三种策略
1.轮询:将请求平均分配
2.权重:根据权重分配,服务器处理速度不一致时
3.ip_hash:根据发起请求ip不同,始终将请求发到指定服务器
轮询
upstream my-server{
server 101.200.75.206:9091;
server 101.200.75.206:9090;
}
server{
listen 80;
server_name localhost;
location / {
proxy_pass http://my-server/;
}
}
权重
upstream my-server{
server 101.200.75.206:9091 weight=10;
server 101.200.75.206:9090 weight=2;
}
server{
listen 80;
server_name localhost;
location / {
proxy_pass http://my-server/;
}
}
ip_hash
upstream my-server{
ip_hash
}
server{
listen 80;
server_name localhost;
location / {
proxy_pass http://my-server/;
}
}
三、动静分离
Nginx通过动静分离提升并发能力
四、nginx集群
解决单点故障