在生产中部署Golang(Beego)

时间:2018-04-03 01:09:06

标签: nginx go beego

我来自PHP背景w / c你可以轻松地在服务器中抛出一个PHP文件,就是这样!在Golang中,具体的是Beego框架,因为我已经使用Beego创建了一个网站,但我的塞子是(Q1)如何在Ubunto和NGINX环境中部署? (Q2)我需要在部署之前编译Beego项目吗? (Q3)我是否需要NGINX / Apache作为服务器或使用Beego的内置“运行”?

谢谢。

3 个答案:

答案 0 :(得分:1)

如何在Ubuntu和NGINX环境中部署?

  1. 安装Golang并在localhost上的特定端口上运行Golang应用程序(例如localhost:9000)。
  2. 安装Nginx(https://www.digitalocean.com/community/tutorials/how-to-install-nginx-on-ubuntu-16-04
  3. 选择您希望指向Golang App的域或子域。
  4. 创建Nginx服务器块(https://www.digitalocean.com/community/tutorials/how-to-set-up-nginx-server-blocks-virtual-hosts-on-ubuntu-16-04

    示例服务器块指向在localhost运行的Golang App:9000:

    server {
            listen 80;
            server_name my.domain.com;
    
            location / {
            proxy_pass http://localhost:9000;
            proxy_http_version 1.1;
            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 X-Forwarded-Proto $scheme;
            proxy_cache_bypass $http_upgrade;
            proxy_pass_request_headers on;
            proxy_read_timeout 150;
        }
    }    
    
  5. 要有效地运行程序,您可以使用主管(https://www.digitalocean.com/community/tutorials/how-to-install-and-manage-supervisor-on-ubuntu-and-debian-vps

答案 1 :(得分:0)

1 - 几乎安装golang(使用内置版本:sudo apt-get install golang-goDetailed guide)并构建项目或只是根据需要复制构建的项目及其库;

2 - 理想情况下,生产环境不应在大多数情况下包含源代码,因此构建的服务器可能更好。

3 - 虽然不是必需的,但大多数人建议在nginx后面运行golang。其原因是由于在NGinx / Apache上进行了几次优化(例如:静态文件服务),在服务器80上直接运行bin时会丢失这些优化。

附注:
- go run ...go build ... +运行构建的可执行文件相同 - 如果您只是部署二进制文件,请使用相同的操作系统/配置进行构建 - 请记住遵循基本安全指南,只需打开所需的端口,在部署之前保护服务器,限制用户访问等。

答案 2 :(得分:0)

浏览以下链接:link1link2