美文网首页SuperMap
nginx负载iserver配置(windows)

nginx负载iserver配置(windows)

作者: alanwhy | 来源:发表于2018-12-14 09:38 被阅读2次

一、官网下载nginx for windows包

下载链接:nginx官网
解压后如图

nginx.png

二、三种配置方式

1、域名访问方式(示例:1个nignx拖3个iserver,三个域名请求)

(1)配置文件路径:./nginx/conf/nginx.conf
(2)默认配置文件


#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服务器,利用它的反向代理功能提供负载均衡支持
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;

    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;
        }

        # proxy the PHP scripts to Apache listening on 127.0.0.1:80
        #
        #location ~ \.php$ {
        #    proxy_pass   http://127.0.0.1;
        #}

        # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
        #
        #location ~ \.php$ {
        #    root           html;
        #    fastcgi_pass   127.0.0.1:9000;
        #    fastcgi_index  index.php;
        #    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
        #    include        fastcgi_params;
        #}

        # deny access to .htaccess files, if Apache's document root
        # concurs with nginx's one
        #
        #location ~ /\.ht {
        #    deny  all;
        #}
    }


    # another virtual host using mix of IP-, name-, and port-based configuration
    #
    #server {
    #    listen       8000;
    #    listen       somename:8080;
    #    server_name  somename  alias  another.alias;

    #    location / {
    #        root   html;
    #        index  index.html index.htm;
    #    }
    #}


    # HTTPS server
    #
    #server {
    #    listen       443 ssl;
    #    server_name  localhost;

    #    ssl_certificate      cert.pem;
    #    ssl_certificate_key  cert.key;

    #    ssl_session_cache    shared:SSL:1m;
    #    ssl_session_timeout  5m;

    #    ssl_ciphers  HIGH:!aNULL:!MD5;
    #    ssl_prefer_server_ciphers  on;

    #    location / {
    #        root   html;
    #        index  index.html index.htm;
    #    }
    #}

}

(3)可直接在nginx目录输入

start nginx

启动nginx,浏览器输入http://localhost,即可看到如下界面即启动成功

成功.png
输入
nginx -s quit

退出nginx
(4)修改配置问题如下

#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;

    upstream webservers1 {
      server 192.168.46.228:8090 weight=1;
      server 192.168.46.228:8091 weight=1;
      server 192.168.46.228:8092 weight=1;
    }

    server {
        listen       8888;
        server_name  192.168.46.228;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        #location / {
            #root   html;
            #index  index.html index.htm;
            proxy_pass   http://webservers1;
            proxy_set_header   Host             $http_host;
        #}

        #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;
        }

        # proxy the PHP scripts to Apache listening on 127.0.0.1:80
        #
        #location ~ \.php$ {
        #    proxy_pass   http://127.0.0.1;
        #}

        # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
        #
        #location ~ \.php$ {
        #    root           html;
        #    fastcgi_pass   127.0.0.1:9000;
        #    fastcgi_index  index.php;
        #    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
        #    include        fastcgi_params;
        #}

        # deny access to .htaccess files, if Apache's document root
        # concurs with nginx's one
        #
        #location ~ /\.ht {
        #    deny  all;
        #}
    }

    server {
        listen       8887;
        server_name  192.168.46.228;
        location / {
            proxy_pass   http://webservers1;
            proxy_set_header   Host             $http_host;
        }
    }

    server {
        listen       8886;
        server_name  192.168.46.228;
        location / {
            proxy_pass   http://webservers1;
            proxy_set_header   Host             $http_host;
        }
    }


    # another virtual host using mix of IP-, name-, and port-based configuration
    #
    #server {
    #    listen       8000;
    #    listen       somename:8080;
    #    server_name  somename  alias  another.alias;

    #    location / {
    #        root   html;
    #        index  index.html index.htm;
    #    }
    #}


    # HTTPS server
    #
    #server {
    #    listen       443 ssl;
    #    server_name  localhost;

    #    ssl_certificate      cert.pem;
    #    ssl_certificate_key  cert.key;

    #    ssl_session_cache    shared:SSL:1m;
    #    ssl_session_timeout  5m;

    #    ssl_ciphers  HIGH:!aNULL:!MD5;
    #    ssl_prefer_server_ciphers  on;

    #    location / {
    #        root   html;
    #        index  index.html index.htm;
    #    }
    #}

}

