重新弄了下Tumbex,能够正常运行了

前言

之前康康是写过一个使用Golang来调用Tumblr API的网站,不过由于采集的原因,导致API分分钟就超过限制,无法正常的使用。

文章查看:

后来康康想起来Tumblr的API除了v2还有v1,不过v1的功能少的可怜,但对于在线解析来说还是够用的了!

于是康康把之前的那个程序重新改写了下,解析使用v1,而采集博客名称列表使用v2。

等于说,使用v2来获取notes信息,通过notes列表中的博客标识,使用v1来进行采集。

安装

所有安装均以FreeBSD为例,其他系统请根据此教程自行变更。

Golang安装

pkg install golang

打开 ~/.cshrc 文件,在 set path 之前添加:

setenv GOPATH /root/go

MongoDB安装

pkg install mongodb
sysrc mongod_enable="YES"
service mongod start

Git安装

pkg install git

Nginx安装

pkg install nginx

代码拉取

代码仓库康康已经迁移到了我自己的代码服务器上了,所以这里是到我的代码服务器拉取。

go get -u git.wskehao.com/ylqjgm/Tumbex

程序编译

cd /root/go/src/git.wskehao.com/ylqjgm/Tumbex
go get .
go build .

启动脚本

保存到 `/usr/local/etc/rc.d/tumbex'

#!/bin/sh
#
# $FreeBSD$
#

# Copyright (C) 2015 by Yuri Victorovich. All rights reserved.

# PROVIDE: tumbex
# REQUIRE: LOGIN
# KEYWORD: shutdown

#
# Add the following line to /etc/rc.conf to enable tumbex:
#
#tumbex_enable="YES"

. /etc/rc.subr

name="tumbex"
rcvar=tumbex_enable
start_cmd="tumbex_start"
stop_cmd="tumbex_stop"

load_rc_config ${name}

: ${tumbex_enable="NO"}

is_process_running() {
  local pidfile=$1
  [ -f $pidfile ] && procstat `cat $pidfile` >/dev/null 2>&1
}

stop_daemon() {
  # assume PID is also PGID (daemon(8) PID is always PGID)
  [ -f "$1" ] && kill -- -$(cat $1)
}

tumbex_start() {
  local logfile=/root/go/src/git.wskehao.com/ylqjgm/Tumbex/tumbex.log
  local pidfile=/var/run/tumbex.pid
  if is_process_running $pidfile; then
    echo "tumbex is already running (pid=$(cat $pidfile))"
    return 1
  fi
  export USER=www
  export HOME=$(echo ~www)
  touch $logfile
  chmod 640 $logfile
  cd /root/go/src/git.wskehao.com/ylqjgm/Tumbex
  /usr/sbin/daemon -P $pidfile -u www /root/go/src/git.wskehao.com/ylqjgm/Tumbex/Tumbex >>$logfile 2>&1
  if is_process_running $pidfile; then
    echo "started tumbex (pid=$(cat $pidfile))"
  else
    echo "failed to start tumbex"
  fi
}

tumbex_stop() {
  local pidfile=/var/run/tumbex.pid
  if is_process_running $pidfile; then
    echo "stopping tumbex (pid=$(cat $pidfile))"
    stop_daemon $pidfile
  else
    echo "tumbex isn't running"
  fi
}

command="/usr/bin/true"

run_rc_command "$1"

加入自启动

chmod +x /usr/local/etc/rc.d/tumbex
sysrc tumbex_enable="YES"
service tumbex start

配置Nginx反代

程序默认运行在8080端口,而且直接使用Golang的Web访问,始终没有Nginx等专业Web服务器给力,所以这里再配置下反代。

server {
    listen 80;
    server_name tumbex.xyz www.tumbex.xyz;
    access_log /var/log/tumbex.log combined;
    index index.html index.htm index.php;
    root /root/go/src/git.wskehao.com/ylqjgm/Tumbex;
    if ($host != tumbex.xyz) {  return 301 $scheme://tumbex.xyz$request_uri;  }

    location / {
        proxy_pass http://127.0.0.1:8080/;
    }

    location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|flv|mp4|ico)$ {
        expires 30d;
        access_log off;
    }

    location ~ .*\.(js|css)?$ {
        expires 7d;
        access_log off;
    }

    location ~ /\.ht {
        deny all;
    }
}

OK,启动Nginx,然后访问看看,已经可以了。

演示站点

这里挂个演示站,仅做测试使用,里面啥内容咱不知道~

地址:https://tumbex.xyz

最后修改:2019 年 04 月 27 日 07 : 48 PM
如果觉得我的文章对你有用,请随意赞赏

发表评论

2 条评论

  1. hhhhhhh

    博主你好,请问这步得错误是什么原因呢
    go get -u git.wskehao.com/ylqjgm/Tumbex
    package git.wskehao.com/ylqjgm/Tumbex: unrecognized import path "git.wskehao.com/ylqjgm/Tumbex" (https fetch: Get https://git.wskehao.com/ylqjgm/Tumbex?go-get=1: dial tcp: lookup git.wskehao.com on 192.168.2.1:53: no such host)

    1. 康康
      @hhhhhhh

      错误原因就是因为我已经把git.wskehao.com关了