部署Tornado时iptables引发的的一个问题

Sat 29 September 2012

今天在CentOS上部署了一个Tornado,使用nginx做代理,

tornado使用8888,端口,使用nginx作为反向代理,配置文件如下:

server {
    listen 80;
    server_name www.linuxzen.com;

    location / {
        proxy_pass_header Server;
        proxy_redirect off;
        proxy_set_header X-Real_IP $remote_addr;
        proxy_set_header X-Scheme $scheme;
        proxy_pass http://127.0.0.1:8888;
    }
}

iptables filter表的INPUT链是DROP的,所以添加如下规则:

iptables -A INPUT -p tcp  -s 127.0.0.1 --dport 8888 -j ACCEPT

但是访问nginx总是返回502 Bad Gateway.一开始不认为是防火墙的问题,所以百思不得其解,各种问题试过都不行之后,后来想想tornado返回数据同样也是一条进站,所以还需要添加一条

iptables -A INPUT -p tcp -s 127.0.0.1 --dport 8888 -j ACCEPT

至此,通过nginx才能正常访问tornado

Category: Linux Tagged: tornado nginx iptables bad gateway 502

comments


Gentoo下搭建python web环境(nginx+bottle+virtualenv+uwsgi)

Wed 16 May 2012

最近根据Gentoo官方文档整了一台Gentoo的虚拟机,感觉还是不错的,决定放弃CentOS投奔Gentoo,这几天研究NoSQL mongodb和python的bottle框架,web.py效率不是很好,而且是类级,bottle使用装饰器(虽然对她还是懵懂阶段,但是貌似很强大).感觉bottle更加强大和接近python,没有封装太多东西,django只能依照她的思想来做自己的事,最后还是选择了bottle来进入python的web世界,web服务器同样选择nginx.virtualenv可以让一个应用有一个相对独立的环境,特别用于多解释器环境或者经常变更的环境.uwsgi是web和python的中间件(可以这么解释吧).

环境:

系统:Gentoo ip:192.168.3.1

好吧废话不多说,Gentoo安装过程这里不再详述,官方文档很详细,下面记录安装配置过程. 首先Gentoo没有默认安装vim,先安装vim:

emerge vim

安装配置Python

最新版的Gentoo安装完毕后默认使用python3.2,而我惯用Python2.7.先首先安装python2.7. Gentoo使用emerge包管理,安装Python2.7:

cd /usr/portage/dev-lang …

Category: Linux Tagged: web virtualenv uwsgi python Gentoo bottle nginx

comments

Read More

CentOS下搭建python web生产环境(nginx+web.py+uwsgi)

Thu 19 April 2012

前面都一篇文章介绍介绍了Ubuntu下web.py的开发环境搭建,这篇文章主要来介绍如何让web.py结合nginx来实现生产环境

首先使用环境介绍: 系统: CentOS 5.5 32位

Python版本:2.7.2

nginx:1.0.13

ip:192.168.3.3/24

由于CentOS默认自带都python(2.4.3)版本较低,所以我们采用手动编译安装python的方式来使用python 2.7.2

首先安装python 2.7.2

cd /usr/src/
mkdir python
cd python
#下载python2.7.2
wget http://www …

Category: Linux Tagged: web.py web uwsgi spawn-fcgi python nginx

comments

Read More

lnmp环境搭建完全手册(四)——lnmp搭建(源码安装)

Tue 13 March 2012

上面3篇我们主要对系统进行了安装和配置,并且配置了yum包管理器,安装了几个常用的工具,这篇我们就来介绍如何来搭建lnmp环境.这里的LNMP环境是指Linux下搭建Nginx+MySQL+PHP.Nginx是一个高性能的 HTTP 和 反向代理 服务器,也是一个 IMAP/POP3/SMTP 代理服务器。Nginx不仅可以作为web服务器,也可以作为负载均衡器,之前也有文章介绍,大家可以看一下.

MySQL是一款开源免费的数据软件,MySQL是一个小型关系型数据库管理系统,其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了MySQL作为网站数据库.

PHP,是英文超级文本预处理语言Hypertext Preprocessor的缩写。PHP 是一种 HTML 内嵌式的语言,是一种在服务器端执行的嵌入HTML文档的脚本语言,语言的风格有类似于C语言,被广泛的运用。

nginx当前最新稳定版是nginx-1.0.13 首先我们下载nginx,在Linux下执行下面命令:

cd /usr/src                                           # 一般软件源码放在这个目录下
wget http://nginx …

Category: Linux Tagged: 源码包 安装 php nginx MySQL Linux CentOS

comments

Read More

lnmp环境搭建完全手册(三)——应用安装(yum配置和包安装)

Tue 13 March 2012

