使用1panel布置前后端别离项目 Java代码打包 前端打包
初度发布于我的个人文档
参阅:
1.1Panel 官方文档
本文介绍一下怎么使用1panel布置一个简略的前后端别离项目。
1,具有一个Liunx服务器
第一步是购买一个Linux服务器,能够买一台线下实在的机器+公网IP或买一个阿里云、腾讯云、京东云、华为云服务器。
2.装置1panel
参阅1panel官方文档,装置1panel。
在这儿以Ubuntu体系为例,只需运转
curl -sSL https://resource.fit2cloud.com/1panel/package/quick_start.sh -o quick_start.sh && sudo bash quick_start.sh
即可装置,装置完成后终端上有写1panel的URL和账号名暗码。
3.装置运转环境
在虚拟机中装置java等运转环境。
然后,能够在1panel中装置项目需求的中间件,如MySQL、minio、redis等。
4.打包后端项目
先介绍一下怎么打包maven项目。
需求留意的是,你或许会发现在idea的maven菜单里,现已有一个package选项了,可是默许情况下这样打的包是不带项目依靠的。所以这样的jar包不能独立运转。
可是假如你用的是spring boot项目,则pom.xml中或许现已装置了插件spring-boot-maven-plugin
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<excludes>
<exclude>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</exclude>
</excludes>
</configuration>
</plugin>
</plugins>
假如pom.xml有这样的代码则阐明maven有插件spring-boot-maven-plugin。
这时直接在idea的maven菜单运转package选项就得到带依靠的jar包了,能够直接java -jar运转。
以布置笔者的teaai项目为例,打包后你会在target文件夹下看到teaai-backend-0.0.1-SNAPSHOT.jar,这便是打包后的jar文件,直接运转即可发动后端服务。
关于非spring boot项目又该怎么打包呢?
需求装置maven-assembly-plugin插件,办法如下:
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
<version>3.3.0</version><!-- 插件版别号 -->
<configuration>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
<archive>
<manifest>
<mainClass>edu.zafu.teaai.MainApplication</mainClass>
<!-- 替换为你的主类的完好类名 -->
</manifest>
</archive>
</configuration>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
然后再运转package即可。
关于gradle项目,没有什么太大的差异。
这儿只介绍一般的gradle项目怎么打带依靠的jar包。
gradle依靠打包需求装置shadow插件,在build.gradle.kts中的plugins,添加这样的代码:
plugins {
id("com.gradleup.shadow") version "8.3.3"
}
然后添加shadow使命,相同仍是在build.gradle.kts中添加一下代码:
tasks {
shadowJar {
archiveBaseName.set("nocrud")
archiveVersion.set("")
manifest {
attributes["Main-Class"] = "cn.cola.nocrud.MainKt"
}
}
}
这段代码以笔者的nocrud项目为例,在上面的代码中nocrud是你项目的称号,attributes["Main-Class"] = "cn.cola.nocrud.MainKt"
则规则了主类。
需求留意的是,假如你的主类是一个kotlin代码,则需求再本来的类名后边加上Kt,这是由于kotlin是一个jvm言语,编译后你会发现kotlin编译器会在一切的kotlin类称号后边加上Kt。
完成了这些,改写一下项目,你会发现idea的gradle菜单中新增了一个shadow使命,双击shadowJar指令履行即可打包。
打包完的jar包在build/libs目录内。
5.发动后端项目
在1panel-主机-文件中上传打包后的jar包。
然后到网站-运转环境-java中运转后端项目。
当然假如你的后端是go言语或php或nodejs那么就去对应的页面。
本文以java项目为例,挑选创立运转环境,设置称号和java sdk版别,将运转目录设置为jar包的上传目录。
在发动指令一栏输入完好的发动指令,如
java -jar ./teaai-backend-0.0.1-SNAPSHOT.jar
然后留意,1panel和浮屠面板有所不同,1panel的后端项目也是依据容器化布置的,需求填写应用在容器内的拜访端口和容器外的端口。
然后翻开端口外部拜访并设置容器称号。
点击确认即可。
最终提示一下,由于1panel是容器化布置,而在容器内localhost指向的是容器内部的地址,假如想拜访容器网外的本机的其他容器请使用本机的实在内网IP。
6.布置其他中间件
这儿需求依据中间件的不同进行布置,如联系型数据库需求建表等。
7.打包前端项目
这儿以打包teaai项目为例,teaai是一个vue项目。
用WebStrom翻开teaai前端项目,一般来说当你使用vue-cli创立项目时,在package.json中有这样的指令。
"build": "run-p type-check \"build-only {@}\" --",
你能够直接点击WebStorm左面的运转按钮运转,也能够在终端中输入
npm run build
打包项目。
当然,假如你用pnpm或yarn等运转这个指令也相同。
打包后你将在dist目录下看到打包后的成果。
8.发动前端项目
进入1panel-网站-运转环境-php创立一个php运转环境,拓宽模版挑选“默许”即可。
然后去你的DNS服务商装备域名解析(这个因服务商而不同,在此无法演示)。
接下来进入1panel面板-网站-网站,假如你没有装置OpenResty(你能够理解为nginx增强版)则1panel会提示你装置。
在网站页面挑选创立网站-运转环境-挑选刚刚创立的php运转环境
(假如你的网站是静态网站也能够不创立php运转环境而直接选静态网站)
输入网站的域名和需求拜访的端口号,点击确认。
你会看到1panel页面的表格中多了一条记载,点击其间的网站目录下的文件夹图标,进入文件界面上传前端打包的dist目录的内容。
接着。假如要设置署理和https服务的话,回到刚刚的1panel-网站-网站页面,点击网站记载右边的装备,在这儿能够对网站进行限流、反向署理、装备HTTPS服务等操作。
假如敞开了https服务,记住在防火墙翻开443端口!