Jul1

专业的Web原型设计工具推荐

Author: leeon  Click: 8582   Comments: 0 Category: 其他  Tag: Pencil,原型设计,交互设计

http://pencil.evolus.vn/en-US/Home.aspx

The Pencil Project's unique mission is to build a free and opensource tool for making diagrams and GUI prototyping that everyone can use.

Top features:

  • Built-in stencils for diagraming and prototyping
  • Multi-page document with background page
  • Inter-page linkings!
  • On-screen text editing with rich-text supports
  • Exporting to HTML, PNG, Openoffice.org document, Word document and PDF.
  • Undo/redo supports
  • Installing user-defined stencils and templates
  • Standard drawing operations: aligning, z-ordering, scaling, rotating...
  • Cross-platforms
  • Adding external objects
  • Personal Collection
  • Clipart Browser
  • Object snapping
  • Sketchy Stencil
  • And much more...

相当赞的Web原型设计工具,插件很小巧,安装到Firefox 3.5+即可使用。

Jun30

【转载】Tomcat集群和负载均衡

Author: leeon  Click: 7626   Comments: 0 Category: 架构  Tag: tomcat

(一)环境说明
(1)服务器有4台,一台安装apache,三台安装tomcat
(2)apache2.0.55、tomcat5.5.15、jk2.0.4、jdk1.5.6或jdk1.4.2
(3)ip配置,一台安装apache的ip为192.168.0.88,三台安装tomcat的服务器ip分别为192.168.0.1/2/4
(二)安装过程
(1)在三台要安装tomcat的服务器上先安装jdk
(2)配置jdk的安装路径,在环境变量path中加入jdk的bin路径,新建环境变量JAVA_HOME指向jdk的安装路径
(3)在三台要安装tomcat的服务器上分别安装tomcat,调试三个tomcat到能够正常启动
(4)tomcat的默认WEB服务端口是8080,默认的模式是单独服务,我的三个tomcat的WEB服务端口修改为7080/8888/9999
修改位置为tomcat的安装目录下的conf/server.xml
修改前的配置为 
[code="plain"]
maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
enableLookups="false" redirectPort="8443" acceptCount="100"
connectionTimeout="20000" disableUploadTimeout="true" />
[/code]
修改后的配置为
[code="plain"]
maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
enableLookups="false" redirectPort="8443" acceptCount="100"
connectionTimeout="20000" disableUploadTimeout="true" />
[/code]
依次修改每个tomcat的监听端口(7080/8888/9999)

(5)分别测试每个tomcat的启动是否正常
http://192.168.0.1:7080
http://192.168.0.2:8888
http://192.168.0.4:9999
(三)负载均衡配置过程
(1)在那台要安装apache的服务器上安装apache2.0.55,我的安装路径为默认C:\Program Files\Apache Group\Apache2
(2)安装后测试apache能否正常启动,调试到能够正常启动http://192.168.0.88
(3)下载jk2.0.4后解压缩文件
(4)将解压缩后的目录中的modules目录中的mod_jk2.so文件复制到apache的安装目录下的modules目录中,我的为C:\Program Files\Apache Group\Apache2\modules
(5)修改apache的安装目录中的conf目录的配置文件httpd.conf,在文件中加LoadModule模块配置信息的最后加上一句LoadModule jk2_module modules/mod_jk2.so
(6)分别修改三个tomcat的配置文件conf/server.xml,修改内容如下
修改前 
 [code="plain"]




[/code]
修改后
[code="plain"]




[/code]
将其中的jvmRoute="jvm1"分别修改为jvmRoute="tomcat1"和jvmRoute="tomcat2"和jvmRoute="tomcat3"
(7)然后重启三个tomcat,调试能够正常启动。
(8)在apache的安装目录中的conf目录下创建文件workers2.propertie,写入文件内容如下
# fine the communication channel
[channel.socket:192.168.0.1:8009]
info=Ajp13 forwarding over socket
#配置第一个服务器
tomcatId=tomcat1 #要和tomcat的配置文件server.xml中的jvmRoute="tomcat1"名称一致
debug=0
lb_factor=1 #负载平衡因子,数字越大请求被分配的几率越高
[code="plain"]

# Define the communication channel
[channel.socket:192.168.0.2:8009]
info=Ajp13 forwarding over socket
tomcatId=tomcat2
debug=0
lb_factor=1

# Define the communication channel
[channel.socket:192.168.0.4:8009]
info=Ajp13 forwarding over socket
tomcatId=tomcat3
debug=0
lb_factor=1

[status:]
info=Status worker, displays runtime information.

[uri:/jkstatus.jsp]
info=Display status information and checks the config file for changes.
group=status:

