延续前面帖子,在云服务器上搭建Web服务。

以前用Bottle写的Python脚本,虽然也能提供web服务,但很简陋,不能持久运行。下面是比较简单的一种部署方案。内容整理自网络。

1. 环境说明

1.1 服务器环境

TX云服务器最便宜款,该服务器默认只打开常用的端口,所以要手动把端口全开,用于测试。

步骤:【实例】【更多】【安全组】【配置安全组】【删掉当前默认的,勾选下面端口全开的】。

为了安全,测试完要改回去,在公网上端口全开很危险。

1.2 软件环境

CentOS7,Python3,pip3。

下文中的 python3 和 pip3 命令由服务器的软件环境决定,也可能是 python 和 pip。

2. 安装Bottle

2.1 安装:

pip3 install bottle

2.2 测试:

在某个目录下,新建 web.py,内容如下:

from bottle import get,run
@get("/")
def hello():return "hello"run(host="0.0.0.0", port=7000)

然后使用 python3 web.py 或者 python web.py 运行该脚本。

在浏览器中输入 http://127.0.0.1:7000 ,如果出现 hello,说明安装成功。

使用 Ctrl+C 退出命令。

3. 安装 uwsgi

这东西有点类似 Tomcat 的作用,Python Web的容器(中间件)。(一个Java Web程序员的心声)

3.1 安装:

pip3 install uwsgi

3.2 测试:

在某个目录下新建脚本 index.py ,如 /home/apple/myapp/index.py,内容如下:

def application(env,start_response):start_response('200 OK',[('Content-Type','text/html')])return [b"Hello uwsgi!"]

然后,使用如下命令:

uwsgi --http 0.0.0.0:8000 --wsgi-file /hom/apple/myapp/index.py

在浏览器中输入 http://127.0.0.1:8000,如果出现 Hello uwsgi,说明成功。

使用 Ctrl + C 关闭 uwsgi 进程。

3.3 配置

为方便,将 uwsgi 命令的参数存为文件。

创建 /etc/uwsgi/uwsgi.ini 文件,内容如下:

[uwsgi]
socket = 127.0.0.1:9000
master = true
workers = 4
chdir = /home/apple/myapp
wsgi-file = index.py
daemonize = /home/apple/myapp/uwsgi.log
enable-threads = true

daemonize 可注释。若启用则uwsgi以后台进程方式运行,推荐。若关闭或重启uwsgi用【kill -9 pid】 即可。

socket 里的端口号是供nginx使用的,承接nginx转发过来的数据,不是暴露给用户使用的,所以要和 nginx 的某个参数保持一致。

使用如下命令启动:

uwsgi --ini /etc/uwsgi/uwsgi.ini

需要关闭uwsgi时,先使用 ps -ef | grep uwsgi ,找到进程号 123 后,使用命令  kill -9 123 杀掉所有相关进程。

4. 安装Nginx

4.1 安装

 yum install nginx

4.2 配置

在 /etc/nginx/conf.d 目录下,创建文件 uwsgi.conf,内容如下:

server{listen 80;location / {include uwsgi_params;uwsgi_pass 127.0.0.1:9000;}
}

nginx的监听端口80,是暴露给用户使用的;而 uwsgi_pass里面的端口是给 uwsig 转发数据用的内部端口,这里的9000要和uwsgi配置的端口保持一致。

整个流程:用户请求——nginx:80——uwsgi:9000——/home/apple/myapp/index.py——调用Bottle——输出Hello uwsgi。

4.3 启动

首先启动 uwsgi :

uwsgi --ini /etc/uwsgi/uwsgi.ini

再启动 nginx:

service nginx start

在浏览器中输入 http://127.0.0.1:80 ,如果出现 Hello uwsgi ,说明全部安装成功,配置成功。

注意:

1.  用腾讯云服务器时,需将2个配置文件中的127.0.0.1 改为你的 腾讯云服务器的内网IP地址,而不是公网IP。否则会出现Nging内部错误,查看 uwsgi.log 会出现bind()错误,具体参考此文。

2.  如果都没有问题,结果没有出现 Hello uwsgi,反而出现“Welcome to CentOS”时(这是Nginx的默认页面),需要修改nginx的配置文件: /etc/nginx/nginx.conf,将

