初识nginx

初识nginx

1.负载均衡

1.轮询

轮询是比较简单的使用方式, 即按照顺序将请求依次分发给不同的服务器.

http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    
    # 服务器列表
    upstream server_list {
        server 10.0.0.1:8080;
        server 10.0.0.2:8080;
        server 10.0.0.3:8080;
    }

    server {
        listen       80;
        server_name  www.pilot123456.com;

        location / {
            // 代理
         	proxy_pass http://server_list;
            root   html;
            index  index.html index.htm;
        }
		
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }
}

2.加权轮询

根据不同服务器的性能状态分配不同的权重, 使得性能较好的服务器能够处理更多的请求.

http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    
    # 服务器列表
    upstream server_list {
        # 给每一个服务器配置相应的权重
        server 10.0.0.1:8080 weight=2;
        server 10.0.0.2:8080 weight=3;
        server 10.0.0.3:8080 weight=5;
    }

    server {
        listen       80;
        server_name  www.pilot123456.com;

        location / {
            // 代理
         	proxy_pass http://server_list;
            root   html;
            index  index.html index.htm;
        }
		
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }
}

3.ip_hash

前两种方式, 如果用户登录信息仅通过服务器保存, 而没有采用其他方式(如redis存储, jwttoken等), 那么用户在一台服务器上登录后, 之后访问另一台服务器, 可能会出现登录信息丢失的情况, ip_hash可以将同一个ip的请求发送到同一台机器, 但是对于移动端设备, 效果不太好, 一般不推荐适用.

http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    
    # 服务器列表
    upstream server_list {
        # 将同一ip请求发送到同一服务器
        ip_hash;
        # 给每一个服务器配置相应的权重
        server 10.0.0.1:8080 weight=2;
        server 10.0.0.2:8080 weight=3;
        server 10.0.0.3:8080 weight=5;
    }

    server {
        listen       80;
        server_name  www.pilot123456.com;

        location / {
            // 代理
         	proxy_pass http://server_list;
            root   html;
            index  index.html index.htm;
        }
		
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }
}

4.least_conn

将请求发送给连接数较少的服务器, 但是在一些服务器连接数处理的任务本身比较耗时的时候, 会给服务器带来更大压力, 因此比较适用于请求需要处理的时间差不多的情况

http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    
    # 服务器列表
    upstream server_list {
        # 将请求发送给连接数较少的服务器
        lease_conn;
        # 给每一个服务器配置相应的权重
        server 10.0.0.1:8080;
        server 10.0.0.2:8080;
        server 10.0.0.3:8080;
    }

    server {
        listen       80;
        server_name  www.pilot123456.com;

        location / {
            // 代理
         	proxy_pass http://server_list;
            root   html;
            index  index.html index.htm;
        }
		
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }
}

2.URLRewrite

rewrite 语法格式及参数说明, 将匹配regex的内容替换为replacement
rewrite ;
regex 正则表达式
replacement 替换内容
flag 标记
last 本条规则匹配完成后, 继续向下匹配新的规则
break 本条规则匹配完成后, 不再匹配后面的规则
redirect 302临时重定向, 浏览器地址跳转到新的url
permanent 301永久重定向, 浏览器地址跳转到新的url

1.商品页变化

# www.xx.com/id=333 ==> www.xx.com/333.html
rewrite ^/id=(\d+)$ /$1.html permanent;

2.http请求变https

rewrite ^(.*)$ https://$hsot$1 permanent;

3.旧域名变新域名

rewrite ^/(.*) http://www.new.com/$1 permanent;

3.动静分离

一般静态资源是指html, js, css, img等文件, 动态资源指的是web后台资源, 而动静分离指的是将静态资源的请求只走nginx, 不再需要从后台服务器加载, 而后台服务器只处理动态数据请求.

http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    
    # 服务器列表
    upstream server_list {
        # 将请求发送给连接数较少的服务器
        lease_conn;
        # 给每一个服务器配置相应的权重
        server 10.0.0.1:8080;
        server 10.0.0.2:8080;
        server 10.0.0.3:8080;
    }

    server {
        listen       80;
        server_name  www.pilot123456.com;

        #拦截后台请求
      	location / {
        	proxy_pass http://localhost:81;
        	proxy_set_header X-Real-IP $remote_addr;
      	}

      	#静态资源
      	location ~ .*\.(html|htm|gif|jpg|jpeg|bmp|png|ico|js|css)$ {
        	# 将静态资源放置到nginx的html目录下即可
            root html;
            # 将资源缓存到用户浏览器上
        	expires  10d;  
       	}
		
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值