Nginx部署go语言前后端分离项目demo MacOS

  • 下载安装运行nginx
brew install nginx #安装

nginx #启动
nginx -s reload #重新加载

ps -ef|grep nginx #查看Nginx运行情况
kill -9 Nginx的master的ID #强制杀死Nginx进程
  • 修改nginx配置文件,默认地址:/usr/local/etc/nginx/nginx.conf

  •  前端代码:
<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>
<style>
html { color-scheme: light dark; }
body { width: 35em; margin: 0 auto;
font-family: Tahoma, Verdana, Arial, sans-serif; }
</style>
</head>
<body>
<h1>Test Nginx!</h1>
<form action="http://127.0.0.1:81/nginx" enctype="multipart/form-data" method="post">
    Username: <input type="text" name="username">
    Password: <input type="password" name="password">
    <input type="submit">
</form>
</body>
</html>
  • 后端代码(iris):
package main

import (
	"fmt"
	"github.com/kataras/iris/v12"
)

func main() {
	app := iris.New()
	app.Post("/nginx", func(ctx iris.Context) {
		name := ctx.FormValue("username")
		pw := ctx.FormValue("password")
		ctx.JSON(map[string]interface{}{"a": name, "b": pw, "c":200}) //返回表单提交的内容
	})
	err := app.Run(iris.Addr(":81"))
	if err != nil {
		fmt.Println(err)
		return
	}
}

运行

  1. 后端项目启动 
  2. Nginx启动
  3. 访问 http:localhost
  4.  提交表单
  5. 返回结果

  • docker中使用Nginx部署

    docker pull nginx #拉取镜像
    docker run --name nginx_test -p 80:80 -d nginx #运行Nginx
    docker exec -it nginx_test nginx -s reload #执行Nginx命令,重载文件生效
    docker ps #展示镜像ID
    docker  exec -it 镜像ID /bin/bash #查看文件
    
    拷贝容器的文件到主机中:       docker cp 容器id:容器内路径 目的主机路径
    拷贝宿主机的文件到容器中:     docker cp 目的主机路径 容器id:容器内路径
    例如:
    docker cp b4a0fcd6ca96:/etc/nginx/nginx.conf ~/data/docker/nginx
    
    #挂载方式启动(本地文件替换了容器内文件,部署更方便)
    docker run --name nginx_test -p 80:80 -v ~/data/docker/nginx/nginx.conf:/etc/nginx/nginx.conf  -v ~/data/nginx/nginx/:/var/log/nginx/ -v ~/data/docker/nginx/conf.d/:/etc/nginx/conf.d -v ~/data/www/:/usr/share/nginx/html/ --privileged=true -d nginx
    
    docker stop nginx_test
    docker rm nginx_test
    
    

猜你喜欢

转载自blog.csdn.net/qq_37575994/article/details/125538006