GO 语言博客 搬家部署,NGINX作为代理

这段时间刚好 服务器到期,换了另一个服务器,新服务器GO环境要部署,这里记录一下,方便 使用GO语言的博客小伙伴们
风.fox

环境

Centos 7.X
lanmps套件 已安装(http://www.lanmps.com/) 这里用到mysql,nginx 如果你的本地已经安装就不需要用了
go语言博客 mysql版

go 语言安装

按照该网址安装就可以安装成功
http://blog.csdn.net/fenglailea/article/details/26163927

http://blog.csdn.net/fenglailea/article/details/70216964
在 go 语言环境变量中,服务器中的GOPATH改为如下

export GOPATH=/www/go    #我的开发目录

安装git

centos

yum -y install git

ubuntu

apt-get -y install git

安装 go博客依赖

源码地址:https://github.com/foxiswho/blog-go
博客地址:https://www.foxwho.com

先安装 beego 和其他依赖

一条一条执行,当然你直接 放到shell文件里,批量执行也可以

go get github.com/astaxie/beego
go get github.com/beego/bee
go get github.com/astaxie/beego/cache
go get github.com/go-xorm/xorm
go get -u github.com/xormplus/xorm
go get github.com/go-xorm/cmd/xorm
go get -u github.com/qiniu/api.v7
go get github.com/russross/blackfriday

到这里基本环境就安装成功了

数据库文件导入到数据库中

数据库文件位于

src/blog/db/blog_go.sql.zip

配置文件

数据库名,用户名,密码等相关配置都在此文件中

src/blog/conf/app.conf

go语言博客编译运行预览

注意:这里只是编译预览效果,给你运行看看的。你认为我会让你用这么low方式吗

直接下载master

https://github.com/foxiswho/blog-go/archive/master.zip

解压缩后,进入src目录,把blog目录复制到 /www/go/src目录下,

编译运行

cd /www/go/src/blog
bee run

在浏览器中输入http://localhsot:8080你就看到效果哦啦

自动化编译部署

你最好复制我的GO语言源码到你的版本库中,这样才可以自动化部署

阿里云CRP(这里使用的是阿里云自动化部署)

这边教程暂时就先忽略,其实网上可以搜索一大堆教程

其中部署组的设置如下
部署包路径

/www/deploy/www.foxwho.com

应用服务启动脚本路径

/www/deploy/www.foxwho.com/start.sh

服务器中部署相关设置

创建文件夹

mkdir -p /www/deploy/www.foxwho.com/

编辑文件

vim /www/deploy/www.foxwho.com/start.sh

加入

#!/bin/bash

#网址
SITE=www.foxwho.com
#部署根路径
DIR=/www/deploy/$SITE
#备份路径
BACKUP=/wwwData/backup/$SITE
#站点根路径
WWWROOT=/www/wwwroot
#站点路径
SITEPATH=$WWWROOT/$SITE

#gopanth
GO_PATH=/www/go

#解压缩后文件夹
DEPLOYPATH=$DIR/source
#当前时间 
DATETIME=$(date +%Y-%m-%d-%H-%M-%S)

#项目端口号
P_PORT=8091
#数据库用户
P_DB_USER=root
#数据库密码
P_DB_PWD=root
#数据库名
P_DB_NAME=blog_go
#数据库地址
P_DB_HOST=127.0.0.1


echo "备份开始===="
echo "只备份源码,Uploads 目录下不备份"
echo "备份文件存放于${BACKUP}/source/$DATETIME.tar.gz"
#创建备份目录
[ ! -d "$BACKUP" ] && mkdir -p "$BACKUP"
[ ! -d "$BACKUP/source" ] && mkdir -p $BACKUP/source
#创建解压缩目录
[ ! -d "$DEPLOYPATH" ] && mkdir -p $DEPLOYPATH

#备份源码
cd $WWWROOT
#tar -zcpf $BACKUP/source/$DATETIME.tar.gz --exclude=$SITE/Uploads --exclude=$SITE/runtime $SITE

#删除解压缩目录内文件
rm -rf $DEPLOYPATH/*

cd $DIR
#解压缩 整理 git 文件
tar -zxf  package.tgz -C $DEPLOYPATH
cd $DEPLOYPATH
mv blog-go-* tttttt
mv $DEPLOYPATH/tttttt/* $DEPLOYPATH/
rm -rf $DEPLOYPATH/tttttt 
#/
#编译
#
#删除本项目源码
rm -rf $GO_PATH/src/blog
echo $GO_PATH/src/blog
#
#复制最新源码到项目里
mv $DEPLOYPATH/src/blog $GO_PATH/src/

#####################
#数据库相关替换
#配置文件
DB_FILE=$GO_PATH/src/blog/conf/app.conf
#替换数据库
sed -i "s:db_user.*=.*:db_user=\"${P_DB_USER}\":g" $DB_FILE
sed -i "s:db_pass.*=.*:db_pass=\"${P_DB_PWD}\":g" $DB_FILE
sed -i "s:db_name.*=.*:db_name=\"${P_DB_NAME}\":g" $DB_FILE
sed -i "s:db_host.*=.*:db_host=\"${P_DB_HOST}\":g" $DB_FILE
#替换项目端口
sed -i "s:httpport.*=.*:httpport=${P_PORT}:g" $DB_FILE

sed -i "s:type=\"local\":type=\"QiNiu\":g" $DB_FILE
sed -i "s:runmode = dev:runmode = prod:g" $DB_FILE  
sed -i "s:local_save_is=true:local_save_is=false:g" $DB_FILE
echo "qiniu"
sed -i "s:access_key=\"qiniu\":access_key=\"七牛access_key\":g" $DB_FILE 
sed -i "s:secret_key=\"qiniu\":secret_key=\"七牛secret_key\":g" $DB_FILE 
echo "csdn"
sed -i "s:access_key=\"csdn\":access_key=\"csdn id\":g" $DB_FILE 
sed -i "s:secret_key=\"csdn\":secret_key=\"csdn key\":g" $DB_FILE

sed -i "s:http=\"\#upload_default\":http=\"http\:\/\/img.foxwho.com\/\":g" $DB_FILE 
######################
#进入项目目录
cd $GO_PATH/src/blog
#使用beego 打包
/usr/local/go/bin/bee pack

######################
#解压缩打包文件
cd $GO_PATH/src/blog
#fox是项目名称
rm -rf $DEPLOYPATH/*

tar -zxf blog.tar.gz -C $DEPLOYPATH
PACK_PATH=$DEPLOYPATH
######################
#删除不相干文件
rm -rf $PACK_PATH/db
######################
#设置文件权限

#权限赋值
chmod -R 750 $PACK_PATH
chown -R www:www $PACK_PATH
######################
#部署目录是否存在,不存在则创建和设置权限
if [ ! -d "$SITEPATH" ]; then
    mkdir -p $SITEPATH
    chmod -R 777 $SITEPATH
    chown -R www:www $SITEPATH
fi
#######################
#更改项目名称
mv $PACK_PATH/blog $PACK_PATH/blog_2
#复制文件
cp -auR $PACK_PATH/* $SITEPATH/

#上传目录检测,如果不存在则创建
if [ ! -d "$SITEPATH/uploads" ]; then
    mkdir -p $SITEPATH/uploads/image
    mkdir -p $SITEPATH/uploads/attachment
    chmod -R 777 $SITEPATH/uploads
    chown -R www:www $SITEPATH/uploads
fi

echo "结束进程"
#结束进程blog
ps -ef |grep /blog|awk '{print $2}'|xargs kill -9
echo "========="
############
#删除原项目
rm -rf $SITEPATH/blog
#列出当前目录下文件
ls -lh ${SITEPATH}
#名称恢复
mv "${SITEPATH}/blog_2" "${SITEPATH}/blog"
############
#启动项目   
SH="${SITEPATH}.start.sh"
$SH &

echo "SUCCESS"

给该文件执行权限

chmod +x /www/deploy/www.foxwho.com/start.sh

设置启动文件

nohup 如果没有该程序你要先安装哦,nohup --version查看版本号
新建文件

mkdir /www/wwwroot/
vim /www/wwwroot/www.foxwho.com.start.sh

加入:

悄悄的告诉你 这个文件就是源码中src/blog/db/www.foxwho.com.start.sh文件

#!/bin/bash
cd /www/wwwroot/www.foxwho.com
nohup ./blog >/www/wwwLogs/www.foxwho.com.shell.log 2>&1 &

#没有任何日志
##nohup /www/wwwroot/www.foxwho.com/blog >/dev/null 2>&1 &

设置执行权限

chmod +x /www/wwwroot/www.foxwho.com.start.sh

到这里配置差不多了,下面设置nginx

关闭博客

使用如下命令关闭博客

ps -ef |grep /blog|awk '{print $2}'|xargs kill -9

Nginx 配置

增加配置文件

vim /www/lanmps/nginx/conf/vhost/www.foxwho.com.conf

加入如下

server {
    listen       80;

    server_name  www.foxwho.com foxwho.com;

    root /www/wwwroot/www.foxwho.com;
    index index.html index.htm;
    location ~ .*\.(gif|jpg|jpeg|png|bmp|swf) {
            expires      30d;
    }
    location ~ .*\.(js|css)? {
            expires      12h;
    }
    location /(css|js|fonts|img)/ {
        access_log off;
        expires 1d;

        root "/www/wwwroot/www.foxwho.com/";
        try_files $uri @backend;
    }

    location / {
        try_files /_not_exists_ @backend;
    }

    location @backend {
        proxy_pass_header Server;
        proxy_set_header X-Forwarded-For $remote_addr;
        proxy_set_header Host            $http_host;
        proxy_redirect off;
        proxy_pass http://127.0.0.1:8091;
    }   
    access_log  /www/wwwLogs/www.foxwho.com.log access;
}

重启NGINX

/www/lanmps/bin/nginx reload

部署博客

先把你的域名解析指向新服务器地址
然后点击阿里云CRP中的工作刘开始部署,如果没有任何问题,那么现在就可以打开域名了

http://www.foxwho.com

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

风.foxwho

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值