1、负载均衡的概念:
web项目开发完成后需要部署在服务器上(tomcat、jetty等),当高并发访问时,服务器会很卡,负载均衡就是添加了好几台服务器来分担这些访问从而减少服务器压力的。
2、负载均衡器的分类
有软件(nginx是绝对的主流)和硬件
3、Nginx的简单介绍和两种主要功能
nginx:反向代理服务器,专门做均衡负载和静态代理的一款开源的c语言写的web服务器,轻量级,能很好的对大量数据进行存储。
负载均衡:nginx本质也是一种服务器,可以看成是其他服务器的一个总代理,请求过来时会根据配置来动态分配请求访问的服务器。
静态代理:tomcat处理大量的图片数据会非常慢,于是用nginx来进行代理,进行动静分离,这样tomcat直接调用nginx上的数据图片就可以了
配置文件简介(conf文件夹下面的nginx.conf文件)
#user nobody;
worker_processes 1;#进程数
#error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info;
#pid logs/nginx.pid;
events {
worker_connections 1024;#最大连接数
}
http {
include 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 logs/access.log main;#访问日志
sendfile on;
#tcp_nopush on;
#keepalive_timeout 0;
keepalive_timeout 65;#连接超时时间
#gzip on; #开启gzip压缩,输出时对文件进行压缩
#一个server就是一个虚拟主机,可以同时配置多个虚拟主机,用域名来区分
server {
listen 80;
server_name localhost;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
root html;
index index.html index.htm;
}
#error_page 404 /404.html;
# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
}
负载均衡和静态代理配置:
#user nobody;
worker_processes 1;
#error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info;
#pid logs/nginx.pid;
events {
worker_connections 1024;
}
http {
#include vhost/*.conf;#导入其他配置文件
include 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 logs/access.log main;
sendfile on;
#tcp_nopush on;
#keepalive_timeout 0;
keepalive_timeout 65;
#gzip on;
#负载均衡配置
upstream localhost{
server localhost:8888 weight=1;#优先级
server localhost:8889 weight=1;
}
server {
listen 80;
server_name www.xudongjie.com;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
#root html;
# index index.html index.htm;
proxy_set_header Host $host; # required for docker client's sake
proxy_set_header X-Real-IP $remote_addr; # 获取用户的真实IP地址
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://localhost;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
server {
listen 80;
server_name image.xudongjie.com;
root E:/nginx/statictext/;
charset utf-8;
#access_log logs/host.access.log main;
location / {
root E:/nginx/statictext/;
index index.html; #可以指定文件名称 index index.html;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
}