Nginx学习

2021-05-13  本文已影响0人  背着耿鬼的蒜头

nginx

正向代理:用户通过代理服务器直接访问Internet,叫做正向代理。

反向代理:用户将请求发送给代理服务器,代理服务器根据请求将请求转发到Internet中,得到请求后再返回给用户。

负载均衡:通过反向代理服务器将请求分发到多个服务器中。

动静分离:前后端分离。

nginx常用命令

#查看nginx版本号
nginx -v
#关闭nginx
nginx -s stop
#启动nginx
nginx
#重新加载nginx
nginx -s reload

nginx配置文件

nginx配置文件由三部分组成

第一部分:全局块

从配置文件开始到events块之间的内容,主要会设置一些影响nginx服务器整体运行配置指令

#此值越大,nginx处理并发的能力越强(会受到硬件的限制)
work_processes 1;

第二部分:events块

影响nginx服务器与用户网络的连接

#支持的最大连接数
worker_connections 1024;

第三部分:http块(包括server块和全局块)

包括文件引入、MIME-TYPE定义、日志自定义、连接超时时间、单链接请求数上限等

server块

#监听端口
listen 80
#请求跳转
location / {
  root html;
  index.html index.htm;
}

nginx配置反向代理

server {
  listen 80;
  server_name 127.0.0.1;
  
  location / {
    root html;
    #配置反向代理的位置
    proxy_pass http://127.0.0.1:8080;
    index index.html index.htm;
  }
}
server {
  listen 80;
  server_name 127.0.0.1;
  
  
  location ~ /login/ {
    #配置反向代理的位置
    proxy_pass http://127.0.0.1:8080;
  }
  
  location ~ /regist/ {
    #配置反向代理的位置
    proxy_pass http://127.0.0.1:8081;
  }
}

nginx 配置负载均衡

upstream myserver{
  server [ip]:[port];
  server [ip]:[port];
}

server {
  listen 80;
  server_name 127.0.0.1;
  
  location / {
    root html;
    #配置反向代理的位置
    proxy_pass http://myserver;
    index index.html index.htm;
  }
}

负载均衡策略

1、轮询(默认)

按时间顺序逐一分配到不同的后端服务器,后端服务器down调,能自动剔除

2、权重

weight,权重越高,分配越多

upstream myserver{
  server [ip]:[port] weight=5;
  server [ip]:[port] weight=10;
}

server {
  listen 80;
  server_name 127.0.0.1;
  
  location / {
    root html;
    #配置反向代理的位置
    proxy_pass http://myserver;
    index index.html index.htm;
  }
}

3、ip_hash

每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session的问题

upstream myserver{
  ip_hash;
  server [ip]:[port];
  server [ip]:[port];
}

server {
  listen 80;
  server_name 127.0.0.1;
  
  location / {
    root html;
    #配置反向代理的位置
    proxy_pass http://myserver;
    index index.html index.htm;
  }
}

4、fair(第三方)

按后端服务器的响应时间来分配,响应时间越短就优先分配

upstream myserver{
  server [ip]:[port];
  server [ip]:[port];
  fair;
}

server {
  listen 80;
  server_name 127.0.0.1;
  
  location / {
    root html;
    #配置反向代理的位置
    proxy_pass http://myserver;
    index index.html index.htm;
  }
}
上一篇下一篇

猜你喜欢

热点阅读