欢迎来到 黑吧安全网 聚焦网络安全前沿资讯,精华内容,交流技术心得!

windows 下nginx和tomcat集成

来源:本站转载 作者:佚名 时间:2014-02-03 TAG:tomcat 代理服务器 nginx 我要投稿

 一、为什么需要对Tomcat服务器做负载均衡:

Tomcat服务器作为一个Web服务器,其并发数在300-500之间,如果有超过500的并发数便会出现Tomcat不能响应新的请求的情况,严重影响网站的运行。另外,在访问量大的情况下,Tomcat的线程数会不断增加。由于Tomcat自身对内存的占用有控制,当对内存的占用达到最大值时便会出现内存溢出,对网站的访问严重超时等现象,这时便需要重新启动Tomcat以释放占用的内存,这样做便会阻断网站运行。 

所以对Tomcat做负载均衡便很有必要。目前可以和Tomcat做负载均衡的主流服务器是Apache,但是Nginx由于功能多、配置简单等优点逐渐成为很多负载均衡服务器的首选。Nginx的并发数可达到50000,所以理论上可以和Tomcat以1:100的比例来配置,这样便可以很好的解决网站并发瓶颈问题。而且Nginx、apache是基于http反向代理方式,位于ISO模型的第七层应用层。直白些就是TCP UDP 和http协议的区别,Nginx不能为基于TCP协议的应用提供负载均衡。

二. 配置方法:

1.下载相应的服务器,Tomcat的版本采用6.0的.Nginx采用1.4.4版本

 

     目录结构

     Nginx-

              |_  conf   配置目录

              |_  contrib

              |_  docs 文档目录

              |_  logs  日志目录

              |_  temp 临时文件目录

              |_  html 静态页面目录

              |_  nginx.exe 主程序

注:

若果想停止nginx,dos环境运行命令:nginx -s stop.

开启nginx 双击nginx.exe 或者dos 下运行start nginx;

下面是nginx作为前端反向代理服务器的配置:nginx.conf代码

 


 
  1. #Nginx所用用户和组,window下不指定  
  2. #user  nobody;  
  3.   
  4. #工作的子进程(通常等于CPU数量或者1倍于CPU)  
  5. worker_processes  1;  
  6.   
  7. #错误日志存放路径  
  8. #error_log  logs/error.log;  
  9. #error_log  logs/error.log  notice;  
  10. #error_log  logs/error.log  info;  
  11.   
  12. #指定pid存放文件  
  13. #pid        logs/nginx.pid;  
  14.   
  15.   
  16. events {  
  17.     #允许最大连接数  
  18.     worker_connections  1024;  
  19. }  
  20.   
  21.   
  22. http {  
  23.     include       mime.types;  
  24.     default_type  application/octet-stream;  
  25.        
  26.      #定义日志格式  
  27.     #log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '  
  28.     #                  '$status $body_bytes_sent "$http_referer" '  
  29.     #                  '"$http_user_agent" "$http_x_forwarded_for"';  
  30.   
  31.     #access_log  logs/access.log  main;  
  32.   
  33.     sendfile        on;  
  34.     #tcp_nopush     on;  
  35.   
  36.     #keepalive_timeout  0;  
  37.     keepalive_timeout  65;  
  38.       
  39.     #客户端上传文件大小控制  
  40.     client_max_body_size 8m;  
  41.       
  42.     #gzip  on;  
  43.     upstream localhost {    
  44.         server localhost:8899;  
  45.         #根据ip计算将请求分配各那个后端tomcat,许多人误认为可以解决session问题,其实并不能。                  
  46.         #同一机器在多网情况下,路由切换,ip可能不同                  
  47.     ip_hash;    
  48.     }   
  49.                      
  50.     server {  
  51.         listen       9999;  
  52.         server_name  localhost;  
  53.   
  54.         #charset koi8-r;  
  55.   
  56.         #access_log  logs/host.access.log  main;  
  57.   
  58.         location / {  
  59.             root html;  
  60.             index index.html index.htm;  
  61.             #此处的 http://localhost与upstream localhost对应  
  62.             proxy_pass  http://localhost;  
  63.               
  64.             proxy_redirect off;  
  65.             proxy_set_header Host $host;  
  66.             proxy_set_header X-Real-IP $remote_addr;  
  67.             proxy_set_header  X-Forwarded-For $proxy_add_x_forwarded_for;  
  68.             client_max_body_size   10m;   
  69.             client_body_buffer_size  128k;  
  70.             proxy_connect_timeout  100;  
  71.             proxy_send_timeout   100;  
  72.             proxy_read_timeout 100;  
  73.             proxy_buffer_size 4k;  
  74.             proxy_buffers  4 32k;  
  75.             proxy_busy_buffers_size 64k;  
  76.             proxy_temp_file_write_size  64k;  
  77.         }  
  78.   
  79.         #error_page  404              /404.html;  
  80.   
  81.         # redirect server error pages to the static page /50x.html  
  82.         #  
  83.         error_page   500 502 503 504  /50x.html;  
  84.         location = /50x.html {  
  85.             root   html;  
  86.         }  
  87.   
  88.         # proxy the PHP scripts to Apache listening on 127.0.0.1:80  
  89.         #  
  90.         #location ~ \.php$ {  
  91.         #    proxy_pass   http://127.0.0.1;  
  92.         #}  
  93.   
  94.         # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000  
  95.         #  
  96.         #location ~ \.php$ {  
  97.         #    root           html;  
  98.         #    fastcgi_pass   127.0.0.1:9000;  
  99.         #    fastcgi_index  index.php;  
  100.         #    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;  
  101.         #    include        fastcgi_params;  
  102.         #}  
  103.   
  104.         # deny access to .htaccess files, if Apache's document root  
  105.         # concurs with nginx's one  
  106.         #  
  107.         #location ~ /\.ht {  
  108.         #    deny  all;  
  109.         #}  
  110.     }  
  111.   
  112.   
  113.     # another virtual host using mix of IP-, name-, and port-based configuration  
  114.     #  
  115.     #server {  
  116.     #    listen       8000;  
  117.     #    listen       somename:8080;  
  118.     #    server_name  somename  alias  another.alias;  
  119.   
  120.     #    location / {  
  121.     #        root   html;  
  122.     #        index  index.html index.htm;  
  123.     #    }  
  124.     #}  
  125.   
  126.   
  127.     # HTTPS server  
  128.     #  
  129.     #server {  
  130.     #    listen       443 ssl;  
  131.     #    server_name  localhost;  
  132.   
  133.     #    ssl_certificate      cert.pem;  
  134.     #    ssl_certificate_key  cert.key;  
  135.   
  136.     #    ssl_session_cache    shared:SSL:1m;  
  137.     #    ssl_session_timeout  5m;  
  138.   
  139.     #    ssl_ciphers  HIGH:!aNULL:!MD5;  
  140.     #    ssl_prefer_server_ciphers  on;  
  141.   
  142.     #    location / {  
  143.     #        root   html;  
  144.     #        index  index.html index.htm;  
  145.     #    }  
  146.     #}  
  147. }  

[1] [2] [3]  下一页

【声明】:黑吧安全网(http://www.myhack58.com)登载此文出于传递更多信息之目的,并不代表本站赞同其观点和对其真实性负责,仅适于网络安全技术爱好者学习研究使用,学习中请遵循国家相关法律法规。如有问题请联系我们,联系邮箱admin@myhack58.com,我们会在最短的时间内进行处理。
  • 最新更新
    • 相关阅读
      • 本类热门
        • 最近下载