1. 前言

tomcat是一款开源软件,是运行Java后端程序的,简单来说就是执行.jsp程序的,tomcat自身也可以运行静态资源,如html,css等,但通常tomcat还是会配合appache或nginx使用,以达到更好的性能。其官网是tomcat.apache.org

JPress号称是Java版的wordpress(一款基于PHP的开源博客程序),而且是国人开发的,不过不知为何目前官网打不开。

我使用的安装环境如下:

  • Windows-10
  • VMware-Workstation-12-Pro
  • CentOS-7.5
  • Xshell-5-Free for Home

总体操作步骤概况:

  • 下载jpress-web-newest.war安装包(

    • 可以到gitee.com/fuhai/jpress/tree/alpha/wars这里下载
  • yum安装tomcat-7.0(准备好EPEL源)
  • yum安装MySQL5.7(官方源)
    • 创建远程连接账号密码
    • 提前创建一个jpress库
  • 安装jpress
    • 浏览器访问10.0.0.7:8080/jpress-web-newest安装
  • 配置tomcat使其可以部署多个网站
    • 将jpress转移到/usr/share/tomcat/webapps-jpress
    • 修改/usr/share/tomcat/conf/server.xml
  • yum安装nginx-1.14(官方源)
    • 对nginx进行一些基础优化
    • 配置nginx jpress.conf实现代理tomcat

jpress-web-newest.war是一个java压缩包,里面包含了jpress源码,后面我们会说如何解压。

2. yum安装tomcat

  1. [root@web01 ~]# hostname -I
  2. 10.0.0.7 172.16.1.7
  3. [root@web01 ~]# yum install tomcat tomcat-webapps tomcat-admin-webapps -y
  4. [root@web01 ~]# systemctl restart tomcat
  5. [root@web01 ~]# netstat -lntup | grep 8080

tomcat默认监听在8080端口,注意不能冲突,默认的代码存放位置是/usr/share/tomcat/webapps/,安装完毕之后直接在浏览器中访问可看到默认页面:

2. yum安装MySQL

全新安装MySQL5.7,授权远程连接用户,创建jpress数据库:

  1. [root@db01 ~]# hostname -I
  2. 10.0.0.51 172.16.1.51
  3. [root@db01 ~]# yum install mysql-community-server -y
  4. [root@db01 ~]# mysql -uroot -p$(awk '/temporary password/ {print $NF}' /var/log/mysqld.log) \
  5. --connect-expired-password -e "ALTER USER 'root'@'localhost' IDENTIFIED BY 'As4k.top'";
  6. #创建账号并授权(这里把权限打满)
  7. [root@db01 ~]# mysql -uroot -pAs4k.top -e 'GRANT ALL PRIVILEGES ON *.* TO "as4k"@"%" IDENTIFIED BY "As4k.top"';
  8. #创建jpress数据库
  9. [root@db01 ~]# mysql -uroot -pAs4k.top -e "CREATE DATABASE jpress";

我这里的数据库是单独存放在一台机器上的,如果是本地机器,则准备好MySQL本机root账号密码即可。

3. 下载JPress并安装

  1. [root@web01 ~]# hostname -I
  2. 10.0.0.7 172.16.1.7

1 可以到这下载0.4版本的war包

  1. https://gitee.com/fuhai/jpress/blob/alpha/wars/jpress-web-newest.war

2 把jpress-web-newest.war移动到/usr/share/tomcat/webapps/,并且刷新一下10.0.0.7:8080,之后就会看到war包被tomcat自动解压了。

  1. [root@web01 webapps]# ls -lh /usr/share/tomcat/webapps/
  2. total 20M
  3. drwxr-xr-x 8 tomcat tomcat 127 Oct 3 16:24 examples
  4. drwxr-xr-x 5 root tomcat 87 Oct 3 16:24 host-manager
  5. drwxr-xr-x 7 tomcat tomcat 102 Oct 3 16:42 jpress-web-newest
  6. -rw-r--r-- 1 root root 20M Sep 19 2016 jpress-web-newest.war
  7. drwxr-xr-x 5 root tomcat 103 Oct 3 16:24 manager
  8. drwxr-xr-x 3 tomcat tomcat 306 Oct 3 16:24 ROOT
  9. drwxr-xr-x 5 tomcat tomcat 86 Oct 3 16:24 sample

jpress-web-newest.war是我们移动过来的。jpress-web-newest目录是tomcat帮我们解压的,其它目录都是之前就已经存在的,不用管。

3 浏览器访问10.0.0.7:8080/jpress-web-newest开始安装JPress

安装流程和其它产品基本一致,无外乎是提供数据库信息和创建网站管理员账号。

安装完毕需要重启一次tomcat,才可以正常访问。

  1. [root@web01 ~]# systemctl restart tomcat

jpress首页http://10.0.0.7:8080/jpress-web-newest/

jpress后台管理页面http://10.0.0.7:8080/jpress-web-newest/admin/

到目前为止,我们的JPress已经可以单独使用了,接下来我们利用nginx代理转发功能,配置nginx让它们协同工作。

4. 配置tomcat使其可以部署多个网站

读者如果熟悉nginx使用的话,可能会有个疑问,每次访问jpress博客,都需要输入10.0.0.7:8080/jpress-web-newest/这么一大串,默认端口不用80也就不说了,还需要输入自己输入目录结构,显然不太合理,并且这样做的话,nginx配置代理转发就玩不转了,因此我们需要把jpress给搬移到一个合适的位置。

我们知道直接访问10.0.0.7:8080打开的是tomcat默认页面,这个页面的代码是写在/usr/share/tomcat/webapps/ROOT/目录里的,当然可以把这里面的内容全部删除,然后把jpress代码mv进来,显然这不是最佳解决方案,如果还需要安装其它产品,又玩不转了。

最终我们觉得采用下述方案了部署第2个产品(默认是第1个,jpress是第2个):

  • 复制一份/usr/share/tomcat/webapps/
  • 修改/usr/share/tomcat/conf/server.xml,增加第2套配置

详细操作步骤如下:

1 复制一份webapps并命名为webapps-jpress

  1. [root@web01 ~]# cp -rp /usr/share/tomcat/webapps/ /usr/share/tomcat/webapps-jpress

注意目录属性,用户身份,需保持不变

2 把jpress的代码全部移动到/usr/share/tomcat/webapps-jpress

  1. [root@web01 webapps-jpress]# cd /usr/share/tomcat/webapps-jpress; pwd
  2. /usr/share/tomcat/webapps-jpress
  3. [root@web01 webapps-jpress]# rm -rf ROOT/*
  4. [root@web01 webapps-jpress]# mv jpress-web-newest/* ROOT/
  5. [root@web01 webapps-jpress]# ls -l /usr/share/tomcat/webapps-jpress/ROOT/
  6. total 4
  7. drwxr-xr-x 3 tomcat tomcat 38 Oct 3 16:42 META-INF
  8. -rw-r--r-- 1 tomcat tomcat 96 Jul 27 2016 robots.txt
  9. drwxr-xr-x 11 tomcat tomcat 139 Oct 3 16:42 static
  10. drwxr-xr-x 4 tomcat tomcat 31 Oct 3 16:42 templates
  11. drwxr-xr-x 6 tomcat tomcat 75 Oct 3 16:42 WEB-INF

3 修改/usr/share/tomcat/conf/server.xml

需要在/usr/share/tomcat/conf/server.xml添加一对Service标签,来是webapps-jpress文件生效,该文件里已经有一份默认Service标签是定义默认首页的,我们只需将其复制拷贝一份,再改改监听端口,即可据为己用,下面是一张去掉注释后的截图,可以作为对照:

  1. [root@web01 ~]# cat /usr/share/tomcat/conf/server.xml
  2. .....
  3. <!-- BEGIN JPress Config -->
  4. <Service name="webapps-jpress">
  5. <Connector port="7070" protocol="HTTP/1.1"
  6. connectionTimeout="20000"
  7. redirectPort="7443" />
  8. <Connector port="7009" protocol="AJP/1.3" redirectPort="7443" />
  9. <Engine name="webapps-jpress" defaultHost="localhost">
  10. <Realm className="org.apache.catalina.realm.LockOutRealm">
  11. <Realm className="org.apache.catalina.realm.UserDatabaseRealm"
  12. resourceName="UserDatabase"/>
  13. </Realm>
  14. <Host name="localhost" appBase="webapps-jpress"
  15. unpackWARs="true" autoDeploy="true">
  16. <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
  17. prefix="localhost_access_log." suffix=".txt"
  18. pattern="%h %l %u %t &quot;%r&quot; %s %b" />
  19. </Host>
  20. </Engine>
  21. </Service>
  22. <!-- END JPress Config -->
  23. .....

4 在浏览器中访问10.0.0.7:7070

可以先检查下端口监听是否正常,下图中7开头的端口,是我们jpress监听的端口:

最好还是再重启一下tomcat

[root@web01 ~]# systemctl restart tomcat

此时浏览器访问10.0.0.7:7070可以直接看到jpress页面:

5. 安装nginx并配置

下面就是配置nginx代理tomcat,实现域名直接访问jpress

1 安装nginx并进行一些基础优化

  1. [root@web01 ~]# hostname -I
  2. 10.0.0.7 172.16.1.7
  3. [root@web01 ~]# yum install nginx -y
  4. #添加虚拟用户www
  5. groupadd -g 666 www
  6. useradd -u666 -g666 -s /sbin/nologin -M www
  7. #设置nginx运行用户为www
  8. sed -i '/^user/c user www;' /etc/nginx/nginx.conf
  9. #设置nginx上传文件大小为2G
  10. grep 'client_max_body_size' /etc/nginx/nginx.conf
  11. [ $? -eq 1 ] && sed -i '/^http/a client_max_body_size 2048M;' /etc/nginx/nginx.conf

2 配置nginx jpress.conf

  1. [root@web01 ~]# cat /etc/nginx/conf.d/jpress.conf
  2. server {
  3. listen 80;
  4. server_name jpress.as4k.com;
  5. location / {
  6. proxy_pass http://127.0.0.1:7070/;
  7. proxy_set_header Host $http_host;
  8. proxy_set_header X-Real-IP $remote_addr;
  9. proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  10. proxy_connect_timeout 30;
  11. proxy_send_timeout 60;
  12. proxy_read_timeout 60;
  13. proxy_buffering on;
  14. proxy_buffer_size 32k;
  15. proxy_buffers 4 128k;
  16. }
  17. }
  18. [root@web01 ~]# nginx -t
  19. [root@web01 ~]# systemctl restart nginx

最关键的就是这一行proxy_pass http://127.0.0.1:7070/;

3 设置windows hosts文件解析

  1. C:\Windows\System32\drivers\etc\hosts
  2. 10.0.0.7 jpress.as4k.com

4 浏览器访问jpress.as4k.com

访问后台管理页面

6. 将已经安装好的jpress打包

本步骤是可选项,主要是为了方便在多台机器部署jpress,这里的打包就是Linux上的.tar.gz压缩包,比较简单就是利用tomcat把.war解压之后打成压缩包方便日后使用。但是我更喜欢一种更彻底的打包,把整个/usr/share/tomcat/webapps-jpress/打包,并且把数据库备份,以后再安装直接解压,导入数据库,搞定。

如果再此安装时,数据库连接信息变更,则需要修改数据库连接信息,使用下述命令可以查找jpress数据库连接信息在哪:

  1. [root@web01 ~]# grep -R 'As4k.top' /usr/share/tomcat/webapps-jpress/
  2. /usr/share/tomcat/webapps-jpress/ROOT/WEB-INF/classes/db.properties:db_password=As4k.top

打包目录使用tar命令即可:

  1. [root@web01 ~]# cd /usr/share/tomcat/; pwd
  2. /usr/share/tomcat/
  3. [root@web01 tomcat]# tar -zcf webapps-jpress.tar.gz webapps-jpress/

别忘了/usr/share/tomcat/conf/server.xml也要保留一份。

备份jpress数据库:

  1. [root@db01 ~]# mysqldump -uroot -p'As4k.top' --databases jpress > /root/jpress.sql

导入数据库可用 mysql -uroot -pAs4k.top < /root/jpress.sql

参考资料

Linux上搭建jpress(java版wordpress)

https://www.jianshu.com/p/c0b3be596860

http://tomcat.apache.org/

https://www.cnblogs.com/naaoveGIS/p/5478208.html

https://www.howtoing.com/run-deploy-multiple-web-applications-instances-tomcat-centos-ubuntu/

作者: 阿胜4K

出处: https://www.cnblogs.com/asheng2016/p/tomcat.html

jpress-配合nginx与tomcat安装的更多相关文章

  1. Nginx与Tomcat安装、配置与优化

    Nginx与Tomcat安装.配置与优化 Nginx与Tomcat安装.配置与优化 Nginx的安装与使用 Nginx是一款优秀的反向代理服务器 安装: rpm(或者是pkg安装),是预编译好的程序包 ...

  2. tomcat 安装配置部署到nginx+tomcat+https

    目录 1 Tomcat简介 2.下载并安装Tomcat服务 2.2 部署java环境 2.3 安装Tomcat 2.4 Tomcat目录介绍 (关注点 bin conf logs webapps) 2 ...

  3. nginx+tomcat安装配置

    nginx+tomcat安装配置 # nginx+tomcat安装配置 #创建网站目录 mkdir -p /www/wwwroot cd /www #安装配置 wget http://mirrors. ...

  4. CentOS7.0 采用压缩包 安装Nginx 1.7.4和添加Tomcat为系统服务 nginx结合tomcat

    CentOS7.0 采用压缩包 安装Nginx 1.7.4  一.安装准备首先由于nginx的一些模块依赖一些lib库,所以在安装nginx之前,必须先安装这些lib库,这些依赖库主要有g++.gcc ...

  5. Nginx+Keepalived+Tomcat高可用负载均衡,Zookeeper集群配置,Mysql(MariaDB)搭建,Redis安装,FTP配置

    JDK 安装步骤 下载 http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html rpm ...

  6. tomcat单机多应用部署配合Nginx负载均衡

    一.Windows 配置tomcat . 安装两个tomcat服务器以上 . 配置环境变量 CATALINA_BASE:D:\servers\Tomcat8 CATALINA_HOME:D:\serv ...

  7. nginx下载,安装,基础命令,和代理tomcat例子理解

    nginx代理讲的很好理解:https://www.cnblogs.com/ysocean/p/9392908.html 一.nginx应用场景: 1.反向代理(用的非常多) 客户端发出请求,反向代理 ...

  8. 初识Nginx及编译安装Nginx

    初识Nginx及编译安装Nginx 环境说明: 系统版本    CentOS 6.9 x86_64 软件版本    nginx-1.12.2 1.什么是Nginx? 如果你听说或使用过Apache软件 ...

  9. Nginx服务器之Nginx与tomcat结合访问jsp

    本文使用linux centos系统 本文概述: JSP是一种动态网页技术标准.使用的方式是在HTML文件中插入程序段和JSP标记,而形成JSP文件.使用JSP开发WEB应用可以跨平台开发.但jsp需 ...

随机推荐

  1. SeaJS之use函数

    有了 define 等模块定义规范的实现,我们可以开发出很多模块.但光有一堆模块不管用,我们还得让它们能跑起来.在 SeaJS 里,要启动模块系统很简单: <script src=”path/t ...

  2. 【基础】java类的各种成员初始化顺序

    父子类继承时的静态代码块,普通代码块,静态方法,构造方法,等先后顺序 前言: 普通代码块:在方法或语句中出现的{}就称为普通代码块.普通代码块和一般的语句执行顺序由他们在代码中出现的次序决定--“先出 ...

  3. 【ORACLE 】 ORA-00031 标记要删去的会话(解决)

    在使用Oracle的过程中,会有使用了锁(for update)但又忘记释放锁的情况.这是就需要用到KILL语句了.(如果不知道KILL语句怎么用,可参考: http://www.cnblogs.co ...

  4. Volley overview

    https://developer.android.com/training/volley/   需FQ https://developer.android.google.cn/training/vo ...

  5. PHP服务器访问优化

    常规的优化措施: 磁盘写入,网络安全,证书加密,CPU,内存,DNS解析,数据库优化,页面gzip压缩 PHP gzip压缩打开: 打开php目录下的php.ini文件,找到zlib.output_c ...

  6. MAC SVN 基本设置 终端命令

    extends:http://www.cnblogs.com/heiniuhaha/archive/2012/07/31/2616493.html 安装XCode后Mac OS X 系统已经内置了sv ...

  7. Unity3D笔记十八 GL图像库

    1.绘制2D图像的时需要使用GL.LoadOrtho()方法来将图形映射到平面中. 2.所有绘制相关的内容都要写在OnPostRender()方法中. 3.有关GL图像库的脚本需要绑定到Hierarc ...

  8. linux逻辑卷管理 (LVM)(转)

    1.什么是 LVM LVM 是逻辑盘卷管理(Logical Volume Manager)的简称,它是 Linux 环境下对磁盘分区进行管理的一种机制,LVM 是建立在硬盘和分区之上的一个逻辑层,来为 ...

  9. git--指定不上传的文件夹

    在使用 vue-cli 脚手架的时候,有一个依赖模板文件夹是不希望被上传到git上的,因为里面文件太多了. 解决办法:手动创建git忽略push清单,node_module以及自身 1.文件夹内右键g ...

  10. R生存分析AFT

    γ = 1/scale =1/0.902 α = exp(−(Intercept)γ)=exp(-(7.111)*γ) > library(survival) > myfit=survre ...