Tomcat启动速度慢的原因分析

发表于 2017-04-10   |   分类于 技术

在开发过程中发现一个问题,就是项目中的tomcat服务器启动速度很不稳定,时快时慢,尤其是部署在虚拟机里面的时候,慢得令人发指,不过同项目组的其他人对这个问题好像没放在心上,自己抽了点时间专门了解了一下。

阅读全文 »

RedHat7系统下使用xfsdump备份服务器后,在恢复的过程中有一步需要安装grub到启动分区设备中

# grub2-install /dev/sda1

在RedHat7.2的时候可以正常运行:

# grub2-install /dev/sda1
Installing for i386-pc platform.
Installation finished. No error reported.

但是在RedHat7.3的时候发生异常:

# grub2-install /dev/sda1
Installing for i386-pc platform.
grub2-install: error: unknown filesystem.

阅读全文 »

使用openssl工具测试服务端支持的curves

发表于 2017-04-06   |   分类于 技术

目前的曲线标准一览:

'sect163k1' # K-163
'sect163r1'
'sect163r2' # B-163
'sect193r1'
'sect193r2'
'sect233k1' # K-233
'sect233r1' # B-233
'sect239k1'
'sect283k1' # K-283
'sect283r1' # B-283
'sect409k1' # K-409
'sect409r1' # B-409
'sect571k1' # K-571
'sect571r1' # B-571
'secp160k1'
'secp160r1'
'secp160r2'
'secp192k1'
'prime192v1' # P-192 secp192r1
'secp224k1'
'secp224r1' # P-224
'secp256k1'
'prime256v1' # P-256 secp256r1
'secp384r1' # P-384
'secp521r1' # P-521
'brainpoolP256r1'
'brainpoolP384r1'
'brainpoolP512r1'

阅读全文 »

xfsdump发生warning的原因解析

发表于 2017-02-27   |   分类于 技术

在执行全体备份的过程中有机率出现以下三个warning,现对每个warning的原因做了分析:
Warning 1:

xfsdump: WARNING: could not open regular file ino 35684867 mode 0x00008180: Stale file handle: not dumped

原因:因为xfsdump工具无法读取该文件的内容,所以不对该文件进行备份,并发出警告。

阅读全文 »

HTTP keep alive的一种实现

发表于 2016-11-03   |   分类于 技术

最近项目需要实现HTTP的长连接,由于项目的web服务是由tomcat搭建的,所以在server端侧实现十分简单,在server.xml文件中追加一下配置即可:

<Connector port="443" 
        ...略...
        keepAliveTimeout="300000"
        maxKeepAliveRequests="100"
        ...略.../>

keepAliveTimeout:服务端对长连接的保持时间
maxKeepAliveRequests:每个长连接能发送请求的最大数,超过就需要重新建立连接。

阅读全文 »

HTTP Pipeline简单例子

发表于 2016-11-01   |   分类于 技术

理论:
1、多个HTTP请求通过一个TCP链接发送,且下一个http请求发送前不需要等待上一个请求的应答。
2、服务器必须按照与接收到的请求相同的顺序发送相关的应答。
3、先进先出,可以发生阻塞(某一个请求发生阻塞,会阻塞该请求后面所有请求的应答)。
4、HTTP Pipeline要求客户端和服务端同时都支持pipeline
5、非幂等性请求不应该使用pipeline(非强制)。
*幂等性:一次或多次请求某一个资源,应该具有相同的副作用。

阅读全文 »

Tomcat7.0指定cipher suiters的优先顺序

发表于 2016-10-25   |   分类于 技术

背景知识:
1、cipher 是由服务进行端选择的。
2、服务端选择之前会和客户端进行协商,优先选择客户端支持的cipher。
3、如果客户端支持的cipher都不被服务端支持,则通信异常。
4、Tomcat设置cipher的方法为:在server.xml中SSL connector中的ciphers字段中设置相应的套件。
5、Tomcat7.0支持设置cipher的优先顺序,但需要Tomcat 7.0.60以上版本及JAVA 8或更新的JAVA版本。
6、如果Tomcat不设置cipher的优先顺序,服务端将以客户端的cipher列表中的先后顺序选择cipher。
7、Tomcat cipher的顺序:server.xml的ciphers字段中的顺序决定了协商时的优先顺序,所以应该将同意使用的套件按安全性强弱排列。

阅读全文 »

Tomcat限制IP访问

发表于 2016-10-18   |   分类于 技术

tomcat可以拒绝指定IP访问web应用,具体配置参照如下:
/tomcat/conf/server.xml

<Host name="localhost"  appBase="webapps"
        unpackWARs="true" autoDeploy="true">

    <!-- SingleSignOn valve, share authentication between web applications
         Documentation at: /docs/config/valve.html -->
    <!--
    <Valve className="org.apache.catalina.authenticator.SingleSignOn" />
    -->

    <!-- Access log processes all example.
         Documentation at: /docs/config/valve.html
         Note: The pattern used is equivalent to using pattern="common" -->
    <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
           prefix="localhost_access_log." suffix=".txt"
           pattern="%h %l %u %t &quot;%r&quot; %s %b" />

    <Valve className="org.apache.catalina.valves.RemoteAddrValve" deny="192.168.246.49"/>
    <Valve className="org.apache.catalina.valves.RemoteAddrValve" deny="192.168.246.50"/>
</Host>

上述配置限制了IP192.168.246.49和192.168.246.50对该web应用的访问。

最近项目运行环境的jdk版本从1.7更新到了1.8,发现一个奇怪的问题。
程序中使用了https访问了外部web server,以前如果证书验证错误会报

javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException

但是更新了版本之后,同样的错误却抛出javax.ws.rs.ProcessingException: Already connected这样的异常,感觉非常奇怪,特意去了解了一下,
最后发现这其实是一个jersey的BUG,在2.22.2, 2.23, 3.0这几个版本中得到了修复。

阅读全文 »

配置OpenStack各组件使用SSL通信

发表于 2016-09-22   |   分类于 技术

OpenStack 版本:Liberty
下面的配置针对的是allinone的部署方式,但是同理的可以应用到多节点的部署。

阅读全文 »

© 2017 Powered by Typecho
苏ICP备15035969号-3