server {
    listen 80 default_server;  ## 这里默认欢迎页面是80端口,把这个端口改成一个不用的端口号
    listen [::]:80 default_server;   ## 这里默认欢迎页面是80端口,改成一个不用的端口号

中的80,改成不常用的9123等。具体参考此文。

这种情况一般是将nginx的端口改成了80,进入到了nginx的默认页面去了。

5.其它命令

ps -ef | grep nginx   查找nginx进程
kill -9 123  发送SIGKILL信号给进程,告诉进程,你被终结了,请立刻退出
kill 123     发送SIGTERM(15)信号给进程,告诉进程,你需要被关闭,请自行停止运行并退出。
systemctl status nginx.service可以看到具体的错误是什么
pkill -9 uwsgi 关掉服务器
nginx -s reload  重启

最后,调试完后,别忘了把云服务器的安全组设置一下,关闭不必要的端口。

<完>

【Python】TX云服务器下CentOS+Python3+Nginx+uwsgi+Bottle搭建Web服务相关推荐

  1. 云服务器,Linux上安装xampp,搭建node服务,云服务器Firewalld、iptables,nginx反向代理

    目录 写在前面的 前期准备 下载xampp: xampp安装步骤 1.首先链接远程linux服务器 2.xshell终端执行安装命令 3.启动:xampp服务 4.访问数据库,修改数据库密码 安装守护 ...

  2. 服务器网站集成环境哪个好,如何搭建Web服务器之集成环境

    WEB服务器简介 WEB服务器,即网站服务器,也称为WWW(WORLD WIDE WEB)服务器,是指驻留于因特网上某种类型计算机的程序.主要功能是提供网上信息浏览服务.目前最主流的三个Web服务器是 ...

  3. 云服务器,Linux上安装xampp来搭建node,api

    目录 下载xampp: xampp安装步骤 安装守护进程pm2 服务器上启动node服务 Debian 10(Buster)上安装Firewalld 服务器的安全组规则,开放端口 linux查看自己的 ...

  4. 腾讯云服务器CVM(CentOS 7、Tencent Linux)手动搭建LNMP环境(linux+Nginx+Mariadb+PHP)

    手动搭建云服务器运行环境就是喜欢折腾,如果觉得麻烦的网友可以使用LNMP镜像直接启动CVM实例,以便快速建站. 腾讯云服务器CVM(CentOS 7.Tencent Linux)手动搭建LNMP环境( ...

  5. 巧用linux云服务器下的的/dev/shm/,避开磁盘IO不给力!

    巧用linux云服务器下的的/dev/shm/,避开磁盘IO不给力! 一.什么是tmpfs和/dev/shm/? tmpfs是Linux/Unix系统上的一种基于内存的文件系统.tmpfs可以使用您的 ...

  6. python django mysql安装_Django+Nginx+uWSGI+Mysql搭建Python Web服务器

    原标题:Django+Nginx+uWSGI+Mysql搭建Python Web服务器 安装的时候全部选择英文,记得以前选择中文的时候安装时出了问题,服务器组件一个不选,Ubuntu安装做的很贴心,基 ...

  7. Ubuntu+Django+Nginx+uWSGI+Mysql搭建Python Web服务器

    Ubuntu+Django+Nginx+uWSGI+Mysql搭建Python Web服务器 闲着无聊的时候部署了一个Django项目玩,用vm虚拟机部署的. 准备工作 我使用的系统是Ubuntu16 ...

  8. 云服务器(CentOS 7)上面部署Node.js环境

    云服务器(CentOS 7)上面部署Node.js环境 文章目录 云服务器(CentOS 7)上面部署Node.js环境 背景信息 步骤一:部署Node.js环境 部署Node.js环境 步骤二:部署 ...

  9. Linux云服务器下配置Scrapy并抓取数据

    基础装备: Linux云服务器(阿里云Ubuntu 16.04):   建立远程连接的软件(这里用的是XShell): 友情链接: Scrapy入门教程:http://scrapy-chs.readt ...

  10. Linux服务器下安装配置Nginx的教程

    这篇文章主要介绍了Linux服务器下安装配置Nginx服务器的教程,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下 Nginx("engine x")是一款 ...

最新文章

  1. 进fastreboot
  2. linux select 多路复用机制
  3. EXTjs grid与json数据 转载
  4. 视频“双录”全新发布,助力金融业务办理高效合规
  5. C# 温故知新 基础篇(7) 接口思维导图
  6. React Native 环境配置
  7. Abstract Factory(抽象工厂)实践
  8. python读取txt文件存储数组_python : 将txt文件中的数据读为numpy数组或列表
  9. 容器编排技术 -- Kubernetes 重新配置活动集群中节点的 Kubelet
  10. Determining IP information for eth0...failed
  11. L1-012. 计算指数-PAT团体程序设计天梯赛GPLT
  12. IT项目如何做好进度管理
  13. Linux cJSON
  14. 约翰·冯·诺依曼及冯诺伊曼式计算机简介
  15. Nature Microbiology | 王璋/陈荣昌/周宏伟-慢阻肺病呼吸道菌群-宿主互作机制
  16. hdu 1567 2006
  17. linux内核使用scons构建,scons安装和使用
  18. 万亿金融大数据市场待开发
  19. MySQL添加多个管理地址_mysql如何绑定多个ip地址?
  20. java泛型--桥方法

热门文章

  1. Windows内网渗透之信息收集
  2. office2010 启动man_解决word2010启动慢的两种方法
  3. html制作日程安排,在线日程安排怎样做?日程表在线制作工具
  4. linux光盘游戏,Linux下五个好玩的即时战略游戏
  5. 洛谷 P5708 三角形面积 C语言
  6. Linux Ubuntu 安装五笔输入法 ibus-rime 教程
  7. 2021内职班的高考成绩怎么查询,2021山西地区高考查分时间
  8. ocf heartbeat mysql_Heartbeat CRM模式
  9. OpenCV每日函数 WeChat QR 微信二维码检测器
  10. java实现微信二维码支付