Flask: flask + tornado+ nginx组合

在本地完成大部分开发后,迁移到阿里云生产环境。因为是小网站,选择了windows平台,但是后端又选择了flask框架,只能选择tornado web容器和nginx组合。其实,nginx都没有必要,只是为了试着玩玩,看看生产环境如何配置。

tornado代码很简单,就是一个server.py.
在这里插入图片描述具体在阿里云上:
我选择了生产环境配置了一台ecs服务器。
server name 是阿里云上绑定对应域名的www.myweb.com(假定)的主页地址。端口需要看ecs网络安全组对应的端口设置。允许有相应的访问权限就可以。

需要说明的是,这里域名绑定,域名申请,网络安全组设置等不介绍了。

nginx第一次设置,可能会让大家感觉是不是会很复杂?其实大可不必紧张。首先去下载一个nginx到本地,如下:
在这里插入图片描述配置文件 就是conf目录下,nginx.conf文件。打开即可,进行相关设置。
主要就两部分:

1、sever下 listen 端口和server_name

server {
        listen       80;
        server_name  myweb.com;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location / {
            proxy_pass http://localhost:9000;
        }

        #error_page  404              /404.html;
      }

另外一个linux下设置:

db@iZgw041dtbsye3lhp8lz3eZ:~/dataapi/http_server$ cd /etc/nginx
db@iZgw041dtbsye3lhp8lz3eZ:/etc/nginx$ ls
conf.d        fastcgi_params  koi-win     modules-available  nginx.conf    scgi_params      sites-enabled  uwsgi_params
fastcgi.conf  koi-utf         mime.types  modules-enabled    proxy_params  sites-available  snippets       win-utf
db@iZgw041dtbsye3lhp8lz3eZ:/etc/nginx$ sudo vi nginx.conf

在这里插入图片描述在nginx.conf中http下:增加

    
server {
        listen       80;
        server_name  localhost;
        #charset koi8-r;
        #access_log  logs/host.access.log  main;
        location / {
            proxy_pass http://localhost:9090;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Real-Port $remote_port;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        }
        error_page  404              /404.html;
        # redirect server error pages to the static page /50x.html
        error_page   500 502 503 504  /50x.html;
 }

2、location部分

这部分比较重要,否则即使nginx正常,也只是到欢迎来到nginx那个页面,是到不到你应用那的。

proxy_pass http://localhost:9000;

这部分是nginx到tornado web 服务器的分发的部分,tornado 发把端口9000的信息,分发给flask应用。
具体的端口和tornado中的端口一致就OK了。

上面好了,就可以启动tornado和nginx了。如果nginx已经启后,需要再reload一下,更新一下配置。这个可以互联网上到处查到。

常见的ubuntu平台下的修改命令:
sudo systemctl start nginx # 启动
sudo systemctl stop nginx # 停止
sudo systemctl restart nginx #重新启动
ps -ef | grep nginx # 查询nginx状态
sudo nginx -s reload # 修改配置文件后,重新载入配置文件

在这里插入图片描述

nginx的状态,可以在windows下,通过任务管理器看一下,是否正常启动或处于运行状态。

其它具体nginx的相关操作,这里就不详述了。过程比较简单,远远比想象的简单。

一切ok后,你输入www.myweb.com就可以访问了。

问题:

如果访问没有反应,可以看看tornado设置的端口是否被占用了,可以重设一个端口,此时需要nginx conf文件 进行重设一下,并reload。

另外,在flask下,图片等静态文件 最好放在staic文件 夹下,放在其它地方,哪怕是绝对路径也可能找不到。

3、关于真实IP设置

server {
listen 80;
server_name myweb.com;

    #charset koi8-r;

    #access_log  logs/host.access.log  main;

    location / {
        proxy_pass http://localhost:9000;
        proxy_set_header X-Real-IP $remote_addr;
	   proxy_set_header X-Real-Port $remote_port;
	   proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }

    #error_page  404              /404.html;
  }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值