日期:2011-11-18 13:14:00  来源:本站整理

JSP利用服务器搭建实施文档(Nginx+Tomcat)[服务器安全]

赞助商链接



  本文“JSP利用服务器搭建实施文档(Nginx+Tomcat)[服务器安全]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:

本文节选自某电子商务网站JSP利用服务器的环境搭建实施文档,文中的IP和域名举行了改正.JSP利用服务器由Nginx+Tomcat整合而成,而新的Tomcat 7.0相关于从前的版本来说,它的新特点以下:

◆利用随机数避免跨站脚本攻击;

◆改变了安全认证中的jessionid的机制,避免Session攻击;

◆可举行内存泄露的侦测和防备;

◆在war文件外利用别名去存储静态内容;

◆支持Servlet 3.0、JSP 2.2和JSP-EL 2.2;

◆更简单将Tomcat内嵌到利用中去,比方JBoss;

◆异步日记.

此中第三点是我最为关注的,在从前的版本中Tomcat均存在着内存泄露的情形,我但愿能在新版本中有所改进.

Nginx与Tomcat整合的好处以下所示:

◆静态别离,加快用户拜候网站的速度.

◆整个负载均衡层和Web层的工作流程为LVS/DR+Keeaplived→Nginx反向代理(动静别离)→Tomcat集群,可以保证整个网站不会因为某一台LVS或Nginx+tomcat机械挂掉而影响网站的运营.

◆Nginx安定,宕机的大概性微乎其乎.

下面是项目实施的具体步骤——

由于服务器均采取的是最小化安装,所以先安装一些底子的编译库,号令以下:

yum -y install gcc gcc-c++ autoconf libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel zlib zlib-devel glibc glibc-devel glib2 glib2-devel bzip2 bzip2-devel ncurses ncurses-devel curl curl-devel e2fsprogs e2fsprogs-devel krb5 krb5-devel libidn libidn-devel openssl openssl-devel

(1)首先辨别在xxx.xxx.xxx.146和xxx.xxx.xxx.147上安装Nginx 0.8.56和Tomcat 7.0,然后整合它们.

在安装Tomcat 7.0之前,必须先安装JDK,其下载地址为

https://cds.sun.com/is-bin/INTERSHOP.enfinity/WFS/CDS-CDS_Developer-Site/en_US/-/USD/ViewFilteredProducts-SingleVariationTypeFilter

由于我的服务器都是CentOS x86_64,所以挑选了jdk-6u18-linux-x64.bin软件包,记得还是要将其放在/usr/local/src目录下,便利今后的工作筹划.

下载完成后,改正jdk-6u18-linux-x64.bin为可履行,并运行它:

cd /usr/local/src
chmod +x jdk-6u18-linux-x64.bin
./jdk-6u18-linux-x64
mv jdk1.6.0_18 /usr/local/jdk

接着配置系统的Java运行环境,我是通过改正/etc/profile文件来实现,改正内容以下所示:

JAVA_HOME="/usr/local/jdk"
CLASS_PATH="$JAVA_HOME/lib:$JAVA_HOME/jre/lib"
PATH=".:$PATH:$JAVA_HOME/bin"
CATALINA_HOME="/usr/local/tomcat"
export JAVA_HOME CATALINA_HOME

保存退出后,履行以下号令让环境当即见效:

source /etc/profile 

然后下载并安装apache-tomat7.0.12,以下所示.

cd /usr/local/src/
wget http://mirror.bjtu.edu.cn/apache/tomcat/tomcat-7/v7.0.12/bin/apache-tomcat-7.0.12.tar.gz
tar zxvf apache-tomcat-7.0.12.tar.gz
mv apache-tomcat-7.0.12 /usr/local/tomcat/
cp –rf /usr/local/tomcat/webapps /data/htdocs/www
vim /usr/local/tomcat/conf/server.xml

改正tomcat的根途径位置,我的网站地址为/data/htdocs/www/shop,这个虚拟主机需求在/usr/local/tomcat/conf/server.xml里指定,窜改后的内容以下所示:

<Host name="www.51cto.com"  appBase="webapps"
            unpackWARs="true" autoDeploy="true">
        <Context path="" docBase="/data/htdocs/www/shop/" />

假如我们要持续增添虚拟主机,按照如上格局持续增添内容便可,Host name背面接虚拟主机名称,docBase背面接虚拟主机对应的途径位置.

安装完成后,启动tomcat,默许即监听了8080端口,启动号令以下:

/usr/local/tomcat/bin/startup.sh

成功运行后,用lsof-i:80来举行考证,以下所示:

lsof -i:8080
COMMAND   PID USER   FD   TYPE  DEVICE SIZE NODE NAME
java    23731 root   40u  IPv6 3347645       TCP *:webcache (LISTEN)

最 后安装pcre8.1.0及Nginx0.8.56,整合Nginx0.8.56与Tomcat7.0.12, Nginx0.8.56的安装历程可参考前面的内容,为了节俭篇幅就不再具体阐明了.静态HTML页面、图片、CSS等由Nginx来处理,jsp、do 内容由后端的Tomcat处理,nginx.conf配置文件的内容以下所示(这里为了调试便利,我们首先将域名www.51cto.com指向了 xxx.xxx.xxx.146,另一台Web配置跟xxx.xxx.xxx.146一样的,我这里以xxx.xxx.xxx.146举例阐明,等此架构 中的Web环境均顺利后,再将域名www.51cto.com指向我们的VIP地址):

