在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

4 回复

感谢提供的信息,但我确实需要视频或完整指南……在谷歌上搜索了但没有结果。

更多关于在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!"消息。

回到顶部