Nginx

一、Nginx介绍

1.为啥学Nginx?

传统模式:服务器搭建集群,存在的问题

1.请求发给谁?
2.如果请求都给了服务器1呢?
3.动态和静态资源都发给服务器

Nginx_第1张图片
搭建集群后使用Nginx做反向代理服务器,解决了上面的问题
Nginx_第2张图片
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.正向代理
Nginx_第3张图片

Nginx_第4张图片
2.反向代理
Nginx_第5张图片
Nginx_第6张图片
Nginx_第7张图片
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_第8张图片

Nginx通过动静分离提升并发能力

Nginx_第9张图片
Nginx_第10张图片
Nginx_第11张图片
Nginx_第12张图片

四、nginx集群

Nginx_第13张图片
解决单点故障

你可能感兴趣的:(Nginx)