express_back

command module
v1.0.3 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 3, 2021 License: MIT Imports: 2 Imported by: 0

README

EXPRESS-GO

安装Redis

# 下载redis镜像
docker pull redis

# 下载官方配置
# wget https://raw.githubusercontent.com/redis/redis/6.0/redis.conf

vi redis.conf

# 注释掉这一行
# bind 127.0.0.1
# protected-mode no
# 开启持久化
appendonly yes
# 设置密码
# 搜索 requirepass 在后面追加认证密码


# 启动redis
# --name 设置容器名; -d 后台模式运行; -p 端口映射; -v 目录映射;然后是镜像名,
# 因为要配置redis的参数,需要先制定镜像,然后才是容器里的配置参数
# 也就是这里的redis-server给他制定了一个redis.conf配置文件,然后设置开启aof文件的追加模式
docker run --name redis -d -p 16379:6379 -v /data/redis/redis.conf:/etc/redis/redis.conf -v /data/redis:/data redis redis-server /etc/redis/redis.conf --appendonly yes

安装Mysql

# 下载镜像
docker pull mysql

# 运行容器 注意改下用户名和密码,以及映射目录和端口
docker run --name=mysql1 --env=MYSQL_USER=xiaohei --env=MYSQL_PASSWORD=xiaohei --env=MYSQL_ROOT_PASSWORD=root_xiaohei --env=PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin --volume=/data/mysql/config:/main --volume=/data/mysql/data:/var/lib/mysql --volume=/var/lib/mysql --privileged -p 10123:3306 --expose=10123 --restart=always --runtime=runc --detach=true mysql --character-set-server=utf8 --collation-server=utf8_general_ci --default-authentication-plugin=mysql_native_password

安装Go应用

  • 编译Go程序
# 使用以下方式静态编译Linux平台amd64架构的可执行文件, 会生成一个可执行的文件 express_app
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -o express-app main.go
  • 编辑Docker文件

创建目录 /data/express_docer, 把上一步的可执行文件复制到当前文件夹,然后创建Dockerfile文件

FROM loads/alpine:3.8

LABEL maintainer="ergou.xu@xx.com"

###############################################################################
#                                INSTALLATION
###############################################################################

# 设置容器里的工作目录
WORKDIR /data/go/express
# 把当前目录下的内容都复制到容器工作目录
COPY . /data/go/express
# 给编译的程序增加可执行权限
RUN chmod +x /data/go/express/express-app

# 暴露8089端口
EXPOSE 8089

###############################################################################
#                                   START
###############################################################################

ENTRYPOINT ["./express-app"]

另外我增加了.env 的环境变量配置文件,省事一些的话直接把整个项目目录映射进容器里的/data/go/express目录下。

  • *生成docker镜像
# 构建镜像文件,镜像名字是 express_go 上下文目录是当前目录也就是点
docker build -t express_go .

# 查看镜像是否生成成功
docker images

# 启动容器, 最后的参数是镜像名
docker run --name express_back -d -p 10023:8089 -v /data/xx/express_go/www/:/data/go/express express_go

Nginx代理配置

这里使用的是nginx做转发,需要增加nginx的配置文件 express.xx.com.443.conf

server {
  client_header_buffer_size 16k;
  large_client_header_buffers 4 64k;
  fastcgi_buffers 8 128k;
  send_timeout 60;
  client_max_body_size 20M;
  # 需要看自己服务nginx的映射端口
  # 因为我本地的nginx也是容器,服务器的80映射到了nginx容器的8000端口
  # 所以我这里需要监听8000
  listen 8000;

  server_name express.xx.com;
  # 这里做https的转发
  return 301 https://express.xx.com$request_uri;
}
# 这里配置https的相关
server {
  listen 4430 ssl http2;
  server_name express.xx.com;
  # https需要的证书
  ssl_certificate /certs/express.xx.com.pem;
  ssl_certificate_key /certs/express.xx.com.key;

  include /conf.d/ssl_params.conf;
  include /conf.d/headers.conf;

  location / {
    # 把请求转发到go容器
    proxy_pass http://172.16.0.11:10023;

    include /conf.d/proxy-params.conf;
  }
}

重启nginx服务,然后访问https://express.xx.com即可。

Documentation

The Go Gopher

There is no documentation for this package.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL