在Linux虚拟主机上如何实时运行Golang项目(域名解析实战)
在Linux虚拟主机上如何实时运行Golang项目(域名解析实战)
我想在我的 Linux 主机上运行这个示例代码,域名是 www.my-domain.com
代码:-
package main
import (
"fmt"
"net/http"
)
func main() {
http.HandleFunc("/", func (w http.ResponseWriter, r *http.Request) {
fmt.Fprintf(w, "Welcome to my website!")
})
fs := http.FileServer(http.Dir("static/"))
http.Handle("/static/", http.StripPrefix("/static/", fs))
http.ListenAndServe(":80", nil)
}
如何在带有域名的实时网站上运行此代码,这样当我访问 www.my-domain.com 时,它会显示“欢迎访问我的网站”。
请与我分享安装或复制和放置的指南。
更多关于在Linux虚拟主机上如何实时运行Golang项目(域名解析实战)的实战教程也可以访问 https://www.itying.com/category-94-b0.html
感谢提供的信息,但我确实需要视频或完整指南……在谷歌上搜索了但没有结果。
更多关于在Linux虚拟主机上如何实时运行Golang项目(域名解析实战)的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html
如果你需要教程或指南(书面说明),实际上你需要的是向导(指导你的人),或者一些为你完成工作的托管服务。
编译并将二进制文件部署到服务器上,启动服务并建立连接。
但这仅适用于快速测试场景。
个人建议在其前端配置Traefik,用于处理Let’s Encrypt证书及反向代理到应用程序。
同时建议通过systemd或服务器使用的初始化系统来管理这两个服务。
最后需要强调的是,在服务器上托管服务是项重要职责。需要配置防火墙等安全措施…如果未使用托管服务(PaaS),最好寻求专业人士协助确保服务器安全。
要在Linux虚拟主机上运行你的Golang项目并让域名www.my-domain.com指向它,你需要完成以下步骤:
1. 编译Go程序
首先在你的开发环境中编译Go程序为Linux可执行文件:
# 如果交叉编译(例如从Windows/Mac编译到Linux)
GOOS=linux GOARCH=amd64 go build -o myapp main.go
# 如果已经在Linux上,直接编译
go build -o myapp main.go
2. 上传文件到虚拟主机
使用SCP或SFTP将编译好的二进制文件和静态文件上传到你的虚拟主机:
scp myapp user@your-server:/path/to/your/app/
scp -r static/ user@your-server:/path/to/your/app/
3. 设置文件权限
通过SSH连接到你的虚拟主机并设置执行权限:
chmod +x /path/to/your/app/myapp
4. 使用进程管理器运行(推荐使用systemd)
创建systemd服务文件:
sudo nano /etc/systemd/system/myapp.service
添加以下内容:
[Unit]
Description=My Golang Web Application
After=network.target
[Service]
Type=simple
User=www-data
Group=www-data
WorkingDirectory=/path/to/your/app
ExecStart=/path/to/your/app/myapp
Restart=always
RestartSec=10
[Install]
WantedBy=multi-user.target
启用并启动服务:
sudo systemctl daemon-reload
sudo systemctl enable myapp
sudo systemctl start myapp
5. 配置Web服务器(使用Nginx反向代理)
安装并配置Nginx:
sudo apt update
sudo apt install nginx
创建Nginx配置文件:
sudo nano /etc/nginx/sites-available/myapp
添加以下配置:
server {
listen 80;
server_name www.my-domain.com my-domain.com;
location / {
proxy_pass http://localhost:80;
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 ln -s /etc/nginx/sites-available/myapp /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl restart nginx
6. 重要注意事项
- 确保你的Go程序监听的是
":80"端口 - 检查防火墙设置,确保80端口开放
- 在域名注册商处将
www.my-domain.com解析到你的服务器IP地址 - 如果你的虚拟主机提供商限制了端口80的使用,可能需要使用其他端口并相应调整配置
7. 验证运行状态
检查服务状态:
sudo systemctl status myapp
sudo systemctl status nginx
测试应用程序:
curl http://localhost:80
完成这些步骤后,当访问www.my-domain.com时,应该会显示"Welcome to my website!"消息。

