LNMP---Tomcat_JDK安装、安装zrlog、nginx代理tomcat、 第二个java应用

原创
2019/10/23 17:55
阅读数 48

4.58、Tomcat_JDK安装
4.59、安装zrlog
4.60、nginx代理tomcat
4.61、第二个java应用

一、Tomcat_JDK安装

JAVA 应用要运行起来,需要一个JVM(JAVA虚拟机),JDK可以提供这个虚拟机

JVM ---> JDK

JDK到Oracle官方下载:

https://www.oracle.com/technetwork/java/javase/downloads/index.html

openjdk是开源的,可以直接安装。

此处实验使用openjdk

CentOS7上使用yum安装openjdk:

查找到安装包并安装:

yum list |grep jdk
yum install -y java-1.8.0-openjdk

Tomcat官方网站:

http://tomcat.apache.org/

到官网下载二进制包(Binary Distributions):

wget https://mirrors.tuna.tsinghua.edu.cn/apache/tomcat/tomcat-9/v9.0.27/bin/apache-tomcat-9.0.27.tar.gz

安装Tomcat

tar zxvf apache-tomcat-9.0.27.tar.gz
mv apache-tomcat-9.0.27 /usr/local/tomcat    #解压完后可以直接使用

启动:

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

关闭:

/usr/local/tomcat/bin/shutdown.sh

查看端口

netstat -lntp |grep java   

tomcat有三个端口:
8080 为WEB端口
8005 shutdown(管理端口)
8009 AJP端口(第三方的应用连接这个接口,和Tomcat结合起来),可以关闭

查看进程

ps aux |grep java   或    ps aux |grep tomcat

二、安装zrlog

zrlog 是一款开源的JAVA应用,博客系统
官网: https://www.zrlog.com/

下载并改名:

wget 'http://dl.zrlog.com/release/zrlog-2.1.3-b5f0d63-release.war?attname=ROOT.war&ref=index'

mv zrlog-2.1.3-b5f0d63-release.war\?attname\=ROOT.war\&ref\=index zrlog-2.1.3.war   #.war包不需要解压,直接放到tomcat的webapps目录中,自动解压

安装:

mv zrlog-2.1.3.war /usr/local/tomcat/webapps/

cd /usr/local/tomcat/webapps/

放到webapps这个目录下,会自动解压

添加防火墙规则:

firewall-cmd --add-port=8080/tcp --permanent
firewall-cmd --reload

浏览器访问默认页面 :

ip:8080

浏览器默认访问的是ROOT的默认页面,如果要访问zrlog,需要ip:8080/zrlog,或者先把ROOT备份,在直接把zrlog-2.1.3改成ROOT,当浏览器直接访问ip:8080时,可以直接安装

mv ROOT ROOT.bak 原始的ROOT做备份 mv zrlog-2.1.3 ROOT

 

数据库操作:

mysql -uroot -ptobe123 -e "create database zrlog"
mysql -uroot -ptobe123 -e "grant all on zrlog.* to 'zrlog'@'127.0.0.1' identified by 'zrlog-pass'"


zrlog.*  针对zrlog库中所有的表
用户是zrlog
密码为zrlog-pass

三、nginx代理tomcat

为什么要为Tomcat配置反向代理?

1)如果同一台机器又有Nginx又有Tomcat,则会产生端口冲突。
2)我们需要把8080端口变成默认的80端口
3)Nginx对于静态的请求速度上要优于Tomcat,Tomcat不擅长做高并发的静态文件请求处理

配置虚拟主机:

vi /etc/nginx/conf.d/zrlog.tobe.cc

server {

        server_name zrlog.tobe.cc;

        location /
        {
            proxy_pass http://127.0.0.1:8080;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        }
}

配置完成后,绑定Hosts,使用域名到浏览器访问即可,也可以在虚拟主机中配置访问日志、日志切割等

四、第二个java应用

方法一:

#把ROOT恢复成刚开始的样子

在配置文件部署一个新的虚拟主机:

/usr/local/tomcat/conf/server.xml

<Host name="www.zrlog.cc"  appBase="/data/wwwroot/zrlog.cc"
      unpackWARs="true" autoDeploy="true">
 </Host>


name后面是域名
appBase是应用所在的路径,当tomcat重启后,会在此目录创建站点文件夹,在此目录下部署应用,需要把war的包放到这里来
unpackWARs=”true” 是否自动解压;(也就是说,当我们往站点目录里面直接上传一个war的包,它会自动解压)

重启:

/usr/local/tomcat/bin/shutdown.sh  #先关闭
/usr/local/tomcat/bin/startup.sh # 再开启        
    
启动时,8005端口起来非常慢,这是因为tomcat在启动时会调用系统的一个随机字符设备

当tomcat完全启动后,会在配置文件中设置的位置生成对应目录

把网站war包放到该目录下会自动解压

cp /usr/local/src/zrlog-2.1.3.war /data/wwwroot/www.zrlog.cc/

解压完成后    mv zrlog-2.1.3 ROOT  改名为ROOT

然后把war包删除,否则解压后的包改名后还会自动解压

绑定hosts,然后到浏览器访问: www.zrlog.cc:8080

浏览器访问:www.zrlog.cc:8080,如果不加后面的端口8080,可以继续在nginx中配置虚拟主机,然后直接使用域名访问即可。

 

方法二:可以省略创建虚拟主机

在启动一个tomcat服务,监听不同的端口

拷贝一个tomcat目录,修改server.xml里面的三个端口(其中8009可以删掉,8080改为8081,8005改为8006)

cp -r tomcat/ tomcat_2

vim /usr/local/tomcat_2/conf/server.xml    修改里面的三个端口,并把最后的host修改或删除

/usr/local/tomcat_2/bin/startup.sh  启动第二个tomcat
/usr/local/tomcat_2/bin/shutdown.sh  关闭第二个tomcat

firewall-cmd --add-port=8081/tcp --permanent  8081端口加入白名单
firewall-cmd --reload

浏览器访问:  ip:8081

 

小常识:增加tomcat启动速度

通过java.security.SecureRandom生成随机数来实现,随机数算法使用的是"SHA1PRNG",这个算法的提供者在底层依赖到操作系统提供的随机数据,在linux上,与之相关的是/dev/random和/dev/urandom。

/dev/random设备会返回小于熵池噪声总数的随机字节。/dev/random可生成高随机性的公钥或一次性密码本。若熵池空了,对/dev/random的读操作将会被阻塞,直到收集到了足够的环境噪声为止,而 /dev/urandom 则是一个非阻塞的发生器。它是/dev/random的一个副本,它会重复使用熵池中的数据以产生伪随机数据。这表示对/dev/urandom的读取操作不会产生阻塞,但其输出的熵可能小于/dev/random。

总之,8005端口启动慢就是因为JVM调用了系统的/dev/random设备生成随机数,而/dev/random生成随机数时被block了,自然就会导致8005端口启动慢,解决办法是不使用/dev/random,而是使用/dev/urandom。

具体步骤如下:

# vim $JAVA_HOME/jre/lib/security/java.security   //将securerandom.source=file:/dev/random改为securerandom.source=file:/dev/urandom
然后重启

$JAVA_HOME在哪里?
如果是openjdk(yum安装的),在/usr/lib/jvm/
如果是下载的二进制包,就是jdk的主目录(如/usr/local/jdk_1.8)
展开阅读全文
打赏
0
0 收藏
分享
加载中
更多评论
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部