我来自PHP背景w / c你可以轻松地在服务器中抛出一个PHP文件,就是这样!在Golang中,具体的是Beego框架,因为我已经使用Beego创建了一个网站,但我的塞子是(Q1)如何在Ubunto和NGINX环境中部署? (Q2)我需要在部署之前编译Beego项目吗? (Q3)我是否需要NGINX / Apache作为服务器或使用Beego的内置“运行”?
谢谢。
答案 0 :(得分:1)
如何在Ubuntu和NGINX环境中部署?
创建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;
}
}
答案 1 :(得分:0)
1 - 几乎安装golang(使用内置版本:sudo apt-get install golang-go
或Detailed guide)并构建项目或只是根据需要复制构建的项目及其库;
2 - 理想情况下,生产环境不应在大多数情况下包含源代码,因此构建的服务器可能更好。
3 - 虽然不是必需的,但大多数人建议在nginx后面运行golang。其原因是由于在NGinx / Apache上进行了几次优化(例如:静态文件服务),在服务器80上直接运行bin时会丢失这些优化。
附注:
- go run ...
与go build ...
+运行构建的可执行文件相同
- 如果您只是部署二进制文件,请使用相同的操作系统/配置进行构建
- 请记住遵循基本安全指南,只需打开所需的端口,在部署之前保护服务器,限制用户访问等。
答案 2 :(得分:0)