欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

nginx反向代理tomcat实现负载均衡

程序员文章站 2024-04-04 22:47:11
...
nginx反向代理tomcat实现负载均衡
在计算机网络中,反向代理是代理服务器的一种。它根据客户端的请求,从后端的服务器上获取资源,然后再将这些资源返回给客户端。与前向代理不同,前向代理作为一个媒介将互联网上获取的资源返回给相关联的客户端,而反向代理是在服务器端作为代理使用,而不是客户端。
nginx反向代理tomcat实现负载均衡
Nginx(发音同engine x)是一个网页服务器,它能反向代理HTTP, HTTPS, SMTP, POP3, IMAP的协议链接,以及一个负载均衡器和一个HTTP缓存。
起初是供俄国大型的门户网站及搜索引擎Rambler(俄语:Рамблер)使用。此软件BSD-like协议下发行,可以在UNIX、GNU/Linux、BSD、Mac OS X、Solaris,以及Microsoft Windows等操作系统中运行。

下载地址:http://nginx.org/en/download.html
下载完成后解压到任意目录,双击nginx.exe启动
打开localhost启动成功了
nginx反向代理tomcat实现负载均衡
打开nginx的主配置文件conf/nginx.conf

server {
        listen       80;
        server_name  localhost;

        #charset koi8-r;#access_log  logs/host.access.log  main;        location / {
            root   html;
            indexindex.html index.htm;
        }

        #error_page  404              /404.html;# redirect server error pages to the static page /50x.html#
        error_page   500502503504  /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;#}
    }

listen:表示当前的代理服务器监听的端口,默认的是监听80端口。注意,如果我们配置了多个server,这个listen要配置不一样,不然就不能确定转到哪里去了。

server_name:表示监听到之后需要转到哪里去,这时我们直接转到本地,这时是直接到nginx文件夹内。

location:表示匹配的路径,这时配置了/表示所有请求都被匹配到这里

root:里面配置了root这时表示当匹配这个请求的路径时,将会在这个文件夹内寻找相应的文件,这里对我们之后的静态文件伺服很有用。

index:当没有指定主页时,默认会选择这个指定的文件,它可以有多个,并按顺序来加载,如果第一个不存在,则找第二个,依此类推。

下面的error_page是代表错误的页面,这里我们暂时不用,先不管它。

转发到tomcat需要修改两个地方

    server_name localhost:8080;  

    location / {  
        proxy_pass http://localhost:8080;
    }  

我们就修改了上面两个地方,我的tomcat在8080端口,可以根据自己的需要修改。这里有一个新元素proxy_pass,它表示代理路径,相当于转发,而不像之前说的root必须指定一个文件夹。

此时我们修改了文件,是不是就意思着必须先关了nginx再重新启动了,其实不必,nginx可以重新加载文件的。
nginx -s reload
nginx除了启动其它命令都要在命令行下运行
nginx反向代理tomcat实现负载均衡
打开localhost已经代理到tomcat
nginx反向代理tomcat实现负载均衡

负载均衡配置

upstream local_tomcat {  
        server localhost:8080;  
        server localhost:9080;  
    }  
server
  {
    listen       80;
    server_name localhost;    
    #直接匹配网站根,通过域名访问网站首页比较频繁,使用这个会加速处理,官网如是说。#这里是直接转发给后端应用服务器了,也可以是一个静态首页# 第一个必选规则
    location = / {
        proxy_pass http://local_tomcat/index
    }

    # 第二个必选规则是处理静态文件请求,这是nginx作为http服务器的强项# 有两种配置模式,目录匹配或后缀匹配,任选其一或搭配使用
    location ^~ /static/ {
        root /webroot/static/;
        expires 24h;
    }
    location ~* \.(gif|jpg|jpeg|png|css|js|ico)$ {
        root /webroot/res/;
        expires 30d;
    }

    #第三个规则就是通用规则,用来转发动态请求到后端应用服务器#非静态文件请求就默认是动态请求,自己根据实际把握#毕竟目前的一些框架的流行,带.php,.jsp后缀的情况很少了    location / {
        proxy_pass http://local_tomcat
    }
  }

关闭nginx : nginx -s stop

参考:http://nginx.org/en/docs/windows.html
http://cxshun.iteye.com/blog/1535188

').addClass('pre-numbering').hide(); $(this).addClass('has-numbering').parent().append($numbering); for (i = 1; i ').text(i)); }; $numbering.fadeIn(1700); }); });

以上就介绍了nginx反向代理tomcat实现负载均衡,包括了方面的内容,希望对PHP教程有兴趣的朋友有所帮助。