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

原创 2017年04月10日 20:44:34

这段时间刚好 服务器到期,换了另一个服务器,新服务器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

版权声明:原创文章欢迎转载,不过要记得加出处哦

相关文章推荐

Nginx下Go的多种使用方式性能比较

原文链接:http://www.oschina.net/translate/benchmarking-nginx-with-go?from=20131222 英文链接:https://gist....
  • typ2004
  • typ2004
  • 2014年09月22日 21:34
  • 6000

Go、Nginx、Php、Nodejs谁能胜出紫禁之巅

声明:这里的测试框架都是很常用的框架,不去跟一些奇葩但是所谓性能极高的框架进行对比 由于我们在项目中大量使用Iris和nginx这两个Web框架(纯Go语言实现,零内存拷贝),同时也听过很多人问Go的...

用golang fastcgi与nginx配合写web

1.配置nginx/FastCGI This is actually pretty easy. I assume you already have some experience confi...
  • ijibu
  • ijibu
  • 2013年09月24日 15:02
  • 8449

nginx +golang

nginx 配置   01 #列出所有服务器地址,nginx 自动均衡分发请求到各个服务器。  02 upstr...

通过nginx反向代理go语言写的http服务器

#列出所有服务器地址,nginx 自动均衡分发请求到各个服务器。  upstream frontends {        ip_hash;      server ...

beego---https设置

1、首先需要获得一个https的证书,这个证书可以自己做,也可以到ca网站申请。如果是自己做的证书,浏览器访问的时候会提示不安全链接之类,建议还是自己申请。在腾讯云里有免费1年的CA证书可以申请,可以...

Mac下用brew搭建PHP(LNMP/LAMP)开发环境

转自 http://yansu.org/2013/12/11/lamp-in-mac.html Mac下搭建lamp开发环境很容易,有xampp和mamp现成的集成环境。但是集...

thinkphp利用phpexcel实现导出导入excel

第一步:先将以下两个方法写入公共控制器中     public function exportExcel($expTitle,$expCellName,$expTableData){       ...

Nginx反向代理服务器(博客架构优化)

1、概述 上一篇博客(Centos7.2 搭建Apache+Php+Mysql环境)描述了本人个人博客(anxpp.com)服务器又winserver 2012 更换为centos7.2,并...
  • anxpp
  • anxpp
  • 2016年07月02日 01:48
  • 792

【ghost】centos使用nginx实现ghost博客系统的反向代理

~转载请注明http://blog.csdn.net/u013015161/article/details/48375565整个8月份都没有更新博客,一方面是自己在忙一些有的没的,另一方面,也是懒的缘...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:GO 语言博客 搬家部署,NGINX作为代理
举报原因:
原因补充:

(最多只允许输入30个字)