2011年5月

RedHat AS打包rpm和建立本地yum源

上次和Sogou运维的同学交流,他们是通过本地yum源来统一安装应用

借鉴人家的经验,我们今后的运维部署工作,也准备使用yum统一完成

周末2天在家捣鼓了一番,终于完成了nginx的rpm包,并通过yum安装

打包rpm的过程:

1. RedHat上默认的打包路径是/usr/src/redhat/,可以自己定义:

mkdir /opt/rpmbuild

echo %_topdir /opt/rpmbuild > ~/.rpmmacros

2. 建立相应的目录

mkdir /opt/rpmbuild/BUILD

mkdir /opt/rpmbuild/RPMS

mkdir /opt/rpmbuild/RPMS/x86_64

mkdir /opt/rpmbuild/RPMS/noarch

mkdir /opt/rpmbuild/SOURCES

mkdir /opt/rpmbuild/SPECS

mkdir /opt/rpmbuild/SRPMS

3. 将nginx1.0.2源码以及相关附加包拷贝到/opt/rpmsrc/nginx下,并生成tgz

tar zcvf nginx-passport-1.0.2.tgz nginx-passport-1.0.2/

cp nginx-1.0.2-passport.tgz  /opt/rpmbuild/SOURCES/

4. 编辑相应的spec文件

vi /opt/rpmbuild/SPECS/nginx-passort.spec

Summary: Nginx not include mod_passport 

Name: nginx-nopassport

Version: 1.0.2

Release: 1

Source0: %{name}-%{version}.tgz

Packager: yushunzhi

License: GPL

Group: Applications/System

BuildRoot: %{_builddir}/%{name}-root

%define nginx_datadir   /opt/apps_install/nginx-%{version}


BuildRequires: pcre,zlib,openssl-devel,perl

Requires: pcre,zlib,openssl

%description

Nginx %{version} not include mod_passport

%prep

%setup -q

%build

./configure --prefix=%{nginx_datadir} ......

make

%install

rm -rf $RPM_BUILD_ROOT

make install DESTDIR=$RPM_BUILD_ROOT

%clean

rm -rf $RPM_BUILD_ROOT

%files

%{nginx_datadir}/

5. 执行打包

rpmbuild -bb nginx-passport.spec

 

建立本地的yum源:

1. 建立目录

mkdir /opt/yum

mkdir /opt/yum/Server

2. 生成repo文件

vi /etc/yum.repos.d/mtpc.repo

[Server]

name=Server

baseurl=http://..../Server

enabled=1

gpgcheck=0

3. 生成本地xml metadata信息

createrepo -v /opt/yum/Server/

4. 安装

yum install nginx-passport.x86_64

服务器上启用iptables引发的问题

今天,一直服务正常的一台服务器突然频繁报警重启

查看系统负载和IO,都略微偏高,但也不是特别高

查看后台服务器的Log,也没能看出什么问题

开始怀疑是压力问题,于是增加了一台新服务器

但仍旧没能解决问题,服务仍然是时断时续

后来发现从该服务器ping或者telnet后面的服务器,经常会出现超时或异常情况

ping: sendmsg: Operation not permitted 

64 bytes from 10.11.156.46: icmp_seq=6 ttl=60 time=0.241 ms

ping: sendmsg: Operation not permitted

64 bytes from 10.11.156.46: icmp_seq=8 ttl=60 time=0.234 ms

而从同一机房的其它服务器连接后面的服务器,则一切正常

在确定了非网络问题后,又经过一番排查,发现,该服务器上起了iptables

-A FORWARD -p tcp -m tcp --tcp-flags SYN,RST,ACK SYN -m limit --limit 1/sec -j ACCEPT

限制了转发的tcp包的速度,由于该服务器的并发量非常大

使用从/var/log/message或者dmesg可以看到如下错误:

ip_conntrack: table full, dropping packet.

最后将iptables服务关掉后,一切就正常了

对于高并发的服务器,最好不要启用iptables,因为这样会导致链接跟踪表满

如果一定需要启用iptables,则可以用以下方法来处理:

1. 增大 ip_conntrack_max 值

echo "393216" >; /proc/sys/net/ipv4/ip_conntrack_max

 

vi /etc/sysctl.conf

net.ipv4.ip_conntrack_max = 393216

(2): 降低 ip_conntrack timeout时间

vi /etc/sysctl.conf

 

net.ipv4.netfilter.ip_conntrack_tcp_timeout_established = 300

net.ipv4.netfilter.ip_conntrack_tcp_timeout_time_wait = 120

net.ipv4.netfilter.ip_conntrack_tcp_timeout_close_wait = 60

net.ipv4.netfilter.ip_conntrack_tcp_timeout_fin_wait = 120

最新文章

最近回复

  • feifei435:这两个URI实际是不一样的
  • zsy: git push origin 分支 -f 给力!
  • 冼敏兵:简单易懂,good fit
  • Jack:无需改配置文件,看着累! # gluster volume se...
  • Mr.j:按照你的方法凑效了,折腾死了。。。。
  • zheyemaster:补充一句:我的网站路径:D:\wamp\www ~~菜鸟站长, ...
  • zheyemaster:wamp2.5(apache2.4.9)下局域网访问403错误的...
  • Git中pull对比fetch和merge | 炼似春秋:[…] 首先,我搜索了git pull和git fe...
  • higkoo:总结一下吧, 性能调优示例: gluster volume s...
  • knowaeap:请问一下博主,你维护的openyoudao支持opensuse吗

分类

归档

其它