nginx负载均衡与动静分离配置

ngxin可以作为静态资源服务器,反向代理服务器,还可以虚拟主机。

nginx配置文件  /nginx/server/conf/nginx.conf

 1 #user nobody;   #代表当前配置文件的权限 通常设置为root
 2 
 3 server {
 4   listen 80;      #代表监听的端口
 5   server_name localhost;
 6 
 7   #charset koi8-r;
 8 
 9   #access_log logs/host.access.log main;
10 
11   location / {    #匹配规则   一个sever下面可以有多个location
12     root html;   #root 表示根目录 /nginx/server
13     index index.html index.htm;
14   }  
15 
16   #error_page 404 /404.html;
17 
18   # redirect server error pages to the static page /50x.html
19   #
20   error_page 500 502 503 504 /50x.html;
21   location = /50x.html {
22     root html;
23   }
24 
25   # proxy the PHP scripts to Apache listening on 127.0.0.1:80
26   #
27   #location ~ \.php$ {
28     # proxy_pass http://127.0.0.1;
29   #}
30 
31   # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
32   #
33   #location ~ \.php$ {
34     # root html;
35     # fastcgi_pass 127.0.0.1:9000;
36     # fastcgi_index index.php;
37     # fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
38     # include fastcgi_params;
39   #}
40 
41   # deny access to .htaccess files, if Apache's document root
42   # concurs with nginx's one
43   #
44   #location ~ /\.ht {
45     # deny all;
46   #}
47 }

 

proxy_pass 与 upstream 配合使用实现反向代理和负载均衡

upstream fdfs.com {   # upstream 模块实现负载均衡,在server模块上面配置upstream,默认轮询
   server 10.130.1.101:80 weight=1;

        server 10.130.1.102:80 weight=2;

   server 10.130.1.103:80 weight=3;
       client_max_body_size 20m;  #接收的最大传输大小

}

location /group {
  proxy_pass http://fdfs.com;
}

upstream mywebs {
  ip_hash;
  server 192.168.10.61 weight=5 max_fails=3 fail_timeout=10s; 
  server 192.168.10.62 weight=5 max_fails=3 fail_timeout=10s;
}

location / {
  proxy_pass http://mywebs;
  proxy_redirect default;
}

upstream模块的负载均衡算法主要有三种,轮调(round-robin)、ip哈希(ip_hash)和 最少连接(least_conn)三种。

ip_hash:基于客户端IP地址完成请求的分发,它可以保证来自于同一个客户端的请求始终被转发至同一个upstream服务器;ip哈希可以解决session登录的问题。
round-robin : 基于 权重的轮询。不需要明确注明,在各个节点中设置 权重 weight 即可。
least_conn: 最少连接调度算法;

定义一个upstream服务器的地址,还可包括一系列可选参数,
weight:权重(主要用于 轮询调度。)

max_fails:max_fails默认为1。只要某个server只要失败过一次,就会计数, 当有请求到来时,检查它的失败次数,如果达到一次,就在10s内先不要发送请求给它。

fail_timeout:fail_timeout默认为10s

 

静态资源配置,实现动静分离:

#如配置如下location

#表示url为  /static/*.xxx 的图片或者js等静态资源则会到/html/static目录下去寻找资源
location /static/~(.*)(\.jpg|\.png|\.gif|\.jepg|\.css|\.js|\.css){
  alias html;
}

#或者如下配置 访问以下后缀的静态文件会到nginx目录中static目录寻找
location ~ .*\.(htm|html|gif|jpg|jpeg|png|bmp|swf|ioc|rar|zip|txt|flv|mid|doc|ppt|pdf|xls|mp3|wma)${
  root static;
  expires 30d;  #过期时间30天

}
posted @ 2020-03-05 23:30  有梦想的人不睡觉s  阅读(256)  评论(0编辑  收藏  举报