开发模式

通过bee创建的项目,beego默认情况下是开发模式。

我们可以通过如下的方式改变我们的模式:

  1. beego.RunMode = "prod"

或者我们在conf/app.conf下面设置如下:

  1. runmode = prod

以上两种效果一样。

开发模式中

开发模式下,如果你的目录不存在views目录,那么会出现类似下面的错误提示:

  1. 2013/04/13 19:36:17 [W] [stat views: no such file or directory]

模板每次使用都会重新加载,不进行缓存。

如果服务端出错,那么就会在浏览器端显式如下类似的截图:

发行部署

Go语言的应用最后编译之后是一个二进制文件,你只需要copy这个应用到服务器上,运行起来就行。

beego由于带有几个静态文件、配置文件、模板文件三个目录,所以应用部署的时候需要同时copy这三个目录到相应的部署应用之下。

  1. $ mkdir /opt/app/beepkg
  2. $ cp beepkg /opt/app/beepkg
  3. $ cp -fr views /opt/app/beepkg
  4. $ cp -fr static /opt/app/beepkg
  5. $ cp -fr conf /opt/app/beepkg

这样在 /opt/app/beepkg 目录下面就会显示如下的目录结构:

  1. .
  2. ├── conf
  3. ├── app.conf
  4. ├── static
  5. ├── css
  6. ├── img
  7. └── js
  8. └── views
  9. └── index.tpl
  10. ├── beepkg

这样我们就已经把我们需要的应用搬到服务器了,那么接下来就可以开始部署了。

这里部署首先你需要把应用跑起来,这分为两种方式:

独立部署

独立部署即为在后端运行程序,让程序跑在后端

  1. nohup ./beepkg &

这样你的应用就跑在了Linux系统的守护进程。

Supervisord 部署

Supervisord是用Python实现的一款非常实用的进程管理工具,supervisord还要求管理的程序是非daemon程序,

supervisord会帮你把它转成daemon程序,因此如果用supervisord来管理nginx的话,必须在nginx的配置文件里添加一行设置daemon off 让 nginx 以非 daemon 方式启动。

关于更多:https://www.cnblogs.com/yangmingxianshen/p/9639846.html

上面只是把应用程序完全暴露在外部,我们大多数的应用会在前端部署一个nginx或者apache利用这些程序的HTTP服务器做负载均衡或者认证之类的。

Nginx部署

Go是一个独立的HTTP服务器,但是我们有些时候为了nginx可以帮我们做很多工作,

例如日志访问、cc攻击、静态服务等,nginx已经做的非常成熟,Go只要专注于业务逻辑和功能就更好,

所以通过nginx配置代理就可以实现更多应用同时部署,如下就是典型的两个应用共享80端口,通过不同的域名访问,反向代理到不同的应用。

  1. server {
  2. listen ;
  3. server_name .a.com;
  4.  
  5. charset utf-;
  6. access_log /home/a.com.access.log;
  7.  
  8. location /(css|js|fonts|img)/ {
  9. access_log off;
  10. expires 1d;
  11.  
  12. root "/path/to/app_a/static";
  13. try_files $uri @backend;
  14. }
  15.  
  16. location / {
  17. try_files /_not_exists_ @backend;
  18. }
  19.  
  20. location @backend {
  21. proxy_set_header X-Forwarded-For $remote_addr;
  22. proxy_set_header Host $http_host;
  23.  
  24. proxy_pass http://127.0.0.1:8080;
  25. }
  26. }
  27.  
  28. server {
  29. listen ;
  30. server_name .b.com;
  31.  
  32. charset utf-;
  33. access_log /home/b.com.access.log main;
  34.  
  35. location /(css|js|fonts|img)/ {
  36. access_log off;
  37. expires 1d;
  38.  
  39. root "/path/to/app_b/static";
  40. try_files $uri @backend;
  41. }
  42.  
  43. location / {
  44. try_files /_not_exists_ @backend;
  45. }
  46.  
  47. location @backend {
  48. proxy_set_header X-Forwarded-For $remote_addr;
  49. proxy_set_header Host $http_host;
  50.  
  51. proxy_pass http://127.0.0.1:8081;
  52. }
  53. }

Apache部署

apache 和 nginx 的实现原理一样,都是做一个反向代理,把请求向后端传递,配置如下所示:

  1. NameVirtualHost *:
  2. <VirtualHost *:>
  3. ServerAdmin webmaster@dummy-host.example.com
  4. ServerName www.a.com
  5. ProxyRequests Off
  6. <Proxy *>
  7. Order deny,allow
  8. Allow from all
  9. </Proxy>
  10. ProxyPass / http://127.0.0.1:8080/
  11. ProxyPassReverse / http://127.0.0.1:8080/
  12. </VirtualHost>
  13.  
  14. <VirtualHost *:>
  15. ServerAdmin webmaster@dummy-host.example.com
  16. ServerName www.b.com
  17. ProxyRequests Off
  18. <Proxy *>
  19. Order deny,allow
  20. Allow from all
  21. </Proxy>
  22. ProxyPass / http://127.0.0.1:8081/
  23. ProxyPassReverse / http://127.0.0.1:8081/
  24. </VirtualHost>