说明:

  • 加入1个upstream站点进行负载,定义负载均衡设备的Ip及设备状态
  • 将3个server中配置proxy_pass代理,格式为:http:// + upstream名称
  • weight为权重,即优先运行,数值越大,权重越高
  • 每一个请求按访问ip的hash结果分配。这样每一个访客固定访客一个后端服务器,能够解决session的问题

(5)可以修改文件路径C:\Windows\System32\drivers\etc下的hosts文件,进行域名代理测试,示例修改如下

127.0.0.1 localhost
192.168.46.228 www.baidu1.com 
192.168.46.228 www.baidu2.com 
192.168.46.228 www.baidu3.com 

(6)通过浏览器访问地址:
www.baidu1.com:8888/iserver
www.baidu1.com:8887/iserver
www.baidu1.com:8886/iserver 等等
均可访问到iserver界面

2、多服务负载(示例:3个nignx拖3个iserver)

配置如下:

#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;

    upstream webservers1 {
      server 192.168.46.228:8090 weight=2;
      server 192.168.46.228:8091 weight=1;
      server 192.168.46.228:8092 weight=1;
    }

    upstream webservers2 {
      server 192.168.46.228:8090 weight=1;
      server 192.168.46.228:8091 weight=2;
      server 192.168.46.228:8092 weight=1;
    }

    upstream webservers3 {
      server 192.168.46.228:8090 weight=1;
      server 192.168.46.228:8091 weight=1;
      server 192.168.46.228:8092 weight=2;
    }

    server {
        listen       8888;
        server_name  192.168.46.228;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location / {
            #root   html;
            #index  index.html index.htm;
            proxy_pass   http://webservers1;
            proxy_set_header   Host             $http_host;
        }

        #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;
        #}

        # proxy the PHP scripts to Apache listening on 127.0.0.1:80
        #
        #location ~ \.php$ {
        #    proxy_pass   http://127.0.0.1;
        #}

        # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
        #
        #location ~ \.php$ {
        #    root           html;
        #    fastcgi_pass   127.0.0.1:9000;
        #    fastcgi_index  index.php;
        #    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
        #    include        fastcgi_params;
        #}

        # deny access to .htaccess files, if Apache's document root
        # concurs with nginx's one
        #
        #location ~ /\.ht {
        #    deny  all;
        #}
    }

    server {
        listen       8887;
        server_name  192.168.46.228;
        location / {
            proxy_pass   http://webservers2;
            proxy_set_header   Host             $http_host;
        }
    }

    server {
        listen       8886;
        server_name  192.168.46.228;
        location / {
            proxy_pass   http://webservers3;
            proxy_set_header   Host             $http_host;
        }
    }

    # another virtual host using mix of IP-, name-, and port-based configuration
    #
    #server {
    #    listen       8000;
    #    listen       somename:8080;
    #    server_name  somename  alias  another.alias;

    #    location / {
    #        root   html;
    #        index  index.html index.htm;
    #    }
    #}


    # HTTPS server
    #
    #server {
    #    listen       443 ssl;
    #    server_name  localhost;

    #    ssl_certificate      cert.pem;
    #    ssl_certificate_key  cert.key;

    #    ssl_session_cache    shared:SSL:1m;
    #    ssl_session_timeout  5m;

    #    ssl_ciphers  HIGH:!aNULL:!MD5;
    #    ssl_prefer_server_ciphers  on;

    #    location / {
    #        root   html;
    #        index  index.html index.htm;
    #    }
    #}

}

