一 、LINUX
在Linux主机上,安装上传下载工具包rz及sz
如果不知道你要安装包的具体名称,可以使用yum provides */name 进行查找系统自带软件包的信息;
一般会列出软件包的名称及版本,还有安装路径;查询到软件包名后,使用yum install -y 包名 进行安装。
lrzsz包安装完成后包括上传rz、下载sz命令;只需要安装这个包即可。
[root@localhost src]# yum install -y lrzsz
Centos 7安装 jdk 8
1 更新系统软件
yum update
2 查找系统已安装的jdk组件
rpm -qa | grep -E '^open[jre|jdk]|j[re|dk]'
3 查看java版本
java -version
4 卸载以前已有的jdk
yum remove java-1.8.0-openjdk
yum remove java-1.7.0-openjdk
或
rm -rf $(which java)
5 在/usr目录中先建名为java的文件夹
mkdir /usr/local
6 下载jdk-8u111-linux-x64.tar.gz包,并上传至服务器中。
解压jdk-8u111-linux-x64.tar.gz包至/usr/local/jdk1.8.0_111文件夹
tar -xvf jdk-8u111-linux-x64.tar.gz -C /usr/local
7 添加到环境变量
编辑/etc/profile文件,在export PATH USER LOGNAME MAIL HOSTNAME HISTSIZE HISTCONTROL下面添加如下代码:
#jdk
export JAVA_HOME=/usr/local/jdk1.8.0_111
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
8 执行命令使配置生效
source /etc/profile
9 验证,是否安装成功
java -version
netstat -anpt | grep java
Centos 7安装 tomcat8并配置开机运行
1.下载tomcat8.x.xx.tar.gz,使用sftp或vsftp等上传到服务器
2.tar命令直接解压到 /usr/local/ 目录下,将其修改为tomcat8
sudo tar zxvf tomcat8.x.xx.tar.gz -C /usr/local/
sudo mv tomcat8.x.xx tomcat8
3.tomcat需要增加一个pid文件,在 _$tomcat_home/bin 目录下面,增加 setenv.sh 配置,
catalina.sh启动的时候会调用,同时配置java内存参数
vi setenv.sh
chmod 754 setenv.sh
#tomcat startup pid
#set java runtime environment variable
export JAVA_HOME=/usr/local/jdk1.8.0_111
export PATH=$PATH:$JAVA_HOME/bin
export CATALINA_HOME=/usr/local/tomcat8
export CATALINA_BASE=/usr/local/tomcat8
#add tomcat pid
CATALINA_PID="$CATALINA_BASE/tomcat.pid"
#add java opts
JAVA_OPTS="-server -XX:PermSize=256M -XX:MaxPermSize=1024m -Xms512M -Xmx1024M -
XX:MaxNewSize=256m"
4.增加 tomcat.service
在/usr/lib/systemd/system目录下增加tomcat.service,目录必须是绝对目录,添加如下命令:
vim /usr/lib/systemd/system/tomcat.service
[unit]: 配置了服务的描述,规定了在network启动之后执行,
[service]: 配置服务的pid,服务的启动,停止,重启
[install]: 配置了使用用户
# conf service desc ,set do this after network started
[Unit]
Description=tomcat
After=syslog.target network.target remote-fs.target nss-lookup.target
# conf service pid, start,stop and restart
[Service]
Type=forking
PIDFile=/usr/local/tomcat8/tomcat.pid
ExecStart=/usr/local/tomcat8/bin/startup.sh
ExecStop=/bin/kill -s QUIT $MAINPID
ExecReload=/bin/kill -s HUP $MAINPID
PrivateTmp=true
# conf user
[Install]
WantedBy=multi-user.target
5.使用tomcat.service
centos7使用systemctl替换了service命令,如需设置其他服务,替换此处的tomcat即可,如:
systemctl start tomcat.service 启动服务
systemctl stop tomcat.service #停止服务
systemctl restart tomcat.service #重启服务
systemctl enable tomcat.service #增加开机启动
systemctl disable tomcat.service #删除开机启动
因为配置pid,在启动的时候会在tomcat的根目录下生产tomcat.pid文件,服务停止后删除.
同时tomcat在启动时,执行start不会启动两个tomcat,保证始终只有一个tomcat服务在运行.多个tomcat可以配置在多个目录下,互不影响。
6.查看效果 。重启服务器后,通过wget访问,终端输出如下所示,配置tomcat开机自启动成功!
7.(*非必须)8080端口添加到防火墙例外并重启(视自己服务器配置而定)
firewall-cmd --zone=public --add-port=8080/tcp --permanent
firewall-cmd --reload
tomcat8配置HTTPS访问
URIEncoding="UTF-8"
二、 WINDOWS
安装完JDK后配置环境变量 计算机→属性→高级系统设置→高级→环境变量
1.系统变量→新建 JAVA_HOME 变量 。
变量值填写jdk的安装目录(本人是 E:\Java\jdk1.7.0)
2.系统变量→寻找 Path 变量→编辑
在变量值最后输入 %JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;
(注意原来Path的变量值末尾有没有;号,如果没有,先输入;号再输入上面的代码)
3.系统变量→新建 CLASSPATH 变量
变量值填写 .;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar(注意最前面有一点)
系统变量配置完毕
在WINDOWS下配置tomcat以服务方式自启动
系统变量→新建 CATALINA_HOME 变量
本人是C:\apache-tomcat-8.0.46
然后打开系统服务进行查看
将服务设置为自启动
三 、虚拟机tomcat配置,使shiro项目对于SSL支持
1.首先生成数字证书,到/usr/local/tomcat8/localhost.keystore
2.设置tomcat下的server.xml
SslFiter默认端口是443,此处使用8443; "/login.jsp = ssl,authc" 表示访问登陆页面时需要走ssl
tomcat优化
1.禁用tomcat的AJP协议
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
2.修改通讯模式BIO修改为NIO提高并发处理能力
<Connector port="8080" protocol="org.apache.coyote.http11.Http11Protocol" connectionTimeout="20000" redirectPort="8443" URIEncoding="utf-8" />
3.启用外部连接池
#去掉注释并修改protocol:
<Connector executor="tomcatThreadPool"
port="8080" protocol="org.apache.coyote.http11.Http11Protocol"
connectionTimeout="20000"
redirectPort="8443" />
#去掉注释并修改maxThreads:
<Executor name="tomcatThreadPool" namePrefix="catalina-exec-"
maxThreads="150" minSpareThreads="4"/>
#删除俩参数 删除后如下:
<Executor name="tomcatThreadPool" namePrefix="catalina-exec-" />
#<Executor name="tomcatThreadPool"下添加:
port="8080" protocol="org.apache.coyote.http11.Http11NioProtocol"
maxThreads="1000"
minSpareThreads="100"
maxSpareThreads="200"
acceptCount="1000"
disableUploadTimeout="true"
connectionTimeout="20000"
URIEncoding="UTF-8"
enableLookups="false"
compression="on"
compressionMinSize="2048"
compressableMimeType="text/html,text/xml,text/javascript,text/css,text/plain,image/gif,image/jpg,image/png"
redirectPort="8443" />
4.JVM调优生产配置
编辑catalina.sh配置文件
[root@tomcat1 ~]# vim /usr/local/tomcat8/bin/catalina.sh
# OS specific support. $var _must_ be set to either true or false.下面添加
JAVA_OPTS="-server -Xms1024m -Xmx2048m -XX:PermSize=512m -XX:MaxPermSize=512m -XX:+UseConcMarkSweepGC -XX:+UseParallelGCThreads=8 -XX:CMSInitiatingOccupancyFraction=80 -XX:
+UseCMSCompactAtFullCollection -XX:CMSFullGCsBeforeCompaction=0 -XX:-PrintGC -XX:-PrintGCDetails -XX:-PrintGCTimeStamps -Xloggc:../logs/gc.log"
参数描述:
-Xms #堆内存初始大小,单位m、g
-Xmx #堆内存最大允许大小,一般不要大于物理内存的80%
-XX:PermSize #非堆内存初始大小,一般应用设置初始化200m,最大1024m就够了
-XX:MaxPermSize #非堆内存最大允许大小
-XX:+UseParallelGCThreads=8 #并行收集器线程数,同时有多少个线程进行垃圾回收,一般与CPU数量相等
-XX:+UseParallelOldGC #指定老年代为并行收集
-XX:+UseConcMarkSweepGC #CMS收集器(并发收集器)
-XX:+UseCMSCompactAtFullCollection #开启内存空间压缩和整理,防止过多内存碎片
5.生产配置实例
#server.xml配置文件下:
[root@tomcat1 ~]# vim /usr/local/tomcat8/conf/server.xml
# <Connector executor="tomcatThreadPool"下面添加:
port="8080" protocol="org.apache.coyote.http11.Http11NioProtocol"
maxThreads="1000"
minSpareThreads="100"
maxSpareThreads="200"
acceptCount="1000"
disableUploadTimeout="true"
connectionTimeout="20000"
URIEncoding="UTF-8"
enableLookups="false"
compression="on"
compressionMinSize="2048"
compressableMimeType="text/html,text/xml,text/javascript,text/css,text/plain,image/gif,image/jpg,image/png"
redirectPort="8443" />
#参数说明:
org.apache.coyote.http11.Http11NioProtocol:调整工作模式为Nio
maxThreads:最大线程数,默认150。增大值避免队列请求过多,导致响应缓慢。
minSpareThreads:最小空闲线程数。
maxSpareThreads:最大空闲线程数,如果超过这个值,会关闭无用的线程。
acceptCount:当处理请求超过此值时,将后来请求放到队列中等待。
disableUploadTimeout:禁用上传超时时间
connectionTimeout:连接超时,单位毫秒,0代表不限制
URIEncoding:URI地址编码使用UTF-8
enableLookups:关闭dns解析,提高响应时间
compression:启用压缩功能
compressionMinSize:最小压缩大小,单位Byte
compressableMimeType:压缩的文件类型