阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

CentOS 5下安装tfs并使用Nginx做访问

131次阅读
没有评论

共计 6191 个字符,预计需要花费 16 分钟才能阅读完成。

操作系统环境

[root@localhost ~]# uname -a
Linux localhost.localdomain 2.6.18-371.9.1.el5 #1 SMP Tue Jun 10 17:49:56 EDT 2014 x86_64 x86_64 x86_64 GNU/Linux
[root@localhost ~]# cat /etc/issue
CentOS release 5.10 (Final)
Kernel \r on an \m

[root@localhost ~]#

PS:以下操作我只在如上系统进行验证使用,仅供参考

1. 更新 yum 源

CentOS 5.6 更新 yum 源

我这里使用的搜狐的源,博友们可以自己穿件源

cd /etc/yum.repos.d
mv CentOS-Base.repo CentOS-Base.repo.save
wget http://mirrors.sohu.com/help/CentOS-Base-sohu.repo
yum update
yum makecache

2. 安装高版本 mysql
 wget http://centos.ustc.edu.cn/epel/5/x86_64/epel-release-5-4.noarch.rpm
 wget http://rpms.famillecollet.com/enterprise/5/remi/x86_64/remi-release-5.9-1.el5.remi.noarch.rpm
 rpm -ivh *.rpm
 echo ‘priority=1’ >> /etc/yum.repos.d/remi.repo
 echo ‘priority=1’ >> /etc/yum.repos.d/epel-testing.repo
 echo ‘priority=1’ >> /etc/yum.repos.d/epel.repo
 检查 mysql 是否有可升级版本。发现有版本可以升级到 mysql5.5.11。
yum –enablerepo=remi list mysql
删除操作系统自带的低版本的 mysql
yum remove mysql
通过新 yum 源安装高版本的 mysql
yum -y –enablerepo=remi install mysql mysql-server mysql.x86_64  mysql-devel.x86_64

3. 安装支持包 automake autoconfig 和 libtool
验证 automake 是否安装 rpm -qa |grep automake
验证 autoconfig 是否安装 /usr/bin/autoconf -V
auotmake 1.4 以上版本需要安装 libuuid-devel,zlib-devel,mysql-devel 三个开发包
查看以安装的 rpm 包:rpm -qa|grep 包名
rpm -qa|grep libuuid
rpm -qa|grep zlib-devel
rpm -qa|grep mysql-devel
如果你使用 RedHat5.x 和 Centos 5.x 会找不到 libuuid-devel 包,请看下面。
RedHat5.x 和 Centos 5.x 安装:yum install uuidd
安装其它支持包:yum install libtool zlib-devel
下面的 readline 包系统自带了,ncurses 包系统默认没有,我也安装,你安不安自已定吧。
[root@locatfs local]# yum install readline-devel readline
[root@locatfs local]# yum install ncurses-devel.x86_64  ncurses.x86_64

4. 安装 ext4 格式工具
[root@locatfs local]# yum install  e4fsprogs e4fsprogs-devel   
加载 ext4 模块,让系统支持 ext4 文件系统
[root@locatfs local]#  modprobe ext4

5. 安装 tb-common-utils
tb-common-utils 是淘宝开发使用的一个公共库
tbsys 是对操作系统服务的封装,tbnet 则提供了网络框架。tbnet 和 tbsys 被作为 tb-common-utils 被开源了,可以访问  http://code.taobao.org/trac/tb-common-utils/wiki