[uri:/*]
info=Map the whole webapp
debug=0
[/code]
(9)在三个tomcat的安装目录中的webapps建立相同的应用,我和应用目录名为TomcatDemo,在三个应用目录中建立相同 WEB-INF目录和页面index.jsp,index.jsp的页面内容如下
[code="html"]
<%@ page contentType="text/html; charset=GBK" %>
<%@ page import="java.util.*" %>


Server Info:
<%
out.println(request.getLocalAddr() + " : " + request.getLocalPort()+"
");%>
<%
out.println("
ID " + session.getId()+"
");

// 如果有新的 Session 属性设置
String dataName = request.getParameter("dataName");
if (dataName != null && dataName.length() > 0) {
String dataValue = request.getParameter("dataValue");
session.setAttribute(dataName, dataValue);
}

out.print("Session 列表");

Enumeration e = session.getAttributeNames();
while (e.hasMoreElements()) {
String name = (String)e.nextElement();
String value = session.getAttribute(name).toString();
out.println( name + " = " + value+"
");
System.out.println( name + " = " + value);
}
%>


名称:


值:







[/code]

(10)重启apache服务器和三个tomcat服务器,到此负载 均衡已配置完成。测试负载均衡先测试apache,访问http://192.168.0.88/jkstatus.jsp
能否正常访问,并查询其中的内容,有三个tomcat的相关配置信息和负载说明,访问http://192.168.0.88/TomcatDemo/index.jsp看能够运行,
能运行,则已建立负载均衡。
(四)tomcat集群配置
(1)负载均衡配置的条件下配置tomcat集群
(2)分别修改三个tomcat的配置文件conf/server.xml,修改内容如下
修改前 

[code="plain"]

[/code]
修改后 
[code="plain"]

managerClassName="org.apache.catalina.cluster.session.DeltaManager"
expireSessionsOnShutdown="false"
useDirtyFlag="true"
notifyListenersOnReplication="true">

className="org.apache.catalina.cluster.mcast.McastService"
mcastAddr="228.0.0.4"
mcastPort="45564"
mcastFrequency="500"
mcastDropTime="3000"/>

className="org.apache.catalina.cluster.tcp.ReplicationListener"
tcpListenAddress="auto"
tcpListenPort="4001"
tcpSelectorTimeout="100"
tcpThreadCount="6"/>

className="org.apache.catalina.cluster.tcp.ReplicationTransmitter"
replicationMode="pooled"
ackTimeout="5000"/>

filter=".*\.gif;.*\.js;.*\.jpg;.*\.png;.*\.htm;.*\.html;.*\.css;.*\.txt;"/>

tempDir="/tmp/war-temp/"
deployDir="/tmp/war-deploy/"
watchDir="/tmp/war-listen/"
watchEnabled="false"/>




[/code]    
将集群配置选项的注释放开即可,如上。
(3)重启三个tomcat。到此tomcat的集群已配置完成。 

Jun30

Suse10开启SSH服务

Author: leeon  Click: 9951   Comments: 0 Category: linux  Tag: ssh,suse

安装完suse10后发现系统中默认会添加很多iptables,同时suse默认是开启firewall的,这个和rhel还有点区别。用SecureCRT连入虚拟机中的suse,无法进行ssh连接,于是发现suse firewall中没有允许ssh的服务,遂可以这样设置:

1.使用终端输入yast2: suse-linux:~ # yast2
2.选择“安全与用户”(Security and Users)选项:
3.选择“防火墙” (Firewall)
4.选择“Allowed Services” 5.在Allowed Services for Selected Zone中选择“External Zone”
6.在Service to Allow中选择“SSH”
7.然后点击“Add”,接着点击“Next”进行保存。
Jun13

ETag与Expires的区别

Author: leeon  Click: 7959   Comments: 0 Category: 优化  Tag: etag,expires
ETag是用在向服务器GET请求的时候判断文件是否过期。
而Expires是用来判断本地缓存的组件是否过期。
Etag 和 If-Modified-Since 均是用来判断服务器端的文件是否过期。
如果页面已经缓存,当页面刷新(F5)的时候浏览器不会向服务器GET请求。
如果页面(Ctrl+F5)的时候浏览器会向服务器发起询问,If-Modified-Since提交本地记录的组件的日期给服务器,如果服务器查询组件未做修改,那么返回304(Not Modified),如果服务器端文件有做修改那么服务器会返回新的组件给客户端。
Expires 和 Cache-Control用来判断本地电脑中的缓存文件是否过期。

通常的页面访问中,如果是访问一个全新的页面那么ETag,Expires的作用如下:
第一次访问服务器会将ETag和Expires发送给浏览器。
再次访问浏览器会根据缓存来加载组件,此时如果有缓存的就不发起HTTP请求。如果本地有缓存但是依旧强制向服务器提交组件的GET请求,那么ETag就会派上用场。

Cache-ControlExpires 有更高的优先级。
If-None-Match(ETag) If-Modified-Since(Last-Modified)有更高的优先级。

分类

标签

归档

最新评论

Abyss在00:04:28评论了
Linux中ramdisk,tmpfs,ramfs的介绍与性能测试
shallwe99在10:21:17评论了
【原创】如何在微信小程序开发中正确的使用vant ui组件
默一在09:04:53评论了
Berkeley DB 由浅入深【转自架构师杨建】
Memory在14:09:22评论了
【原创】最佳PHP框架选择(phalcon,yaf,laravel,thinkphp,yii)
leo在17:57:04评论了
shell中使用while循环ssh的注意事项

我看过的书

链接

其他

访问本站种子 本站平均热度:9360 c° 本站链接数:1 个 本站标签数:464 个 本站被评论次数:94 次