宝塔面板常用配置纪要

反向代理

我个人是使用习惯是使用阿里云自带的 负载均衡SLB 服务,完成 反向代理负责均衡SSL证书,域名解析 等操作,同时也推荐在Pord环境中使用,这样在后期在跟新的过程中更加灵活。
而在开发测试环境中,单机部署宝塔面板,可通过Ngix的配置完成以上配置。

基本配置

eg.以java项目为例,我们部署的到服务器上确保指定端口可访问,如 SERVER_IP:8080
但实际情况是,我们希望 api.xxx.com 这种域名的情况的下去访问该网站或者接口时,具体操作步骤如下。

  1. 域名解析,将 api.xxx.com cname 指向到 SERVER_IP 上,注意这里在没有配置端口号的情况下默认端口为80,通过ping api.xxx.com 验证是否解析成功。

  2. 在宝塔面包中创建一个静态网站,如下图所示。

因为我们是java工程,只需要宝塔给我们做一个反向代理的功能,所以并不关注其他的有关php的配置,选择静态部署。

  1. 反向代理

配置反向代理将服务请求转发至 SERVER_IP:8080

好,截止到目前为止,即可通过 api.xxx.com 访问到 SERVER_IP:8080 网站,反向代理的主要功能就是如此,说白了就是做了个端口映射。在此解决一台服务器通过不同的域名解决同一端口的地址映射关系。

解决跨域问题

如果是API服务,并且工程中并没有处理跨域的问题时,又不想通过代码的方式去解决,此时可以通过配置ngix解决此问题。

1
2
3
4
#解决跨域问题
add_header Access-Control-Allow-Origin *;
add_header Access-Control-Allow-Headers X-Requested-With;
add_header Access-Control-Allow-Methods GET,POST,OPTIONS;

应用管理器

这个是宝塔官方出的一个管理工具,具体功能类似的pm2提供守护进程确保服务的稳定性,这也是我最近才开始用的。我使用其的目的主要是为了解决应用程序跟随服务器自启动。

  1. 应用管理器中首先在环境池中创建想要的启动命令,比如下面的java命令
  1. 然后再在应用列表添加应用

最终其完整的启动命令如下:
/usr/bin/java -jar /home/fanfq/apps/x.jar --server.port=8180 --downloadPath=/macshare

注意 中文乱码问题

/usr/bin/java -Dfile.encoding=UTF-8 -jar /home/fanfq/apps/x.jar --server.port=8180 --downloadPath=/macshare

如果启用了进程守护那么此时可以通过各种方式停止服务,然后再观察该服务是否正常重启。这就是进程守护的意义,btw我们经常所见的mysqld实际上就是mysql服务的守护进程,通常用后缀d命名。

webhook

这个功能也是常规用的比较多的应用,我的应用场景是当git仓库有新的push时会发送一个http请求给服务器,此时服务器会自动pull到最新版本,并自动完成编译,重启等操作。
此功能是比较简易话的完成自动构建的操作,在开发测试环境中特别适用。

  1. 创建webhook,编辑执行脚本
1
2
3
4
5
source /etc/profile
sh /root/xxx/bin/autobuild.sh

time=$(date "+%Y-%m-%d %H:%M:%S")
echo "----latest build time ${time}"
  1. 通过查看秘钥获取请求的地址

后续只要接口地址获取到请求,即触发脚本执行。

注意

  1. 请求接口要求外网可访问,所以说这台服务器要有公网ip,确保可访问。
  2. 脚本执行的权限问题,通过日志的方式查看脚本的执行是否成功。如果出现日志不如预期则可能是执行过程中出现权限等问题。需要自己测试排查如权限,环境变量等。
Fred范方青 wechat
项目合作请联系我私人微信: fredtv23
0%