在CentOS上部署Golang应用通常涉及以下几个步骤:
下载并解压Go安装包:
从Go官方网站下载适合CentOS的Go语言包,例如Go 1.17版本。
sudo wget https://golang.org/dl/go1.17.2.linux-amd64.tar.gz
sudo tar -C /usr/local -xzf go1.17.2.linux-amd64.tar.gz
配置环境变量:
编辑/etc/profile
文件,添加以下内容:
export GOROOT=/usr/local/go
export GOPATH=$HOME/go
export PATH=$PATH:$GOROOT/bin:$GOPATH/bin
保存文件后,运行以下命令使环境变量生效:
source /etc/profile
验证安装:
go version
如果显示了Go的版本信息,则表示安装成功。
在项目目录下编写你的Go应用程序代码。使用go build
命令编译应用程序,生成可执行文件。例如:
cd /path/to/your/app
go build -o myapp
创建systemd服务文件:
创建一个systemd服务文件,例如/etc/systemd/system/myapp.service
,并添加以下内容:
[Unit]
Description=My Go Application
After=syslog.target
[Service]
Type=simple
User=root
WorkingDirectory=/path/to/your/app
ExecStart=/path/to/your/app/myapp
Restart=always
Environment=ENV_VAR1=value1 ENV_VAR2=value2
[Install]
WantedBy=multi-user.target
加载并启动服务:
sudo systemctl daemon-reload
sudo systemctl start myapp.service
sudo systemctl status myapp.service
设置开机自启动:
sudo systemctl enable myapp.service
编辑Nginx配置文件:
通常位于/etc/nginx/nginx.conf
或/etc/nginx/conf.d/default.conf
,并添加以下内容:
server {
listen 80;
server_name your_domain_or_ip;
location / {
proxy_pass http://localhost:8080; # 假设你的Go应用运行在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配置并启动Nginx服务:
sudo systemctl restart nginx
sudo systemctl status nginx
配置好Nginx后,你可以通过服务器的IP地址或域名来访问你的Go应用程序。请确保你的防火墙允许外部访问你设置的端口。
以上步骤涵盖了在CentOS上从安装Golang到打包和部署项目的完整流程。如果在配置过程中遇到问题,可以参考Go官方文档或相关社区资源。