nginx配置说明

一、配置信息

#Nginx负载均衡常用模式 https://my.oschina.net/u/3385288/blog/4635842

worker_processes  4;#==工作进程数,一般设置为cpu核心数
events {       
    worker_connections  1024; #==最大连接数,一般设置为cpu*2048
}
http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;   
    keepalive_timeout  65; #==客户端链接超时时间
    upstream  host {
       server 192.168.168.125:9001;
       server 127.0.0.1:9002;
       server 127.0.0.1:9003;
    }  
    upstream  iphost {
       ip_hash;
       server 127.0.0.1:9001;
       server 127.0.0.1:9002;
       server 127.0.0.1:9003;
    } 
    upstream host1 {
       server 127.0.0.1:9001;
    }
    upstream host2 {
       server 127.0.0.1:9002;
    }  
    upstream host3 {
       server 127.0.0.1:9003;
    }
    map $COOKIE_version $group {
       ~*v1$ host1;
       ~*v2$ host2;
       ~*v3$ host3; 
    }
    server {      
        listen 100;   #站点监听端口        
        server_name  www.nginxtest.com; #服务启动后直接站点访问域名       
        charset utf-8;  #编码格式,避免url参数乱码 
        location ^~ /service/uploadserver/ {
            proxy_pass http://www.xx.com/service/uploadserver/; 
            proxy_set_header X-Forwarded-Host   $host;
            proxy_set_header X-Real-IP          $remote_addr;
            proxy_set_header X-Forwarded-Server $host;
            proxy_set_header X-Forwarded-For    $proxy_add_x_forwarded_for;
        }
        location / {  
            proxy_pass  http://host1;  #映射到1个站点 
        }
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        } 
    }
    server {      
        listen 99;   #站点监听端口        
        server_name  www.nginxtest.com; #服务启动后直接站点访问域名       
        charset utf-8;  #编码格式,避免url参数乱码
        location / {  
            proxy_pass  http://host;  #轮询映射到多个站点 
        }
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        } 
    }
    server {      
        listen 98;   #站点监听端口  
        server_name  www.nginxtest.com; #服务启动后直接站点访问域名       
        charset utf-8;  #编码格式,避免url参数乱码
        location / {      
            set $ckHost http://$group;
            if ($COOKIE_version = "")
            {
                set $ckHost http://127.0.0.1:9004/index.html; #如果没有cookie,跳转到cookie设置页面设置
            }
            proxy_pass $ckHost; #根据COOKIE中version的值做对应的站点映射(在127.0.0.1:9004这个站点页面中设置cookie) 
        }
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        } 
    }
    server {      
        listen 97;   #站点监听端口        
        server_name  www.nginxtest.com; #服务启动后直接站点访问域名       
        charset utf-8;  #编码格式,避免url参数乱码
        location / {   
            proxy_pass  http://iphost;  #根据ip负载
        }
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        } 
    }   
}
View Code

 

二、常用命令

1、检查配置文件是否配置成功,在启动服务之前执行;


nginx -t


2、启动运行nginx服务;


start nginx

3、等任务完成之后,关闭Nginx服务;


nginx -s quit


 4、强制关闭Nginx服务;


nginx -s stop


5、重启Nginx服务,一般是修改了配置文件之后,使修改生效;


nginx -s reload 
View Code

 

三、cookie设置页面

<!DOCTYPE html>
<html>

<head>
    <title>Server4</title>
</head>

<body>
    <h1>Welcome to Server4!</h1>
    <script>
        //获取两个指定数值之间随机整数。
        function getRandomInt(min, max) {
            return Math.floor(Math.random() * (max - min)) + min;
        }

        //设置cookie
        function setCookie(name, value, expDays) {
            var exp = new Date();
            exp.setTime(exp.getTime() + expDays * 24 * 60 * 60 * 1000);
            document.cookie = name + "=" + escape(value) + ";expires=" + exp.toGMTString();
        }

        //获取cookie
        function getCookie(name) {
            var arr, reg = new RegExp("(^| )" + name + "=([^;]*)(;|$)");
            if (arr = document.cookie.match(reg)) {
                return unescape(arr[2]);
            } else {
                return null;
            }
        }
        window.onload = function () {
            debugger
            //设置cookie信息
            var ckName = "version"
            if (getCookie(ckName) == null) {
                var rd = getRandomInt(1, 4);//生成1、2、3其一的随机数
                setCookie("version", "v" + rd, 365)
            }
            window.location.reload();
        }
    </script>
</body>

</html>
View Code

 

四、其他页面

<!DOCTYPE html>
<html>
<head>
<title>Server3</title> 
</head>
<body>
<h1>Welcome to Server3!</h1> 
</body>
</html>
View Code

 

posted @ 2020-07-16 11:58  兴趣就是天赋  阅读(102)  评论(0编辑  收藏  举报