Nginx部署Gin Web服务

简介

Go是一门开放源代码的编程语言,它与其他语言相比有着更好的性能和更高的并发性。Gin是一个用于构建Web应用程序的轻量级框架,它提供了简单而强大的API来实现Web应用程序和微服务的开发。在本文中,我们将介绍如何使用Nginx部署Go Gin开发的Web服务,并提供centos7系统上的Nginx安装步骤。

准备工作

在开始之前,需要确保您已经在centos7系统上安装了以下软件:

Go 1.14或更高版本

Nginx

Git

步骤

安装Nginx

使用yum安装Nginx:

python 复制代码
yum install nginx

启动Nginx并使其在系统启动时自动启动:

python 复制代码
systemctl start nginx
systemctl enable nginx

验证Nginx是否已成功安装:

在浏览器中输入服务器的IP地址或域名,如果能看到"Welcome to nginx!"的响应页面,表示Nginx已经成功安装。

创建Gin Web服务

在终端或命令行中使用以下命令创建Gin Web服务:

python 复制代码
mkdir myweb
cd myweb
go mod init myweb
go get -u github.com/gin-gonic/gin

然后,创建一个名为main.go的文件,并将以下内容添加到该文件中:

python 复制代码
package main

import (
    "net/http"

    "github.com/gin-gonic/gin"
)

func main() {
    r := gin.Default()

    r.GET("/", func(c *gin.Context) {
        c.String(http.StatusOK, "Hello, world!")
    })

    r.Run(":8080")
}

测试Web服务:

在终端或命令行中使用以下命令启动Web服务:

go复制代码go run main.go

如果一切正常,您应该在浏览器中输入http://localhost:8080并看到"Hello, world!"的响应。

配置Nginx

打开Nginx配置文件/etc/nginx/nginx.conf:

bash复制代码vi /etc/nginx/nginx.conf

将以下内容添加到配置文件中:

python 复制代码
server {
    listen 80;

    server_name example.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;
    }
}

其中,server_name是您的域名或服务器的IP地址。

使用以下命令检查Nginx配置是否正确:

python 复制代码
sudo nginx -t

如果配置正确,则重新加载Nginx:

sudo systemctl reload nginx

测试部署:

在浏览器中输入您的服务器的IP地址或域名。如果一切正常,您应该看到"Hello, world!"的响应。

注意:如果您使用了防火墙(例如firewalld),请确保允许流量通过端口80。

python 复制代码
sudo firewall-cmd --add-service=http --permanent
sudo firewall-cmd --add-service=https --permanent
sudo firewall-cmd --reload

恭喜,您已经成功地使用Nginx部署了Go Gin开发的Web服务!

相关推荐
「、皓子~3 分钟前
后台管理系统的诞生 - 利用AI 1天完成整个后台管理系统的微服务后端+前端
前端·人工智能·微服务·小程序·go·ai编程·ai写作
就改了5 分钟前
Ajax——在OA系统提升性能的局部刷新
前端·javascript·ajax
凌冰_7 分钟前
Ajax 入门
前端·javascript·ajax
京东零售技术22 分钟前
京东小程序JS API仓颉改造实践
前端
老A技术联盟31 分钟前
从小白入门,基于Cursor开发一个前端小程序之Cursor 编程实践与案例分析
前端·小程序
风铃喵游35 分钟前
构建引擎: 打造小程序编译器
前端·小程序·架构
sunbyte40 分钟前
50天50个小项目 (Vue3 + Tailwindcss V4) ✨ | ThemeClock(主题时钟)
前端·javascript·css·vue.js·前端框架·tailwindcss
小飞悟1 小时前
🎯 什么是模块化?CommonJS 和 ES6 Modules 到底有什么区别?小白也能看懂
前端·javascript·设计
浏览器API调用工程师_Taylor1 小时前
AOP魔法:一招实现登录弹窗的全局拦截与动态处理
前端·javascript·vue.js
FogLetter1 小时前
初识图片懒加载:让网页像"懒人"一样聪明加载
前端·javascript