1. 程式人生 > >Apache Traffic Server 安裝部署

Apache Traffic Server 安裝部署

tom tcp groupadd 讀寫 火墻 tar.bz2 tables services 創建

安裝環境

系統:CentOS 7.4

更新yum

yum update
yum -y install epel*

先安裝bzip2

yum -y install bzip2

1.下載源代碼

我這裏下載的是 7.1版本的源代碼 最新的已經有8.0版本
http://archive.apache.org/dist/trafficserver/trafficserver-7.1.4.tar.bz2
需要訪問這個url裏面有鏈接 用wget 下載

下載後解壓縮

bzip2 -d .tar.bz2 //將文件解壓成.tar
tar -xf **.tar //解包

下載完成後不要著急編譯 先優化下系統 如果是美國機器做視頻站用的話 最好做個銳速

開始優化Linux參數

執行下面這些命令

cat << ‘EOT‘ >> /etc/sysctl.conf
fs.file-max=655350
net.ipv4.tcp_max_tw_buckets = 300000
net.ipv4.tcp_sack = 1
net.ipv4.tcp_window_scaling = 1
net.ipv4.tcp_max_syn_backlog = 65536
net.core.netdev_max_backlog = 32768
net.core.somaxconn = 32768
net.core.rmem_default=98304
net.core.wmem_default=98304
net.core.rmem_max=2097152
net.core.wmem_max=2097152
net.ipv4.tcp_rmem=4096 98304 2097152
net.ipv4.tcp_wmem=4096 98304 2097152
net.ipv4.tcp_low_latency=1
net.ipv4.tcp_slow_start_after_idle=0
net.ipv4.tcp_timestamps = 1
net.ipv4.tcp_fin_timeout = 20
net.ipv4.tcp_synack_retries = 2
net.ipv4.tcp_syn_retries = 2
net.ipv4.tcp_syncookies = 0
#net.ipv4.tcp_tw_len = 1
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_tw_recycle = 1
net.ipv4.tcp_mem = 94500000 915000000 927000000
net.ipv4.tcp_max_orphans = 3276800
net.ipv4.ip_local_port_range = 1024 65000
EOT

修改完參數執行

sysctl -p /etc/sysctl.conf

繼續修改文件最大打開數

cat << ‘EOT‘ >> /etc/security/limits.d/nofile.conf
* soft nofile 655350
* hard nofile 655350
EOT
cat <<EOF>>/etc/rc.local
#open files
ulimit -HSn 655350
#stack size
ulimit -s 655350
EOF

安裝ATS的必須的環境

yum install -y gcc gcc-c++ pkgconfig pcre-devel tcl-devel expat-devel openssl-devel perl-ExtUtils-MakeMaker bzip2

yum install -y libcap libcap-devel hwloc hwloc-devel ncurses-devel libcurl-devel libunwind libunwind-devel autoconf automake libtool

yum -y install git gcc gcc-c++ autoconf automake libtool pkgconfig pcre-devel tcl-devel expat-devel openssl-devel xz-devel boost-devel perl-ExtUtils-MakeMaker libcap libcap-devel hwloc hwloc-devel libunwind libunwind-devel curl curl-devel ncurses  ncurses-devel

yum install centos-release-scl -y

yum install devtoolset-6-gcc* -y

scl enable devtoolset-6 bash

準備開始編譯ATS

創建屬組和用戶

groupadd ats
useradd -g ats ats

進入ATS目錄開始編譯 編譯安裝需要一會時間 請耐心等待

cd /root/trafficserver-7.1.4

./configure --prefix=/ --with-user=ats --with-group=ats --enable-experimental-plugins

make -j $(nproc)

make install

等待編譯完成 執行啟動下看看

trafficserver start

常用的命令

1.1.啟動
2.trafficserver start 
3.2.關閉
4.trafficserver stop
5.3.重啟
6.trafficserver restart 
7.4.重載配置文件(很多情況下好像都沒有生效)
8.traffic_ctl config reload
9.5.監控ats的狀況 類似於top命令
10.traffic_top
11.6.清理所有緩存
12.traffic_server -Cclear

跨域問題解決

vi add_header.config 

add-header Access-Control-Allow-Origin *

vi plugin.config
header_rewrite.so add_header.config

然後重載配置文件 清除瀏覽器緩存 清除ats緩存

同步時間並修改時區

yum install -y ntpdate
/sbin/ntpdate cn.pool.ntp.org #同步時間
tzselect
timedatectl set-timezone Asia/Shanghai #設置時區

復制root目錄下的腳本到新服務器 (查看權限是否相同,以及屬主屬組)
修改iD配置文件auto.sh autolog.sh
server=6 數字為臥龍後臺播放列表豎列,沒有空著的就聯系主管新增一列,從左往右數新增在第幾列id就為幾

復制線上配置文件/etc/trafficserver下所以配置文件到新增服務器
修改vi records.config下
##############################################################################
CONFIG proxy.config.http.insert_request_via_str INT 0
CONFIG proxy.config.http.insert_response_via_str INT 2
CONFIG proxy.config.http.response_server_str STRING wlzy_cdn(BGP)/1.0
CONFIG proxy.config.http.response_via_str STRING wlzy_cdn(BGP)
##############################################################################

編輯配置文件

vim /etc/trafficserver/storage.conf
/data/ats/cache  750G

分區,格式化,掛載,自動掛載

創建目錄

mkdir -p /data/ats/cache
chown -R ats.ats /data

創建分區
fdisk /dev/sdb
n
p
直接回車全給
w

格式化分區

mkfs.ext4   /dev/sdc

mount /dev/sda1   /data

fstab設置自動掛載

vim /etc/fstab 
/dev/sdc1 /data  ext4 defaults 0 0

創建/web/log目錄

創建/var/log/trafficserver/squid.log 日誌文件

將線上的crontab 拷貝到新的服務器上
配置好後重啟 trafficserver restart 查看tail diags.log日誌報錯信息

安裝pyhton,cacti client相關軟件

wget https://www.python.org/ftp/python/3.6.2/Python-3.6.2.tgz
yum install openssl-devel bzip2-devel expat-devel gdbm-devel readline-devel sqlite-devel -y
tar zxf Python-3.6.2.tgz 
cd Python-3.6.2
./configure --prefix=/usr/local/
make
make altinstall
ln -s /usr/local/bin/python3.6 /usr/bin/python3
ln -s /usr/local/bin/pip3.6 /usr/bin/pip

安裝zabbix zabbix部署在前面博客

將該服務添加到zabbix server

重啟ATS,然後查看一下分區大小。發現使用飆升。說明配置正確了。能正確讀寫緩存文件了,然後查看日誌,確認一下是否還有其他錯誤

創建文件夾

mkdir /web/log
執行./autolog.sh腳本

ip加入DNS解析

https://www.dns.com

測試80,443端口是否正常

telnet ip 80
telnet ip 443

添加白名單增加服務器之後吧服務器重新添加進去

如果不正常開放防火墻端口

systemctl stop firewalld.service #停止firewall
systemctl disable firewalld.service #禁止firewall開機啟動
yum install iptables-services #安裝
vi /etc/sysconfig/iptables #編輯防火墻配置文件
-A INPUT -m state –state NEW -m tcp -p tcp –dport 80 -j ACCEPT
-A INPUT -m state –state NEW -m tcp -p tcp –dport 443 -j ACCEPT
systemctl restart iptables.service #最後重啟防火墻使配置生效
systemctl enable iptables.service #設置防火墻開機啟動

Apache Traffic Server 安裝部署