首页 > 编程语言 >3、实战案例:部署基于JAVA的博客系统JPress

3、实战案例:部署基于JAVA的博客系统JPress

时间:2023-05-31 23:32:06浏览次数:61  
标签:JAVA ubuntu2004 JPress 端口 博客 jpress 8080 meng root

官方网站:http://www.jpress.io/

安装包下载

第一步:
[root@ubuntu2004]#mkdir /data/jpress/ -p 创建网站数据存放的目录,ROOT可以不建
把下载好的包拉进/data/jpress/目录,并改名为ROOT.war,它会自动解压成一个ROOT文件夹
[root@ubuntu2004 jpress]#rz -E
rz waiting to receive.
[root@ubuntu2004 jpress]#ls
jpress-v4.2.0.war
[root@ubuntu2004 jpress]#mv jpress-v4.2.0.war ROOT.war
[root@ubuntu2004 jpress]#ls
ROOT.war

第二步:更改server配置文件
[root@ubuntu2004 jpress]#vim /usr/local/tomcat/conf/server.xml
      </Host>
      <Host name="jpress.meng.com"  appBase="/data/jpress" unpackWARs="true" autoDeploy="true">
      </Host>
[root@ubuntu2004 jpress]#chown -R tomcat. /data/jpress/   更改权限
[root@ubuntu2004 jpress]#systemctl restart tomcat.service
[root@ubuntu2004 jpress]#ls
ROOT  ROOT.war
做DNS解析   10.0.0.100 jpress.meng.com
去网页访问 jpress.meng.com:8080 出现jpress页面
在MySQL中创建账号并授权
修改身份验证插件(改成传统的)MySQL8.0需要修改认证插件 
[root@ubuntu2004 ~]#vim /etc/mysql/mysql.conf.d/mysqld.cnf
[mysqld]
default_authentication_plugin=mysql_native_password
重启MySQL
[root@ubuntu2004 ~]#systemctl restart mysql.service

mysql> create database jpress;
Query OK, 1 row affected (0.07 sec)

mysql> create user jpress@'127.0.0.1' identified by '123456';
Query OK, 0 rows affected (0.00 sec)

mysql> grant all on jpress.* to jpress@'127.0.0.1';
Query OK, 0 rows affected (0.01 sec)
去jpress网站输入信息创建jpress博客
端口号问题: 8080端口映射80端口
在server.xml配置文件中把8080端口改成80端口重启tomcat后,会发现服务是启动的,但是80端口却没有监听
因为1023以内是特权端口,普通用户tomcat是无法使用的
解决办法:
1、在/lib/systemd/system/tomcat.service文件中把User和Group改成root运行(危险)
systemctl daemon-reload && systemctl restart tomcat
ss -ntlp 可查看到80端口
浏览器访问 jpress.meng.org也可以不用带端口
2、可用防火墙规则更改端口映射(要在server.xml配置文件中把80端口恢复成8080端口并重启)
[root@ubuntu2004 ~]#iptables -t nat -A PREROUTING -d 10.0.0.100 -p tcp --dport 80 -j REDIRECT --to-ports 8080
ss -ntlp 可查看到8080端口
浏览器访问 jpress.meng.org也可以不用带端口
3、利用nginx反向代理,把用户请求调度到8080
安装nginx
apt -y install nginx
[root@ubuntu2004 ~]#vim /etc/nginx/sites-enabled/jpress.conf
server {
    listen 80;
    server_name jpress.meng.com;
    location / {
       proxy_pass http://jpress.meng.com:8080;
  }
}
nginx -s reload

[root@ubuntu2004 ~]#vim /etc/hosts   DNS解析
127.0.0.1 jpress.meng.com

最好方法是加主机头,不用解析
[root@ubuntu2004 ~]#vim /etc/nginx/sites-enabled/jpress.conf
server {
    listen 80;
    server_name jpress.meng.com;
    location / {
       proxy_pass http://127.0.0.1:8080;  #指向TOMCAT主机+端口
       proxy_set_header host $http_host;
  }
}


标签:JAVA,ubuntu2004,JPress,端口,博客,jpress,8080,meng,root
From: https://blog.51cto.com/mfc001/6391107