user  www www;   
worker_processes 8; 
error_log  /usr/local/webserver/nginx/logs/nginx_error.log  crit; 
pid        /usr/local/webserver/nginx/nginx.pid; 
 #Specifies the value for maximum file descriptors that can be opened by this process. 
worker_rlimit_nofile 65535; 
#工作情势及衔接数上限 
events 
{  
 use epoll;  
 worker_connections 65535; 
} 
#设定http服务器,操纵它的反向代理功效供应负载均衡支持 
http 
{   
  #设定mime范例   
  include       mime.types;   
  default_type  application/octet-stream;     
  #charset  gb2312;  
  #设定恳求缓冲      
  server_names_hash_bucket_size 128;   
  client_header_buffer_size 32k;  
  large_client_header_buffers 4 32k;  
  client_max_body_size 300m; 
  sendfile on;  
  tcp_nopush     on;   
  keepalive_timeout 60; 
  tcp_nodelay on; 
  server_tokens off;
   client_body_buffer_size 512k; 
  proxy_connect_timeout   5; 
  proxy_send_timeout      60; 
  proxy_read_timeout      5; 
  proxy_buffer_size       16k; 
  proxy_buffers           4 64k; 
  proxy_busy_buffers_size 128k; 
  proxy_temp_file_write_size 128k; 
  #  fastcgi_connect_timeout 300; 
  #  fastcgi_send_timeout 300; 
  #  fastcgi_read_timeout 300; 
  #  fastcgi_buffer_size 64k; 
  #  fastcgi_buffers 4 64k; 
  #  fastcgi_busy_buffers_size 128k; 
  #  fastcgi_temp_file_write_size 128k;   
  gzip on; 
  gzip_min_length  1k; 
  gzip_buffers     4 16k; 
  gzip_http_version 1.1; 
  gzip_comp_level 2; 
  gzip_types       text/plain application/x-javascript text/css application/xml; 
  gzip_vary on; 
  
  #limit_zone  crawler  $binary_remote_addr  10m;
 
  ###禁止通过ip拜候站点  
  server{         
 server_name _;         
 return 404;         
  }  
  server
   {     
 listen       80;    
 server_name  www.51cto.com;    
 index index.html index.htm index.jsp index.do;#设定拜候的默许首页地址     
 root  /data/htdocs/www/shop;#设定网站的资源存放途径      
 #limit_conn   crawler  20;  
 if (-d $request_filename)
  {
   rewrite ^/(.*)([^/])$ http://$host/$1$2/ permanent;
  }
  #全部jsp的页面均交由tomcat处理
  location ~ \.(jsp|jspx|do)?$ {
   proxy_set_header  Host $host;  
  proxy_set_header  X-Real-IP  $remote_addr;
   proxy_pass http://127.0.0.1:8080;#转向tomcat处理       
 }            
 location ~ .*\.(htm|html|gif|jpg|jpeg|png|bmp|swf|ioc|rar|zip|txt|flv|mid|doc|ppt|pdf|xls|mp3|wma)$ #设定拜候静态文件直接读取不经过tomcat     
 {       
  expires      30d;     
 }      
 location ~ .*\.(js|css)?$     
 {       
  expires      1h;     
 }      
 
  #定义拜候日记的写入格局      
 log_format  wwwlog  '$remote_addr - $remote_user [$time_local] "$request" '              
  '$status $body_bytes_sent "$http_referer" '             
  '"$http_user_agent" $http_x_forwarded_for';    
 access_log  /data/logs/www_nginx.log wwwlog;#设定拜候日记的存放途径  
   } 
}

配置完成后,我们用以下号令启动Nginx进程,让其监听80端口,以下所示:

/usr/local/webserver/nginx/sbin/nginx 

然后我们在/data/htdocs/www/shop/下面写一段Java代码,考证以上的配置能否成功,写完后我们可以用cat 号令来查看/data/htdocs/www/shop/mem.jsp文件,文件内容以下所示:

<%
Runtime lRuntime = Runtime.getRuntime();
out.println("*** BEGIN MEMORY STATISTICS ***<br/>");
out.println("Free Memory: "+lRuntime.freeMemory()+"<br/>");
out.println("Max   Memory: "+lRuntime.maxMemory()+"<br/>");
out.println("Total Memory: "+lRuntime.totalMemory()+"<br/>");
out.println("Available Processors : "+lRuntime.availableProcessors()+"<br/>");
out.println("*** END MEMORY STATISTICS ***");
%>

我们可以输入http://www.110hack.com/mem.jsp来考证nginx+tomcat整合成功了.   以上是“JSP利用服务器搭建实施文档(Nginx+Tomcat)[服务器安全]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:

  • JSP利用服务器搭建实施文档(Nginx+Tomcat)
  • 本文地址: 与您的QQ/BBS好友分享!
    • 好的评价 如果您觉得此文章好,就请您
        0%(0)
    • 差的评价 如果您觉得此文章差,就请您
        0%(0)

    文章评论评论内容只代表网友观点,与本站立场无关!

       评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论
    Copyright © 2020-2022 www.xiamiku.com. All Rights Reserved .