码迷,mamicode.com
首页 > 其他好文 > 详细

nginx tomcat 集群与负载均衡配置实例

时间:2015-05-18 09:11:25      阅读:206      评论:0      收藏:0      [点我收藏+]

标签:

一、nginx tomcat 中用到的概念介绍

1、反向代理,当客户端的请求到来之后,反向代理接收这个请求然后将这个请求转发到后台的服务器上,如果做负载均衡的话,就会将这个请求分发到负载均衡的那些服务器上去。

正向代理端代理的是客户端

反向代理代理的是服务端。请求这个反向代理服务器,就好比是直接请求资源所在的服务端。

2、这里说到的负载均衡,就是nginx接收到客户端的请求之后将这些请求按照自己配置的方式分发给后台服务器(tomcat服务器),分发方式有轮回方式weight 配置权重,权重越大接收到请求的概率就越大,ip_hash按照ip的哈希值来分配。

3、动静分离,所谓的动静分离就是静态的请求由nginx 来处理而动态的请求由tomcat来处理。我们知道tomcat 可以处理静态和动态的请求但是为什么还要使用nginx那,因为nginx处理静态请求的效率相比tomcat高,这样就发挥了各自的优势。

刚开始接触 也就知道这些了……

二、配置实例

#user  nobody;

# 进程数,一般这个和cpu核心数相等

worker_processes  1;

# 错误日志配置

#error_log  logs/error.log;

#error_log  logs/error.log  notice;

#error_log  logs/error.log  info;

# pid 进程

#pid        logs/nginx.pid;

events {

    # work 进程连接数

    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 进行文件的传输,但一般为了和网速的io进行平衡,

#降低系统负载一般把sendfile设置为off,

    sendfile        on;

    #tcp_nopush     on;

    #keepalive_timeout  0;

    keepalive_timeout  65;

# 是否开启gzip压缩输出

    #gzip on;

#负载均衡配置,nginx 是做反向代理的,访问nginx就是在访问负载均衡配置的这个server,这个可以通过log查看

# 查看的error  log  从中可以清晰看到 负载均衡的地址:client: 127.0.0.1, server: localhost,request: "GET /index.jsp # HTTP/1.1", upstream: "http://127.0.0.1:18081/index.jsp", host: "localhost"

upstream  localhost{

#ip_hash iphash 实现负载均衡,这里使用了轮回的方式实现

# nginx 转发的后台tomcat服务器配置,以及其权重的配置,权重越大要承载的量越大

server  localhost:18081 weight=1;

server  localhost:18080 weight=1;

}

# 虚拟主机的配置

    server {

# 就是nginx服务的端口

        listen       80;

#这个就是访问域名

        server_name  localhost;

# 字符编码的设置

        charset utf-8;

index  index.html index.jsp index.htm  index.do;

# nginx 的根目录,当发送静态请求时会默认到这个目录下去查找

root  html;

        #access_log  logs/host.access.log  main;

# 动静分离,动态的反向到负载均衡的tomcat上

#jsp,do等页面交由tomcat处理

location~ \.(jsp|do)$ {    

   # 代理路径,和负载均衡的 upstream  localhost 这个localhost路径是一致的,但http是不能忘!

            proxy_pass http://localhost;

            proxy_set_header HOST $host;

            proxy_set_header X-Real-IP$remote_addr;

            proxy_set_header X-Forwarded-For$proxy_add_x_forwarded_for;

            }

 

# 静态页面由 nginx处理

location~ .*\.(htm|html|gif|jpg|jpeg|png|bmp|swf)$ {

            expires      30d;

            }

 

        #error_page  404              /404.html;

 

        # redirect server error pages to thestatic page /50x.html

        #

        error_page   500 502 503 504  /50x.html;

        location = /50x.html {

            root   html;

        }

 

        # proxy the PHP scripts to Apachelistening on 127.0.0.1:80

        #

        #location ~ \.php$ {

        #   proxy_pass   http://127.0.0.1;

        #}

 

        # pass the PHP scripts to FastCGIserver 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, ifApache‘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;

    #   }

    #}

 

}

三、系统的部署

1、将你的系统首先部署到tomcat上,之后在将这个系统使用到的静态资源如图片、js、css等都配置到nginx的根目录下,这里注意一下自己部署系统时的一些问题,tomcat下部署一如既往没什么,nginx下部署了静态资源,静态资源放在nginx 根目录,也就是server 虚拟主机下root所指的那个根目录,而部署的静态资源也要工程名称-->资源名称

2、nginx下部署的目录:

 技术分享

3、tomcat 下部署的music工程:

技术分享

 

nginx tomcat 集群与负载均衡配置实例

标签:

原文地址:http://blog.csdn.net/qh_java/article/details/45794675

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!