目前所拥有的的条件
想要达成的效果
前端页面需要通过打包的方式生成静态文件
最终会得到一个打包文件
打包的时候注意要改变H5的路由模式为hash模式,不然无法在正式环境直接通过路由访问,只能从主界面进入。
hash 就是指 url 后面的 # 号以及后面的字符,还有一种路由模式叫history,history模式没有带#。hash模式在每次刷新页面时是直接更改 # 后的东西,history每次刷新会重新向后端请求整个网址,也就是重新请求服务器。如果后端没有及时响应,就会报错404,history的好处是可以进行历史记录修改,并且不会立刻向后端发起请求,history模式URL要和后端一致,所以要改为history也需要后端的配合,否则会报错。
把上面得到的静态文件和后台程序对接起来,因为本次部署没有采用前后端分离的方式,所以前端页面和后端程序是放在一起的,也即在同一台服务器B。beego里面读取静态页面的函数如下图:
然后现在需要把程序放到服务器上,并通过supervisor来控制程序的启动和关闭,可以参考我之前写的这一篇文章: Title supervisor+go+beanstalkd 环境配置和部署 ,当输入supervisor status
看到相关程序正常运行则说明部署成功,记得程序里面要开一个端口供其他服务器的nginx访问,假设开的端口为8888
程序部署成功后则需要开始配置nginx的域名跳转,使得访问该域名能把请求发送到B服务器的程序上,其中信息都是假设的,并非真实信息,基本架构图如下图:
下面是nginx配置过程中一些需要注意的关键点,使用内网地址的原因是为了访问速度更快,通过端口的方式映射访问刚才部署的程序
server{
listen 80;
server_name # 这里填写域名
rewrite ^(.*) https://$server_name$1 permanent;
location / {
proxy_pass http://172.22.22.112:8888; # 填写服务器B的内网地址,并通过8888端口映射到部署的程序
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header REFERER $http_referer;
}
}
server {
listen 443 ssl;
server_name # 这里填写域名
ssl on;
# ......
location / {
proxy_pass http://172.22.22.112:8888; # 填写服务器B的内网地址,并通过8888端口映射到部署的程序
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header REFERER $http_referer;
}
}
上线飞书需要先进入飞书开放平台,并进入开发者后台,点击创建企业自建应用,当前面所有信息配置好后,需要填入在nginx配置好的域名
然后发一个版本,当审核通过后就可以在飞书工作台访问了