3、单服务负载(示例:1个nignx拖3个iserver)

配置如下

#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;

    upstream webservers1 {
      server 192.168.46.228:8090 weight=1;
      server 192.168.46.228:8091 weight=1;
      server 192.168.46.228:8092 weight=1;
    }

    server {
        listen       8888;
        server_name  192.168.46.228;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location / {
            #root   html;
            #index  index.html index.htm;
            proxy_pass   http://webservers1;
            proxy_set_header   Host             $http_host;
        }

        #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;
        #}

        # proxy the PHP scripts to Apache listening on 127.0.0.1:80
        #
        #location ~ \.php$ {
        #    proxy_pass   http://127.0.0.1;
        #}

        # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
        #
        #location ~ \.php$ {
        #    root           html;
        #    fastcgi_pass   127.0.0.1:9000;
        #    fastcgi_index  index.php;
        #    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
        #    include        fastcgi_params;
        #}

        # deny access to .htaccess files, if Apache's document root
        # concurs with nginx's one
        #
        #location ~ /\.ht {
        #    deny  all;
        #}
    }

    # another virtual host using mix of IP-, name-, and port-based configuration
    #
    #server {
    #    listen       8000;
    #    listen       somename:8080;
    #    server_name  somename  alias  another.alias;

    #    location / {
    #        root   html;
    #        index  index.html index.htm;
    #    }
    #}


    # HTTPS server
    #
    #server {
    #    listen       443 ssl;
    #    server_name  localhost;

    #    ssl_certificate      cert.pem;
    #    ssl_certificate_key  cert.key;

    #    ssl_session_cache    shared:SSL:1m;
    #    ssl_session_timeout  5m;

    #    ssl_ciphers  HIGH:!aNULL:!MD5;
    #    ssl_prefer_server_ciphers  on;

    #    location / {
    #        root   html;
    #        index  index.html index.htm;
    #    }
    #}

}

具体的nginx的参数配置可参考 Nginx反向代理以及负载均衡配置

相关文章

  • nginx负载iserver配置(windows)

    一、官网下载nginx for windows包 下载链接:nginx官网解压后如图 二、三种配置方式 1、域名访...

  • Nginx负载均衡小知识

    Nginx 负载均衡配置Nginx 重试次数限制Nginx 超时重试 Nginx 负载均衡 负载均衡策略 roun...

  • nginx

    nginx的配置、虚拟主机、负载均衡和反向代理一nginx的配置、虚拟主机、负载均衡和反向代理二nginx的配置、...

  • Nginx负载均衡配置

    基于轮询(Round Robin)的负载均衡配置 Nginx的负载均衡策略默认就是轮询。 Nginx负载均衡策略支...

  • NGINX负载均衡健康检查WINDOWS SERVER的问题

    NGINX负载均衡健康检查WINDOWS SERVER的问题 @(nginx笔记)[nginx] 事件症状:ngi...

  • nginx学习目录

    nginx安装部署和配置管理 nginx日志配置 nginx平滑升级与回滚 nginx反向代理 nginx负载均衡...

  • zookeeper服务注册中心&负载均衡

    Nginx VS 软负载均衡 nginx作为作为传统的负载均衡器,通过简单的配置即可完成负载均衡器的配置,单台ng...

  • Nginx负载均衡、ssl原理、生成ssl密钥对、Nginx配置

    目录 一、Nginx负载均衡二、ssl原理三、生成ssl密钥对四、Nginx配置ssl 一、Nginx负载均衡 如...

  • Nginx之负载均衡

    一 负载均衡准备 准备三台虚拟机或服务器 二 配置主服务器的Nginx配置文件 nginx 配置文件 三 配置负载...

  • 玩转nginx

    本文内容包括: nginx配置实例之反向代理; nginx配置实例之动静分离; nginx配置实例之负载均衡; n...

网友评论

    本文标题:nginx负载iserver配置(windows)

    本文链接:https://www.haomeiwen.com/subject/cuibhqtx.html