上两篇文章我给大家讲解了系统的安装,网络和ssh的配置和连接,这篇就给大家讲一下Linux如何安装包.CentOS使用rpm包管理,rpm包安装使用rpm命令

比如你有一个包为:

abc-0.1.3-el5.centos.rpm

包的名称由3部分组成,第一部分是包名,第二部分是版本号,第三部分是使用平台.如果想安装这个包使用如下命令安装:

rpm -ivh abc-0.1.3-el5.centos.rpm    # i是安装 v是显示详细信息,-h显示安装进度

卸载这个包使用:

rpm -e abc

卸载只要指定包名即可卸载.

因为Linux下的包依赖关系很复杂,一个包可能会有很多的依赖包,必须把所有依赖包都装了才能安装这个包.所以使用rpm安装包,就变得很麻烦很头疼.如果想工作变的轻松,我们可以借助工具,在rhel5发行的时候就集成了一个工具yum.Yum(全称为 Yellow dog Updater, Modified)是一个在Fedora和RedHat以及SUSE、CentOS中的Shell前端软件包管理器。基於RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系 …

Category: Linux Tagged: yum nginx man lnmp Linux CentOS

comments

Read More

nginx平台搭建nagios监控系统

Sun 26 February 2012

Nagios是一款开源的免费网络监视工具,能有效监控Windows、Linux和Unix的主机状态,交换机路由器等网络设置,打印机等。在系统或服务状态异常时发出邮件或短信报警第一时间通知网站运维人员,在状态恢复后发出正常的邮件或短信通知。

Nagios 功能:

  • 监视网络服务 (SMTP, POP3, HTTP, NNTP, PING等)
  • 监视主机资源 (进程, 磁盘等)
  • 简单的插件设计可以轻松扩展Nagios的监视功能
  • 服务等监视的并发处理
  • 错误通知功能 (通过email, pager, 或其他用户自定义方法)
  • 可指定自定义的事件处理控制器
  • 可选的基于浏览器的WEB界面以方便系统管理人员查看网络状态,各种系统问题,以及日志等等
  • 可以通过手机查看系统监控信息

本文环境:

  • 系统:CentOS 5.5 32bit
  • ip:192.168.3.3
  • nagios core:nagios-3.3.1.tar.gz
  • web:nginx(nginx-1 …

Category: 监控 Tagged: 配置 监控 rewrite nginx认证 nginx支持cgi nginx nagios Linux

comments

Read More

编写Linux shell脚本来实现nginx日志分割

Fri 17 February 2012

nginx的accss日志每天都会产生大量的日志,不过不进行切割会使查看日志变得异常艰难,这里编写一个脚本结合crond来实现nginx的日志切割,切割的格式为日志后缀的数字越小表示离当前日期越近,比如access.log.2存放的内容要比access.log.1的内容要早.

好了,废话不多说,脚本内容如下:

#!/bin/sh
# Author   : cold night
# Filename : nglogcut.sh
export PATH=/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
LogPath='/usr/local/nginx/logs/access.log'    # 定义日志绝对路径 …

Category: shell Tagged: 日志 分割 shell nginx log Linux cut

comments

Read More

nginx+keepalived配置高可用HTTP群集

Thu 09 February 2012

Nginx不仅是一款优秀的WEB服务器,同时可以根据nginx的反代理可以配置成强大的负载均衡器.这里就介绍如何把nginx配置成负载均衡器,并结合keepalived配置高可用的集群. 一般集群主要架构为:

前端为负载均衡器两个:主/备,两种工作方式,一种是备机待机状态,主机故障时备机接管主机工作实现故障庄毅,在主机故障恢复完成时备机继续仅需待机状态,第二种是主备同时工作,一台宕机另外一台自动接管另一台的工作实现故障转移. 第一种方式可以通过将域名解析到一个虚拟ip(vip)上,主负载均衡器绑定虚拟ip,当主负载均衡器出现故障时,通过keepalived自动将vip绑定到备用负载均衡器上同时arping网关刷新MAC地址.,避免单点故障. 第二种方式主备同时绑定一个vip,把域名通过DNS轮询的方式解析到这两个服务器上,主机出现故障,备机就将主机绑定vip绑定到备机上,同时arping网关刷新MAC地址.实现故障转移.

中间为WEB服务器作为real server,处理请求. 后端为数据库和分布式文件系统.数据库一般为主从两台.分布式文件系统有效解决WEB服务器之间的数据同步.有的还会将图片服务器单独分离出来放在后端.

本文使用环境:

  • CentOS 5.5 32位
  • nginx:nginx-1.0.11
  • keepalived:keepalived-1.1.19.tar.gz
  • 主调度器 …

Category: 负载均衡 Tagged: 高可用 负载均衡 群集 反向代理 双机 nginx keepalived

comments

Read More
Page 1 of 1

Fork me on GitHub