TFS 依赖于底层开发包 tbnet。tb-common-utils 里面含有 tbsys 和 tbnet
首先编译安装 tblib(tb-common-utils),这里我安装在和 tfs 同一个路径。
(http://code.taobao.org/svn/tb-common-utils/trunk/ tb-common-utils)
gtest 库是单元测试框架,下面先安装安装 gtest
下载 gtest 见本文下面的资源,

[root@locatfs local]# unzip gtest-1.6.0.zip
[root@locatfs local]# cd gtest-1.6.0
[root@locatfs local]# ./configure
[root@locatfs local]# make
[root@locatfs local]# cd make/
[root@locatfs local]# make
[root@locatfs local]# ./sample1_unittest

安装 tb-common-utils
新建一个下载目录,并进入这个目录。下载源码:这里下载版本 18 的因为淘宝开发的东西不往下兼容
svn checkout -r 18 http://code.taobao.org/svn/tb-common-utils/trunk/ tb-common-utils
编译和安装 tbnet, tbsys 库
ps: 建议将这行命令直接写入~/.bash_profile,然后执行“. ~/.bash_profile”
修改:
[root@locatfs local]# vi /etc/profile
添加:(计划安装在 /usr/local/tb/lib 目录)
export TBLIB_ROOT=/usr/local/tb/lib
生效:
[root@locatfs local]# source /etc/profile
[root@locatfs local]# cd tb-common-utils/
[root@locatfs local]# chmod +x *.sh
[root@locatfs local]# ./build.sh
安装完成后, 在 TBLIB_ROOT 表示的目录(/usr/local/tb/lib),应该可以看到 include、lib 两个目录。

6. 编译安装 TFS—-
编译安装 tfs  (安装到 /usr/local/tfs 目录)
[root@locatfs local]# svn checkout http://code.taobao.org/svn/tfs/tags/release-2.2.10 tfs-2.2.10 
进入 tfs 目录
[root@locatfs local]# cd tfs-2.2.10/
[root@locatfs local]# chmod +x *.sh
[root@locatfs local]# ./build.sh  init
[root@locatfs local]# ./configure –prefix=/usr/local/tfs –without-tcmalloc
[root@locatfs local]# make
[root@locatfs local]# make install

7. 安装 nginx-tfs 模块

TFS 模块使用了一个开源的 JSON 库来支持 JSON,先安装 yajl-2.0.1

—————————————— 分割线 ——————————————

yajl-2.0.1 与 gtest 下载

免费下载地址在 http://linux.linuxidc.com/

用户名与密码都是www.linuxidc.com

具体下载目录在 /2014 年资料 / 7 月 /31 日 /CentOS 5 下安装 tfs 并使用 Nginx 做访问

下载方法见 http://www.linuxidc.com/Linux/2013-07/87684.htm

—————————————— 分割线 ——————————————

[root@localhost opt]# cd lloyd-yajl-12ee82a/
[root@localhost lloyd-yajl-12ee82a]# ./configure –prefix=/usr/local/yajl && make && make install

 报错

== removing old build files
== running CMake in build directory
./configure: line 41: cmake: command not found
The “cmake” program is required to configure yajl.
It’s available from most ports/packaging systems and http://cmake.org

解决办法:

yum -y install cmake

继续编译通过

下载 tengine 此软件是 nginx 的升华版本,在 nginx 上二次开发
wget http://tengine.taobao.org/download/tengine-2.0.3.tar.gz
下载 nginx-tfs 模块
wget https://codeload.github.com/alibaba/nginx-tfs/zip/master
安装 tengine 并添加 ngix-tfs 模块
[root@localhost tengine-2.0.3]# ./configure –prefix=/usr/local/nginx –add-module=/opt/nginx-tfs-master && make && make install
报错
./configure: error: the HTTP rewrite module requires the PCRE library.
You can either disable the module by using –without-http_rewrite_module
option, or install the PCRE library into the system, or build the PCRE library
statically from the source with nginx by using –with-pcre=<path> option.
解决办法
[root@localhost tengine-2.0.3]# yum -y install pcre-devel
继续编译 tengine
[root@localhost tengine-2.0.3]# ./configure –prefix=/usr/local/nginx –add-module=/opt/nginx-tfs-master && make && make install
启动 nginx 报错
/usr/local/nginx/sbin/nginx: error while loading shared libraries: libyajl.so.2: cannot open shared object file: No such file or directory
xx 解决办法
[root@localhost tengine-2.0.3]# ln -s /usr/local/lib/libyajl.so.2 /usr/lib64/libyajl.so.2
再次测试成功
启动 nginx
[root@localhost tengine-2.0.3]# /usr/local/nginx/sbin/nginx

8. 使用 nginx 访问上传图片路径

修改 nginx 配置文件

在 nginx 的 http 模块中添加 upstream

tfs_upstream tfs_ns {
        server 192.168.1.230:8108;
        type ns;
    }

在 nginx 的 server 模块中添加 tfs_pass

server {
        listen      80;
        server_name  localhost;
tfs_keepalive max_cached=100 bucket_count=10;
tfs_log “pipe:/usr/sbin/cronolog -p 30min /var/log/nginx/logs/cronolog/%Y/%m/%Y-%m-%d-%H-%M-tfs_access.log”;

 location  ~ .*\.(html|htm|gif|jpg|jpeg|bmp|png|ico|txt|js|css)$ {
              tfs_pass tfs://tfs_ns;
          }

        }

使用 url 访问图片

例如上传的返回值是 xxxxxxxxxxxxxxxxxxxxxx.jpg

  访问使用 http:/NameserverIP/v1/tfs/xxxxxxxxxxxxxxxxxxxxxx.jpg

————————————– 分割线 ————————————–

CentOS 6.2 实战部署 Nginx+MySQL+PHP http://www.linuxidc.com/Linux/2013-09/90020.htm

使用 Nginx 搭建 WEB 服务器 http://www.linuxidc.com/Linux/2013-09/89768.htm

搭建基于 Linux6.3+Nginx1.2+PHP5+MySQL5.5 的 Web 服务器全过程 http://www.linuxidc.com/Linux/2013-09/89692.htm

CentOS 6.3 下 Nginx 性能调优 http://www.linuxidc.com/Linux/2013-09/89656.htm

CentOS 6.3 下配置 Nginx 加载 ngx_pagespeed 模块 http://www.linuxidc.com/Linux/2013-09/89657.htm

CentOS 6.4 安装配置 Nginx+Pcre+php-fpm http://www.linuxidc.com/Linux/2013-08/88984.htm

Nginx 安装配置使用详细笔记 http://www.linuxidc.com/Linux/2014-07/104499.htm

Nginx 日志过滤 使用 ngx_log_if 不记录特定日志 http://www.linuxidc.com/Linux/2014-07/104686.htm

————————————– 分割线 ————————————–

Nginx 的详细介绍:请点这里
Nginx 的下载地址:请点这里

正文完
星哥说事-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-20发表,共计6191字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中