forked from itwanger/paicoding
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
12 changed files
with
400 additions
and
63 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,205 @@ | ||
环境安装 | ||
--- | ||
|
||
## jdk安装 | ||
|
||
```bash | ||
# ubuntu | ||
apt install openjdk-8-jdk | ||
|
||
# centos | ||
yum install openjdk-8-jdk | ||
``` | ||
|
||
安装完毕之后,执行 `java` , `javac`命令进行验证 | ||
|
||
## maven安装 | ||
|
||
```bash | ||
cd ~ | ||
mkdir soft | ||
cd soft | ||
wget https://dlcdn.apache.org/maven/maven-3/3.8.6/binaries/apache-maven-3.8.6-bin.tar.gz | ||
tar -zxvf apache-maven-3.8.6-bin.tar.gz | ||
|
||
vim ~/.bashrc | ||
|
||
# 在最后添加环境变量 | ||
export M2_HOME=/home/admin/soft/apache-maven-3.8.6 | ||
PATH=$M2_HOME/bin:$PATH | ||
|
||
# 配置生效 | ||
source ~/.bashrc | ||
``` | ||
|
||
配置完成之后执行命令 `mvn --version` 进行验证 | ||
|
||
国内添加阿里的镜像源,加快下载速度 | ||
|
||
```bash | ||
vim ~/soft/apache-maven-3.8.6/conf/settings.xml | ||
|
||
# 在<mirros>标签中,添加下面的镜像源 | ||
|
||
<mirror> | ||
<id>alimaven</id> | ||
<name>aliyun-maven</name> | ||
<url>http://maven.aliyun.com/nexus/content/groups/public/</url> | ||
<mirrorOf>central</mirrorOf> | ||
</mirror> | ||
``` | ||
|
||
## nginx配置 | ||
|
||
配置访问域名 | ||
|
||
```bash | ||
cd /usr/local/nginx/conf/ | ||
|
||
vim nginx.conf | ||
|
||
# 添加子域名解析,每个域名一个独立的配置文件 | ||
# 在http的一级标签中,添加如下一行配置,表示在conf.d文件下的所有conf结尾的文件,都属于我们需要使用的nginx配置信息 | ||
include /usr/local/nginx/conf/conf.d/*.conf; | ||
``` | ||
|
||
添加论坛的域名解析规则 | ||
|
||
```conf | ||
vim conf.d/forum.conf | ||
# 内容如下 | ||
upstream forum_host { | ||
server 127.0.0.1:8080; | ||
} | ||
server { | ||
server_name forum.hhui.top; | ||
gzip on; | ||
gzip_buffers 32 4K; | ||
gzip_comp_level 6; | ||
gzip_min_length 100; | ||
gzip_types application/javascript text/css text/xml; | ||
gzip_disable "MSIE [1-6]\."; #配置禁用gzip条件,支持正则。此处表示ie6及以下不启用gzip(因为ie低版本不支持) | ||
gzip_vary on; | ||
location ~* ^.+\.(ico|gif|jpg|jpeg|png)$ { | ||
access_log off; | ||
expires 1d; | ||
proxy_pass http://forum_host; | ||
proxy_set_header Host $host; | ||
proxy_set_header X-Real-IP $remote_addr; | ||
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; | ||
} | ||
location ~* ^.+\.(css|js|txt|xml|swf|wav|pptx)$ { | ||
access_log off; | ||
expires 10m; | ||
proxy_pass http://forum_host; | ||
proxy_set_header Host $host; | ||
proxy_set_header X-Real-IP $remote_addr; | ||
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; | ||
} | ||
location / { | ||
proxy_set_header X-real-ip $remote_addr; | ||
proxy_pass http://127.0.0.1:8080/; | ||
proxy_redirect default; | ||
} | ||
listen 443 ssl; # managed by Certbot | ||
ssl_certificate /usr/local/nginx/conf/conf.d/cert.pem; | ||
ssl_certificate_key /usr/local/nginx/conf/conf.d/key.pem; | ||
ssl_stapling on; | ||
ssl_stapling_verify on; | ||
resolver 8.8.8.8 8.8.4.4 1.1.1.1 valid=60s; | ||
resolver_timeout 2s; | ||
} | ||
server { | ||
if ($host = forum.hhui.top) { | ||
return 301 https://$host$request_uri; | ||
} # managed by Certbot | ||
listen 80; | ||
server_name forum.hhui.top; | ||
return 404; # managed by Certbot | ||
} | ||
``` | ||
|
||
证书使用let's encrypt生成 | ||
|
||
## 配置调整 | ||
|
||
线上部署时,选择prod环境,因此需要设置对应的数据库相关配置信息 | ||
|
||
resources-env/prod/application-dal.yml | ||
|
||
```yml | ||
spring: | ||
datasource: | ||
url: jdbc:mysql://xxx/forum?useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghai | ||
username: xxx | ||
password: xxx | ||
``` | ||
根据实际的情况进行修改 | ||
## 启动脚本 | ||
基于源码的部署脚本 | ||
```bash | ||
#!/usr/bin/env bash | ||
|
||
WEB_PATH="forum-web" | ||
JAR_NAME="forum-web-0.0.1-SNAPSHOT.jar" | ||
|
||
# 部署 | ||
function start() { | ||
git pull | ||
|
||
# 杀掉之前的进程 | ||
cat pid.log| xargs -I {} kill {} | ||
mv ${JAR_NAME} ${JAR_NAME}_bk | ||
|
||
mvn clean install -Dmaven.test.skip=True -Pprod | ||
cd ${WEB_PATH} | ||
mvn clean package spring-boot:repackage -Dmaven.test.skip=true -Pprod | ||
cd - | ||
|
||
mv ${WEB_PATH}/target/${JAR_NAME} ./ | ||
nohup java -server -Xms512m -Xmx512m -Xmn512m -XX:NativeMemoryTracking=detail -XX:-OmitStackTraceInFastThrow -jar ${JAR_NAME} > /dev/null 2>&1 & | ||
echo $! 1> pid.log | ||
} | ||
|
||
# 重启 | ||
function restart() { | ||
# 杀掉之前的进程 | ||
cat pid.log| xargs -I {} kill {} | ||
# 重新启动 | ||
nohup java -server -Xms512m -Xmx512m -Xmn512m -XX:NativeMemoryTracking=detail -XX:-OmitStackTraceInFastThrow -jar ${JAR_NAME} > /dev/null 2>&1 & | ||
echo $! 1> pid.log | ||
} | ||
|
||
if [ $# == 0 ]; then | ||
echo "miss command: start | restart" | ||
elif [ $1 == 'start' ]; then | ||
start | ||
elif [ $1 == 'restart' ];then | ||
restart | ||
else | ||
echo 'illegal command, support cmd: start | restart' | ||
fi | ||
``` | ||
|
||
启动命令 | ||
|
||
```bash | ||
# 进入项目根目录,执行命令 | ||
# chmod +x launch.sh # 若脚本没有执行权限,则取消这行命令的注释,用于添加执行权限 | ||
./launch.sh start | ||
``` |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
50 changes: 50 additions & 0 deletions
50
forum-core/src/main/java/com/github/liuyueyi/forum/core/util/EnvUtil.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,50 @@ | ||
package com.github.liuyueyi.forum.core.util; | ||
|
||
import org.springframework.util.Assert; | ||
|
||
/** | ||
* @author YiHui | ||
* @date 2022/8/29 | ||
*/ | ||
public class EnvUtil { | ||
private static volatile EnvEnum env; | ||
|
||
public enum EnvEnum { | ||
DEV("dev", false), | ||
TEST("test", false), | ||
PRE("pre", false), | ||
PROD("prod", true); | ||
private String env; | ||
private boolean prod; | ||
|
||
EnvEnum(String env, boolean prod) { | ||
this.env = env; | ||
this.prod = prod; | ||
} | ||
|
||
public static EnvEnum nameOf(String name) { | ||
for (EnvEnum env : values()) { | ||
if (env.env.equalsIgnoreCase(name)) { | ||
return env; | ||
} | ||
} | ||
return null; | ||
} | ||
} | ||
|
||
public static boolean isPro() { | ||
return getEnv().prod; | ||
} | ||
|
||
public static EnvEnum getEnv() { | ||
if (env == null) { | ||
synchronized (EnvUtil.class) { | ||
if (env == null) { | ||
env = EnvEnum.nameOf(SpringUtil.getConfig("env.name")); | ||
} | ||
} | ||
} | ||
Assert.isTrue(env != null, "env.name环境配置必然存在!"); | ||
return env; | ||
} | ||
} |
53 changes: 53 additions & 0 deletions
53
forum-core/src/main/java/com/github/liuyueyi/forum/core/util/SpringUtil.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,53 @@ | ||
package com.github.liuyueyi.forum.core.util; | ||
|
||
import org.springframework.beans.BeansException; | ||
import org.springframework.context.ApplicationContext; | ||
import org.springframework.context.ApplicationContextAware; | ||
import org.springframework.context.EnvironmentAware; | ||
import org.springframework.core.env.Environment; | ||
import org.springframework.stereotype.Component; | ||
|
||
/** | ||
* @author YiHui | ||
* @date 2022/8/29 | ||
*/ | ||
@Component | ||
public class SpringUtil implements ApplicationContextAware, EnvironmentAware { | ||
private static ApplicationContext context; | ||
private static Environment environment; | ||
|
||
@Override | ||
public void setApplicationContext(ApplicationContext applicationContext) throws BeansException { | ||
SpringUtil.context = applicationContext; | ||
} | ||
|
||
@Override | ||
public void setEnvironment(Environment environment) { | ||
SpringUtil.environment = environment; | ||
} | ||
|
||
/** | ||
* 获取bean | ||
* | ||
* @param bean | ||
* @param <T> | ||
* @return | ||
*/ | ||
public static <T> T getBean(Class<T> bean) { | ||
return context.getBean(bean); | ||
} | ||
|
||
public static Object getBean(String beanName) { | ||
return context.getBean(beanName); | ||
} | ||
|
||
/** | ||
* 获取配置 | ||
* | ||
* @param key | ||
* @return | ||
*/ | ||
public static String getConfig(String key) { | ||
return environment.getProperty(key); | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,37 @@ | ||
$('#logoutBtn').click(function () { | ||
$.ajax({ | ||
url: "/logout", | ||
dataType: "json", | ||
type: "get", | ||
success: function (data) { | ||
toastr.success("已退出登录") | ||
window.location.href = "/"; | ||
} | ||
}) | ||
}) | ||
|
||
$('#loginBtn').click(function () { | ||
const code = $('#loginCode').val(); | ||
console.log("开始登录:" + code); | ||
$.ajax({ | ||
url: "/login?code=" + code, //请求的url地址 | ||
dataType: "json", //返回格式为json | ||
async: true,//请求是否异步,默认为异步,这也是ajax重要特性 | ||
type: "GET", //请求方式 | ||
success: function (data) { | ||
//请求成功时处理 | ||
console.log("response data:", data); | ||
if (!data || !data.status || data.status.code !== 0) { | ||
toastr.error(data.status.msg); | ||
} else { | ||
// 登录成功,刷新 | ||
window.location.href = "/"; | ||
toastr.success("登录成功"); | ||
} | ||
}, | ||
error: function () { | ||
//请求出错处理 | ||
toastr.error("登录错误"); | ||
} | ||
}); | ||
}); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,19 @@ | ||
$('#getToken').click(function () { | ||
$.ajax({ | ||
method: 'POST', | ||
url: "/wx/callback", | ||
contentType: 'application/xml', | ||
data: "<xml><URL><![CDATA[https://hhui.top]]></URL><ToUserName><![CDATA[一灰灰blog]]></ToUserName><FromUserName><![CDATA[demoUser1234]]></FromUserName><CreateTime>1655700579</CreateTime><MsgType><![CDATA[text]]></MsgType><Content><![CDATA[login]]></Content><MsgId>11111111</MsgId></xml>", | ||
success: function (data) { | ||
console.log("data", data); | ||
if (!data) { | ||
toastr.error(data.message); | ||
} else { | ||
$('#testOutput').html("<bold>" + $(data).find("Content").text() + "</bold>"); | ||
} | ||
}, | ||
error: function (data) { | ||
toastr.error(data); | ||
} | ||
}); | ||
}) |
Oops, something went wrong.