Linux游戏服务器之旅3_python web服务器搭建

本文详细介绍了在Linux CentOS系统中使用Tornado框架搭建Web服务器的过程,包括翻墙下载Tornado版本、手动安装、解决ImportError错误、防火墙配置、使用Supervisor和Nginx进行管理与优化,以及安装Protobuf和数据库连接的相关步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

CentOS系统默认已经装有python2.6版本,对于这个已经够用了

搭建web服务器用到了tornado框架

在linux服务器安装tornado

下载tornado版本

但是由于谷歌被封下载一直失败

我这边是找朋友翻墙下载

手动下载安装: Download tornado-2.2.1.tar.gz

tar xvzf tornado-2.2.1. tar .gz
cd tornado-2.2.1
python setup.py build
sudo python setup.py install

安装完成之后 进入解压目录

python helloword.py

如果这步有错误

python2.*上出现ImportError: No module named backports.ssl_match_hostname错误

解决办法:

tornado.3.*运行在python2.*上必须要安装backports.ssl_match_hostname包

backports.ssl_match_hostname下载链接:http://pan.baidu.com/s/1jGn18Bc 密码:yiz3

 

安装次包前需先安装setuptools

setuptools下载链接:http://pan.baidu.com/s/12AYdw 密码:xozt

安装方法均为python库的正常安装方法:

python setup.py build

python setup.py install


然后127.0.0.1:8888

就可以访问了

如果用其他电脑访问 则要注意防火墙是否允许8888端口


但是执行过这个操作之后就不会有问题 这个得仔细去看下防火墙,以此作为记录

iptables -F回车
iptables -t nat -F回车


Supervisor安装和配置:(以后细细研究)

每次手动在命令行启动应用是比较麻烦的,我们还需要一个能够方便的管理服务进程的工具,包括自动重启进程等,而Supervisor的作用在这里就可以体现了。我们使用它来管理这个Tornado web server相关的进程。首先安装之:

yum install python-setuptools

 
  1. $ easy_install supervisor

echo_supervisord_conf

会显示一个配置模版:


安装完毕后,生成Supervisor的配置文件并编辑:

 
  1. $ echo_supervisord_conf > /etc/supervisord.conf
  2. $ vim /etc/supervisord.conf

在文件末尾加入:

 
  1. [program:hello]
  2. command=python /var/www/index.py --port=8888
  3. directory=/var/www
  4. autorestart=true
  5. redirect_stderr=true

这段配置主要作用就是在Supervisor启动的时候自动启动我们的hello应用对应的Tornado web server进程并纳入管理,具体配置项的意义,可以参考Supervisor官方文档http://supervisord.org/。配置完毕后,我们就可以启动管理了:

 
  1. $ supervisorctl start all

Nginx安装和配置:

首先安装Nginx,如果已安装可以忽略:

 
  1. $ rpm -ivh http://nginx.org/packages/centos/6/noarch/RPMS/nginx-release-centos-6-0.el6.ngx.noarch.rpm
  2. $ yum install nginx

接下来是Nginx的配置,我们需要使用Nginx来将web请求代理到Tornado web server,新建配置文件:

 
  1. $ vim /etc/nginx/conf.d/tornado.conf

输入如下内容:

 
  1. upstream tornado {
  2. server 127.0.0.1:8888;
  3. }
  4.  
  5. server {
  6. listen 80;
  7. root /var/www;
  8. index index.py index.html;
  9.  
  10. server_name server;
  11.  
  12. location / {
  13. if (!-e $request_filename) {
  14. rewrite ^/(.*)$ /index.py/$1 last;
  15. }
  16. }
  17.  
  18. location ~ /index\.py {
  19. proxy_pass_header Server;
  20. proxy_set_header Host $http_host;
  21. proxy_set_header X-Real-IP $remote_addr;
  22. proxy_set_header X-Scheme $scheme;
  23. proxy_pass http://tornado;
  24. }
  25. }

重启Nginx:

 
  1. $ service nginx restart

现在就可以使用Nginx配置中指定的域名直接访问我们的hello应用了。


5.安装protocobuf:

1. 下载protobuf源代码(当前最新版本为:2.5.0)
#cd /opt
#wget https://protobuf.googlecode.com/files/protobuf-2.5.0.tar.gz

2. 解压,编译,安装
#tar zxvf protobuf-2.5.0.tar.gz
#cd protobuf-2.5.0
#./configure
#make
#make check
#make install

3. 继续安装protobuf的python模块(如果不用python,可跳过这一步)
#cd ./python
#python setup.py build
#python setup.py test
#python setup.py install

4. 安装完成,验证Linux命令
#protoc –version

5. 验证Python模块是否被正确安装
#python
>>>import google.protobuf
如果没有报错,说明安装正常。


安装连接数据库:

yum install MySQL-python

有了他就可以正常连接数据库

import MySQLdb

def main():
    print '*** Connecting todatabase'
    cxn=MySQLdb.connect(host='192.168.1.108',user='root', passwd='123456', db='test')
    if not cxn:
          print 'ERROR: connection not supported,exiting'
    return

    cur=cxn.cursor()

    print '*** Creatingusers table'
    cur.execute('CREATETABLE users(login VARCHAR(8), uid INT)')
    print '*** Insertingsome users'
    cur.execute("INSERTINTO users VALUES('john', 7000)")
    cur.execute("INSERTINTO users VALUES('jane', 7001)")
    cur.execute("INSERTINTO users VALUES('bob', 7200)")

    print '*** Search forusers starting with j'
    cur.execute("SELECT *FROM users WHERE login LIKE 'j%'")
    for data incur.fetchall():
          print '%s\t%s' % data

     cur.close()
    cxn.commit()
    cxn.close()

if __name__ == '__main__':
    main()

安装DBUtils:


http://blog.sina.com.cn/s/blog_5e2642f40100xxfc.html

安装

安装为顶层模块

如果你打算在除了Webware之外的程序中使用,推荐安装为顶层模块:

解压安装

python setup.py install 




ImportError: No module named Crypto.Cipher

编译大厅服务器代码的时候报错...百度一大堆没有用的东西,最后google了一下发现下面一段话

if you are using redhat,fedora, centos :

sudo yum install pycrypto

for my case I coouldnot install it using pip

share | improve this answer
完美解决!


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值