iptables nginx 透明代理顺带加上ntop监个控
By admin
公司最外层的华为最近动不动老死机,作为半网管,还是得亲自折腾这个事。
正好弄个老服务器把华为换掉,一来可以部署监控,二来可以随意根据iptables调整,不用弄那些专业设备的晦涩难懂的命令。
精力有限,作为一个coder思科华为这些专业设备的命令我是不想去学了,不如学精点iptables更通用些也能达到一样的效果。
一开始看到用varnish代替squid的。想上varnish。后来看了写资料发现varnish是单一或某几个网站做后端缓存代理的,并不具备透明代理的能力。
本来想写个iptables + varnish的教程就泡汤了,怪不得网上没有人写过这个搭配的文章,原来没戏…
不过也好,如果以后网站性能有问题时,可以上varnish,这个对rails的程序可能还真有些必要,有些地方的逻辑占用数据库和内存资源太多了,比如即时生成pdf或数据统计什么的。
squid那玩意没弄过,不过正好nginx也能做透明代理。顺带夸一下nginx,学习回报大!学一个工具,会中N种功能。
首先
绑定网卡名称
ntop安装的时候选择监控网卡,之后可以在 /var/lib/ntop/init.cfg 更改
之后开启ntop可以用3000端口访问但是需要做限制,要不到处都能访问这个3000端口十分不靠谱
在/etc/init.d/ntop里
ntop_start函数里加上启动参数 -w 127.0.0.1:3000
再在ngnix里加一个主机,请求全部转发给127.0.0.1:3000
然后用nginx的这个主机名访问。
后记:因为加了http验证,设置了一个浏览权限,但是后来要改ntop配置的时候,进入admin页面的时候又需要另一个http验证。
双重验证的用户名和密码不一致导致冲突无法进入admin管理页面。开始我还以为是admin密码记错了,后来重新设置了密码ntop -A xxx仍然没用才意识到这点。
当需要进入admin页面的时候先暂时注释掉nginx的http验证那两行好了….
ntop里有个plugin round-robin database
看名字应该是调用rrdtool制图的,一开始不知道,把插件都打开看看,后来马上硬盘就被填满了,发现是rrd这个插件可能是为了制图用了太多硬盘文件,务必关掉。
运行了一周多,ntop常开没问题,cpu在cacti里的监控最高20%多,负载没上2,看来在一个路由上只运行ntop不要装太多东西是可以长期稳定运行的。
cacti
安装好之后cacti的网站根目录下竟然没有jquery.js 和 jquery.cookie.js两个文件导致不出图
自己网上找好这俩文件放到根目录的javascript文件夹里。
因为本机当作路由器,监控的是本机的物理网卡,确不出图。
因为没有安装snmpd服务。
后来打算先暂装cacti,看一阵子如果负载太大就放到其他机器上,路由器的机器先只进行路由、ntop和nginx透明代理的作用。
据于工程师说ntop的负载太大,应该随用随开。
nginx 透明代理
服务器先设置nat
若nginx和网关这个是同机,直接转发端口,默认转到本机上
同时要加上限制,不让自己内网之外的地址滥用该端口进行代理
set +o history # 需要先禁用!的转义,并且man手册里的!位置错了,现在需要写在-s或-d的前面而不是ip前面了。
若不同机则转发到nginx代理地址
将上述iptables 命令放到一个脚本上,加上x权限,放到/usr/local/bin/fw_nat
再在/etc/init.d/里编写个fw_nat也加上x
最后update-rc.d firewall start 01 2 3 4 5 . stop 99 0 1 6 .
添加服务自动启动
nginx代理设置