相关文章

  • [SprigMVC/SpringBoot] JSON序列化专题之日期序列化问题:接口报Jackson框架错误“Inva
    0序言今日工作中遇到的一个bug。各位看官且听我娓娓道来。1问题描述请求接口时,service层返回到controller层的数据结构为List<Map<Strig,Object>>,而Map中存在一个key=date,valuetype=java.time.LocalDate的Entry,且日志报如下错误:InvalidDefinitionException:Java8date......
  • Java中序列化和反序列化解释
    在Java中,序列化(Serialization)是指将对象的状态转换为字节流的过程,以便将其保存到文件、在网络中传输或持久化到数据库中。而反序列化(Deserialization)则是将字节流转换回对象的过程,恢复对象的状态。序列化和反序列化主要用于以下场景:1.对象持久化:通过序列化,可以将对象的状态保存......
  • 学习JavaSE基础-day1
    JRE和JDKJRE:Java运行环境,如果想要运行Java程序至少要安装JREJDK:Java开发环境(开发工具包),如果要开发Java程序,必须安装JDKJRE=JVM+核心类库JDK=JRE+开发工具包JDK>JRE>JVM关系如图所示: JDK下载地址:www.oracle.com配置Path环境变量:希望可以在命令窗口的任意的......
  • Java开发必备软件合集
    IDEA安装详情,包含激活教程,和相关配置教程。IDEA安装配置步骤详解 IntelliJIDEA中有什么让你相见恨晚的技巧IDEA快捷键大全 Navicat安装教程,激活教程navicat介绍(包含安装指导) IDEAvsEclipse:使用体验对比IDEA对比 【待更新】......
  • 【Java】线程池配置
     先看JUC包自带的一个资源线程池执行器:初始化参数如下ThreadPoolExecutorthreadPoolExecutor=newThreadPoolExecutor(corePoolSize,//核心线程数量maximumPoolSize,//峰值线程数量keepAliveTime,//保留时限,当线程数量超出峰值数量时,保......
  • 【随手记录】关于Java字符串长度
    在java当中,在运行期间,字符串的长度是有最大限制的:21亿,也就是4GB;在编译期间,字符串的长度最大为:65534。字符串的内容是由一个字符数组char[]来存储的,由于数组的长度及索引是整数,Integer的最大范围是2^31-1,所以数组的最大长度可以使【0~2^31-1】通过计算是大概4GB=(2*2^31-......
  • Java并发之原子性、可见性和有序性
    1.原子性1.1原子性的定义原子性:原子性即是一个或者多个操作,要么全程执行,并且执行的过程中不被任何因素打断,要么全部不执行。举个例子会更好理解:就像是我们去银行转账的时候,A给B转1000元,如果A的账户减少了1000之后,那么B的账户一定要增加1000。A的账户减钱,B的账户加钱,这两个操作......
  • 源代码管理工具介绍博客
    源代码管理工具是用于跟踪和管理软件开发过程中的源代码的工具。它们提供了一种协作和版本控制的方法,使团队成员能够同时开发和修改代码,同时记录和跟踪代码的变更历史。以下是几个常见的源代码管理工具:Git:Git是目前最流行的分布式版本控制系统。它具有高效的分支和合并......
  • Java 微服务中的聚合器设计模式示例
    微服务架构中的聚合器设计模式是一种设计模式,用于通过聚合多个独立的微服务的响应来组成一个复杂的服务。它也是与SAGA、CQRS和EventSourcing一起的基本微服务设计模式之一。当客户端请求需要跨多个微服务分布的数据或功能时,此模式是合适的。可以提高系统的性能和可扩展性通过允许......
  • 揭开 JavaScript 事件循环的神秘面纱
    Javascript是一种单线程语言,这意味着它一次只能执行一个任务。但是,它仍然设法同时执行多项任务。它通过使用一些复杂的数据结构给人一种多线程的错觉。为实现这一点,Javascript引擎有一个称为事件循环的重要组件。我们将了解什么是事件循环以及它如何在不阻塞主线程的情况下处理异......