-
Notifications
You must be signed in to change notification settings - Fork 13
Step 2:注意事项
medivhJay edited this page Sep 5, 2019
·
4 revisions
- 程序其实是有一些服务依赖的, 目前依赖 mongo, redis, mysql, elasticsearch
- 建议使用docker进行本地开发的搭建
- 拉取 mongo 镜像
docker pull mongo
- 下载完成后创建和启动容器
docker run -p 27017:27017 --name=mongodb -d mongo
- 拉取 redis 镜像
docker pull redis
- 启动redis
docker run -p 6379:6379 --name=redis -d redis
- 拉取 mysql 镜像
docker pull mysql
- 启动mysql
docker run -p3306:3306 --name=mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql
- 拉取 elasticsearch 镜像
docker pull elasticsearch:7.3.1
- 启动 elasticsearch
docker run -p9200:9200 --name=elasticsearch -e "discovery.type=single-node" -d elasticsearch
- 如果docker报没有权限使用 sudo
- 如果你本机安装了 docker-compose , 这里提供了更快捷的方式
docker-compose up
静待启动, 现在的3个示例模块中的 services 模块编译时swag会解析api文档, 会花一些时间
- 启动之后,本机安装 nginx
- 增加NGINX配置
- 在 nginx 的配置目录下新建 文件夹 projects
- 然后进入projects并创建vhost.conf
- 在vhost.conf 中输入以下内容
server {
listen 80;
server_name golang-project.com;
location /{
try_files $uri @go;
}
location @go{
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header Host $http_host;
proxy_pass http://127.0.0.1:22222;
}
}
server {
listen 80;
server_name admin.golang-project.com;
location /{
try_files $uri @go;
}
location @go{
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header Host $http_host;
proxy_pass http://127.0.0.1:22224;
}
}
server {
listen 80;
server_name manager.golang-project.com;
client_max_body_size 10M;
location /{
try_files $uri @go;
}
location @go{
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header Host $http_host;
proxy_pass http://127.0.0.1:22223;
}
}
- 保存退出并重启 nginx
- 修改本机 hosts 文件
- 在 hosts 中加入以下内容
127.0.0.1 admin.golang-project.com
127.0.0.1 manager.golang-project.com
- 保存退出
- 打开浏览器, 如果上述操作均已完成, 检查 docker-compose ps 都已处于启动状态, 浏览器访问 admin.golang-project.com
- 账号 root 密码 123456
使用golang做web开发, 我们常常需要寻找并合理搭配各种路由库,session库,缓存库,DB库, 日志库等各种依赖, 将他们全部整合到一起
我们还要对公司内部管理后端提供 CURD 接口, 一个又一个的 Controller 写了出来
如果每一次都需要这样的操作, 人生将变得毫无意义
这个项目整合了golang做web开发中可能需要的大部分三方库,以及一些常用的中间件和通用功能
如果你有更好的想法,期待你的来信