Nginx实现高可用一

一、什么是nginx?

nginx是一款高性能的http服务器/反向代理服务器

二、反向代理服务器有哪几种?

ngin、lvs、F5(硬件)、haproxy

三、nginx应用场景

1、http服务器:nginx服务器是一个http服务器可以独立提供服务,可以用作网页静态服务器

2、虚拟主机:可以实现一台服务器虚拟出多个网站

3、反向代理:负载均衡,当网站访问量达到一定程度,单台服务器不能满足用户需求时,需要多台服务器集群使用nginx做反向代理,多台服务器平均分摊负载,减轻服务器压力。反向代理(不暴露真实服务器ip地址)

nginx的优点:性能好、占内存小、轻量级服务器、同一时刻能抗住5w并发量

nginx配置文件


#user  nobody;
worker_processes  1;     #工作进程数,一般设置成cpu核心数

#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;   #最大连接数,一般设置成cpu*2048
}


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 on;
    gzip_min_length  1k;
    gzip_buffers     4 32k;
    gzip_http_version 1.1;
    gzip_comp_level 2;
    gzip_types       text/plain application/x-javascript text/css application/xml;
    gzip_vary on;
    gzip_disable "MSIE [1-6].";

    server_names_hash_bucket_size 128;    #当配置多个server节点时,默认server names的缓存区大小就不够用,需要啥手动设置大一点
    client_max_body_size     100m; 
    client_header_buffer_size 256k;
    large_client_header_buffers 4 256k;

    proxy_set_header Host $host:$server_port;
    proxy_set_header X-real-ip $remote_addr;
    #proxy_set_header X-Forwarded-Proto $scheme;
    proxy_set_header X-Forwarded-Host $host;
    proxy_set_header X-Forwarded-Server $host;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

	#使用upstream 开启负载均衡
	#upstream backserver { 
     #server 127.0.0.1:8080; 
     #server 127.0.0.1:8081; 
	 #server 127.0.0.1:8082 down;     #down表示当前server暂不参与负载均衡
     #server 127.0.0.1:8083 backup;   #其它所有非backup机器down或者忙的时候,请求backup,所以这台机器压力最小
	 #server 127.0.0.1:8083 weight;   #weight表示权重,weight越大,权重越大
    #} 

	#server 理解为一个站点
    #server {
        #listen       80;             #站点监听端口
        #server_name  www.yang.com;   #站点访问域名
        #location / {                 #用来匹配同一域名下多个url的访问规则
		    #proxy_pass  http://backserver;
			#index  index.html index.htm;
        #}
    #}
	
	
    server {
        listen       80;
        server_name  8081.www.yang.com;

        location / {
            proxy_pass http://127.0.0.1:8081;
        }
      
    }
	
	server {
        listen       8088;
        server_name  www.yang.com;

        location / {
            proxy_pass http://127.0.0.1:8081;
        }
      
    }

    # HTTPS server
    #
    #server {
    #    listen       1443 ssl;
    #    server_name  www.gacfcavlearning.com;
#
    #    ssl_certificate      1_www.gacfcavlearning.com_bundle.crt;
    #    ssl_certificate_key  2_www.gacfcavlearning.com.key;
#
    #    ssl_session_cache    shared:SSL:1m;
    #    ssl_session_timeout  5m;
#
    #    ssl_ciphers  HIGH:!aNULL:!MD5;
    #    ssl_prefer_server_ciphers  on;
#
    #    location / {
    #        proxy_pass http://127.0.0.1:8080;
    #    }
    #    location /wechat/ {
    #        proxy_pass http://127.0.0.1:8081;
    #    }
    #    location /new/ {
    #        proxy_pass http://127.0.0.1:8081;
    #    }
    #    
#
    #}
    include servers/*;
}

四、nginx的算法

轮训机制、权重、ip绑定ip_hash、fair(第三方)、url_fair(第三方)

五、nginx实现反向代理

 server {
        listen       80;
        server_name  8081.www.yang.com;     //域名

        location / {
            proxy_pass http://127.0.0.1:8081;   //真实访问路径
        }
      
    }

1、hosts文件配置域名(C盘-windows-system32-drivers-etc-hosts)

2、nginx.conf

访问路径失败

访问成功

六、nginx实现负载均衡

负载均衡:建立在网络结构之上、它提供了一种廉价有效透明的方法,扩展网络设备和服务器的宽带、增加吞吐量、加强网络数据处理能力、提高网络的灵活性和可用性、

1、轮询机制

每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除

upstream backserver { 
    server 192.168.0.14; 
    server 192.168.0.15; 
} 

2、指定权重

指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的情况

upstream backserver { 
    server 192.168.0.14 weight=10; 
    server 192.168.0.15 weight=10; 
}

3、ip绑定ip_hash

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

upstream backserver { 
    ip_hash; 
    server 192.168.0.14:88; 
    server 192.168.0.15:80; 
} 

4、fair(第三方)

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

upstream backserver { 
    server server1; 
    server server2; 
    fair; 
} 

5、url_hash(第三方)

按访问url的hash结果来分配请求,使每个url定向到同一个后端服务器,后端服务器为缓存时比较有效

upstream backserver { 
    server squid1:3128; 
    server squid2:3128; 
    hash $request_uri; 
    hash_method crc32; 
} 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值