在CentOS上部署Golang Web应用可以分为几个步骤。以下是一个基本的指南:
1. 安装Golang
首先,你需要在CentOS上安装Golang。你可以从Golang官方网站下载适合你系统的安装包。
使用yum安装
sudo yum install -y golang
手动安装
-
下载Golang安装包:
wget https://golang.org/dl/go1.17.6.linux-amd64.tar.gz -
解压安装包到
/usr/local目录:sudo tar -C /usr/local -xzf go1.17.6.linux-amd64.tar.gz -
配置环境变量: 编辑
~/.bashrc或/etc/profile文件,添加以下内容:export PATH=$PATH:/usr/local/go/bin然后使配置生效:
source ~/.bashrc -
验证安装:
go version
2. 编译Golang Web应用
在你的项目目录中,使用以下命令编译你的Golang Web应用:
go build -o myapp
这将会生成一个名为myapp的可执行文件。
3. 创建Systemd服务
为了在CentOS上运行你的Golang Web应用服务,你可以创建一个Systemd服务文件。
-
创建服务文件:
sudo nano /etc/systemd/system/myapp.service -
在文件中添加以下内容:
[Unit] Description=My Golang Web Application After=network.target [Service] User=Group= ExecStart=/path/to/your/myapp Restart=always Environment=PORT=8080 [Install] WantedBy=multi-user.target 替换
和为你的用户名和组名,/path/to/your/myapp为你的可执行文件的路径。 -
重新加载Systemd配置:
sudo systemctl daemon-reload -
启动服务:
sudo systemctl start myapp -
设置开机自启动:
sudo systemctl enable myapp
4. 配置防火墙
确保你的防火墙允许HTTP/HTTPS流量。你可以使用firewalld来配置:
sudo firewall-cmd --permanent --zone=public --add-service=http
sudo firewall-cmd --permanent --zone=public --add-service=https
sudo firewall-cmd --reload
5. 配置Nginx(可选)
如果你希望通过Nginx作为反向代理来运行你的Golang Web应用,可以按照以下步骤进行配置:
-
安装Nginx:
sudo yum install -y nginx -
启动并启用Nginx服务:
sudo systemctl start nginx sudo systemctl enable nginx -
配置Nginx反向代理: 编辑Nginx配置文件(通常位于
/etc/nginx/nginx.conf或/etc/nginx/conf.d/default.conf),添加以下内容:server { listen 80; server_name your_domain.com; location / { proxy_pass http://localhost:8080; 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; } } -
重新加载Nginx配置:
sudo nginx -s reload
现在,你的Golang Web应用应该已经在CentOS上成功部署并运行了。你可以通过访问你的服务器IP地址或域名来访问你的应用。
以上就是关于“怎样在CentOS上部署Golang Web应用”的相关介绍,筋斗云是国内较早的云主机应用的服务商,拥有10余年行业经验,提供丰富的云服务器、租用服务器等相关产品服务。云服务器资源弹性伸缩,主机vCPU、内存性能强悍、超高I/O速度、故障秒级恢复;电子化备案,提交快速,专业团队7×24小时服务支持!
简单好用、高性价比云服务器租用链接:https://www.jindouyun.cn/product/cvm