beego——发行部署的更多相关文章

  1. golang学习笔记9 beego nginx 部署 nginx 反向代理 golang web

    golang学习笔记9 beego nginx 部署 nginx 反向代理 golang web Nginx 部署 - beego: 简约 & 强大并存的 Go 应用框架https://bee ...

  2. beego项目部署到nginx(含http转https)

    beego项目部署到nginx(含http转https)    之前的程序部署到服务器采用的直接部署,比较方便,现在把它部署到nginx,以便后续的反向代理和负载均衡,同时,因为要接入微信小程序,所以 ...

  3. 01 . Go框架之Beego简介部署及程序流程分析

    Beego简介 beego是一个使用Go语言来开发WEB引用的GoWeb框架,该框架起始于2012年,由一位中国的程序员编写并进行公开,其目的就是为大家提供一个高效率的web应用开发框架.该框架采用模 ...

  4. beego项目和go项目 打包部署到linux

    参考文章: https://www.jianshu.com/p/64363dff9721 [beego项目] 一. 打包 1. 打开Terminal 定位到工程的 main.go 文件夹目录 2. 执 ...

  5. 僧多粥少?还原 OpenStack 的真实“钱景”

    原文链接:http://www.oschina.net/news/57994/openstack-income-analysis 451 Research发布了OpenStack的收入分析预测,指出O ...

  6. 为什么要使用 Go 语言,Go 语言的优势在哪里?

    1.Go有什么优势 可直接编译成机器码,不依赖其他库,glibc的版本有一定要求,部署就是扔一个文件上去就完成了. 静态类型语言,但是有动态语言的感觉,静态类型的语言就是可以在编译的时候检查出来隐藏的 ...

  7. beego+vue.js分离开发,结合发布,简单部署

    大家知道,golang开发的东西部署简单是它很大的卖点,一般的应用,生成的可执行文件直接放服务器上运行即可,不需要任何环境.当然,大型的应用才需要比如mysql,nginx等. 但是当vue.js出现 ...

  8. Bytom资产发行与部署合约教程

    比原项目仓库: Github地址:https://github.com/Bytom/bytom Gitee地址:https://gitee.com/BytomBlockchain/bytom 发行资产 ...

  9. beego-vue URL重定向(beego和vue前后端分离开发,beego承载vue前端分离页面部署)

    具体过程就不说,是搞这个的自然会动,只把关键代码贴出来. beego和vue前后端分离开发,beego承载vue前端分离页面部署 // landv.cnblogs.com //没有授权转载我的内容,再 ...

随机推荐

  1. Android 绘制圆环

    使用画圆弧的方式绘制圆环和进度条,使用sweepGradient进行渐变. 参考链接 http://blog.csdn.net/u011494050/article/details/39251239 ...

  2. m2014-software->Word2010发布博客文章至Cnblogs

    转自:http://www.cnblogs.com/xfiver/archive/2011/12/26/2301591.html 昨夜喝醉,今天早起梳理情绪,看下如何使用word2010直接写cnbl ...

  3. 2、Android自己的下拉刷新SwipeRefreshLayout--样式2

    <android.support.v4.widget.SwipeRefreshLayout xmlns:android="http://schemas.android.com/apk/ ...

  4. hdu4525

    可以发现天的操作相当于*(k1+k2) 然后就很好判断了. 威威猫系列故事——吃鸡腿 Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 6 ...

  5. Tiny4412 Android 5.0 编译系统学习笔记

    1.Android 编译系统概述 Build 系统中最主要的处理逻辑都在 Make 文件中,而其他的脚本文件只是起到一些辅助作用. 整个 Build 系统中的 Make 文件可以分为三类: ① Bui ...

  6. oracle11g安装完成后修改字符集

    author : headsen chen date:2018-05-10  10:27:16 oracle11g完成安装后,由于默认安装的时候无法指定字符集,所以手动修改字符集和10g版本一样的字符 ...

  7. mysql数据的导入与导出

    参考:http://blog.sina.com.cn/s/blog_81b2b2a1010188q0.html  http://blog.csdn.net/xin_yu_xin/article/det ...

  8. ng2-file-upload上传附件同时传参

    由于业务需要,需要的场景是发某条公告的时候能够上传附件,不只是图片,图片的话可以直接用base64传给后台,但上传附件这个就不能这样干了, 与此同时,每条公告都有一个对应的唯一标识id, 附件以文件流 ...

  9. fidder教程

    Fiddler是最强大最好用的Web调试工具之一,它能记录所有客户端和服务器的http和https请求,允许你监视,设置断点,甚至修改输入输出数据. 使用Fiddler无论对开发还是测试来说,都有很大 ...

  10. protobuf在java应用中通过反射动态创建对象(DynamicMessage)

    ---恢复内容开始--- 最近编写一个游戏用到protobuf数据格式进行前后台传输,苦于protobuf接受客户端的数据时是需要数据类型的如xxx.parseForm(...),这样就要求服务器在接 ...