阿里云服务器部署Tornado应用
本篇详细介绍tornado应用部署到阿里云服务器上的全过程。
Tornado程序地址:github https://github.com/ddong8/ihasy.git
准备工作:阿里云服务器CentOS7.4系统+PuTTY远程登录
一.更新CentOS系统
安装完CentOS7.4后惯例更新下系统:
1
|
yum update |
二.安装MySQL
然后安装MySQL:
卸载MariaDB
CentOS7默认安装MariaDB而不是MySQL,而且yum服务器上也移除了MySQL相关的软件包。因为MariaDB和MySQL可能会冲突,故先卸载MariaDB。
1、安装新版mysql之前,我们需要将系统自带的mariadb-lib卸载
查找mariadb:
[root@iZwz94qazh62gk5ewl4ei2Z home]# rpm -qa | grep -i mariadb
mariadb-libs-5.5.52-1.el7.x86_64
rpm -qa | grep -i mariadb
卸载mariadb
[root@iZwz94qazh62gk5ewl4ei2Z home]# rpm -e --nodeps mariadb-libs-5.5.52-1.el7.x86_64
rpm -e --nodeps mariadb-libs-5.5.56-2.el7.x86_64
2、到mysql的官网下载最新版mysql的rpm集合包:mysql-5.7.20-1.el7.x86_64.rpm-bundle.tar
wget https://cdn.mysql.com//Downloads/MySQL-5.7/mysql-5.7.20-1.el7.x86_64.rpm-bundle.tar
然后解压:
tar -xvf mysql-5.7.20-1.el7.x86_64.rpm-bundle.tar
然后安装:
rpm -ivh mysql-community-common-5.7.20-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-5.7.20-1.el7.x86_64.rpm
rpm -ivh mysql-community-devel-5.7.20-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-5.7.20-1.el7.x86_64.rpm
安装mysql-community-server会报错提示缺少libaio.so.1
报错如上图,需要安装libaio.so.1
64位系统安装:
wget http://mirror.centos.org/centos/6/os/x86_64/Packages/libaio-0.3.107-10.el6.x86_64.rpm
rpm -ivh libaio-0.3.107-10.el6.x86_64.rpm
32位系统现在很少了,yum似乎默认安装32位的:
yum install libaio.so.1
再安装即可成功:
rpm -ivh mysql-community-server-5.7.20-1.el7.x86_64.rpm
5、 数据库初始化
为了保证数据库目录为与文件的所有者为 mysql 登陆用户,如果你的linux系统是以 root 身份运行 mysql 服务,需要执行下面的命令初始化
1
|
[root@iZwz94qazh62gk5ewl4ei2Z mysql] # mysqld --initialize --user=mysql |
如果是以 mysql 身份登录运行,则可以去掉 --user 选项。
另外 --initialize 选项默认以“安全”模式来初始化,则会为 root 用户生成一个密码并将该密码标记为过期,登陆后你需要设置一个新的密码,
而使用 --initialize-insecure
命令则不使用安全模式,则不会为 root 用户生成一个密码。
这里演示使用的 --initialize 初始化的,会生成一个 root 账户密码,密码在log文件里,红色区域的就是自动生成的密码
1
2
3
4
5
6
7
|
[root@iZwz94qazh62gk5ewl4ei2Z mysql] # cat /var/log/mysqld.log 2017-06-05T14:30:52.709474Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details). 2017-06-05T14:30:55.590590Z 0 [Warning] InnoDB: New log files created, LSN=45790 2017-06-05T14:30:56.000269Z 0 [Warning] InnoDB: Creating foreign key constraint system tables. 2017-06-05T14:30:56.109868Z 0 [Warning] No existing UUID has been found, so we assume that this is the first time that this server has been started. Generating a new UUID: 960c533e-49fb-11e7-91f2-00163e089fd2. 2017-06-05T14:30:56.116186Z 0 [Warning] Gtid table is not ready to be used. Table 'mysql.gtid_executed' cannot be opened. 2017-06-05T14:30:56.116777Z 1 [Note] A temporary password is generated for root@localhost: :Wu?2QQutQwj |
现在启动mysql数据库systemctl start mysqld.service
(Centos7特有的启动方式)
可以使用下面两个命令对mysql进行停止,启动和重启:
启动:
使用 service 启动:service mysqld start
使用 mysqld 脚本启动:/etc/inint.d/mysqld start
使用 safe_mysqld 启动:safe_mysqld&
停止:
使用 service 启动:service mysqld stop
使用 mysqld 脚本启动:/etc/inint.d/mysqld stop
mysqladmin shutdown
重启:
使用 service 启动:service mysqld restart
使用 mysqld 脚本启动:/etc/inint.d/mysqld restart
连接数据库
[root@iZwz94qazh62gk5ewl4ei2Z mysql]# mysql -u root -p
Enter password:
密码输入: :Wu?2QQutQwj
修改密码:
set password = password('你的密码');
三.安装nginx
安装所需环境
Nginx 是 C语言 开发,建议在 Linux 上运行,当然,也可以安装 Windows 版本,本篇则使用 CentOS 7 作为安装环境。
一. gcc 安装
安装 nginx 需要先将官网下载的源码进行编译,编译依赖 gcc 环境,如果没有 gcc 环境,则需要安装:
yum install gcc-c++
二. PCRE pcre-devel 安装
PCRE(Perl Compatible Regular Expressions) 是一个Perl库,包括 perl 兼容的正则表达式库。nginx 的 http 模块使用 pcre 来解析正则表达式,所以需要在 linux 上安装 pcre 库,pcre-devel 是使用 pcre 开发的一个二次开发库。nginx也需要此库。命令:
yum install -y pcre pcre-devel
三. zlib 安装
zlib 库提供了很多种压缩和解压缩的方式, nginx 使用 zlib 对 http 包的内容进行 gzip ,所以需要在 Centos 上安装 zlib 库。
yum install -y zlib zlib-devel
四. OpenSSL 安装
OpenSSL 是一个强大的安全套接字层密码库,囊括主要的密码算法、常用的密钥和证书封装管理功能及 SSL 协议,并提供丰富的应用程序供测试或其它目的使用。
nginx 不仅支持 http 协议,还支持 https(即在ssl协议上传输http),所以需要在 Centos 安装 OpenSSL 库。
yum install -y openssl openssl-devel
官网下载
1.直接下载.tar.gz
安装包,地址:https://nginx.org/en/download.html
2.使用wget
命令下载(推荐)。
wget -c https://nginx.org/download/nginx-1.12.2.tar.gz
我下载的是1.12.2版本,这个是目前的稳定版。
解压
依然是直接命令:
tar -zxvf nginx-1.12.2.tar.gz
cd nginx-1.12.2
配置
其实在 nginx-1.12.2 版本中你就不需要去配置相关东西,默认就可以了。当然,如果你要自己配置目录也是可以的。
1.使用默认配置
./configure
编译安装
make
make install
查找安装路径:
whereis nginx
启动、停止nginx
cd /usr/local/nginx/sbin/
./nginx
./nginx -s stop
./nginx -s quit
./nginx -s reload
./nginx -s quit
:此方式停止步骤是待nginx进程处理任务完毕进行停止。./nginx -s stop
:此方式相当于先查出nginx进程id再使用kill命令强制杀掉进程。
查询nginx进程:
ps aux|grep nginx
重启 nginx
1.先停止再启动(推荐):
对 nginx 进行重启相当于先停止再启动,即先执行停止命令再执行启动命令。如下:
./nginx -s quit
./nginx
2.重新加载配置文件:
当 ngin x的配置文件 nginx.conf 修改后,要想让配置生效需要重启 nginx,使用-s reload
不用先停止 ngin x再启动 nginx 即可将配置信息在 nginx 中生效,如下:
./nginx -s reload
启动成功后,在浏览器可以看到这样的页面:
开机自启动
即在rc.local
增加启动代码就可以了。
vi /etc/rc.local
增加一行
/usr/local/nginx/sbin/nginx
设置执行权限:
chmod 755 /etc/rc.local
到这里,nginx就安装完毕了,启动、停止、重启操作也都完成了。
反向代理
cd /usr/local/nginx/conf/
使用vi或nano编辑器在该目录下新建一个ihasy.conf文件输入以下内容:
vi ihasy.conf
upstream ihasy {
server 127.0.0.1:9001; #Tornado
} ## Start www.ihasy.com ##
server {
listen 80;
server_name www.ihasy.com ihasy.com; #root html;
#index index.html index.htm index.py index; ## send request back to Tornado ##
location / {
proxy_pass http://ihasy; #Proxy Settings
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_next_upstream error timeout invalid_header http_500 http_502 http_503 http_504;
proxy_max_temp_file_size 0;
proxy_connect_timeout 90;
proxy_send_timeout 90;
proxy_read_timeout 90;
proxy_buffer_size 4k;
proxy_buffers 4 32k;
proxy_busy_buffers_size 64k;
proxy_temp_file_write_size 64k;
}
}
## End www.ihasy.com ##
再使用vi或nano打开 /usr/local/nginx/conf/nginx.conf
vi /usr/local/nginx/conf/nginx.conf
在http下添加一行
include ihasy.conf;
保存,重启nginx,即可实现反向代理。
四.安装git
直接通过yum安装
yum install git
获取tornado应用ihasy.com
git clone https://github.com/ddong8/ihasy.git
进入ihasy目录
cd ihasy
使用PIP安装模块之前,要先安装 libffi-devel python-devel,不然会报错
yum install libffi-devel python-devel
再使用
pip install -r requirements.txt
安装模块完毕
按照下图创建db,建表
五.安装supervisor
supervisor是用python写的一个进程管理工具,用来启动,重启,关闭进程。
pip install supervisor
supervisor的配置文件
supervisor安装完毕后,会有一个配置文件supervisord.conf
运行
echo_supervisord_conf
命令,可输出文件详细
我们使用重定向运算符将配置文件定向到/etc路径下(方便管理)
echo_supervisord_conf>/etc/supervisord.conf
在supervisord.conf的末尾添加如下代码:
vi /etc/supervisord.conf
[program:ihasy]
command=python /root/ihasy/application.py --port=9001 --mysql_database=ihasy --mysql_host=localhost --mysql_password=764895 --mysql_user=root
directory=/root/ihasy
autorestart=true
redirect_stderr=true
supervisor服务启动
运行命令
supervisord -c /etc/supervisord.conf
supervisor开机启动
即在rc.local
增加启动代码就可以了。
vi /etc/rc.local
增加一行:
supervisord -c /etc/supervisord.conf
设置执行权限:
chmod 755 /etc/rc.local
然后重启就可以自动运行nginx,supervisor了。
阿里云服务器部署Tornado应用的更多相关文章
- 阿里云服务器部署Tornado应用指南
本篇详细介绍tornado应用部署到阿里云服务器上的全过程. Tornado程序地址:github https://github.com/ddong8/ihasy.git 准备工作:阿里云服务器Cen ...
- 阿里云服务器部署Office online注意事项
阿里云服务器部署Office online注意事项 一.参考配置 实例规格:4核8GB(IO优化) 网络带宽:5Mbps 系统盘:40G 存储盘:200G OS:Windows Server 2016 ...
- 分享阿里云推荐码 IC1L2A,购买服务器可以直接打9折,另附阿里云服务器部署ASP.NET MVC5关键教程
阿里云推荐码为:IC1L2A 阿里云还是不错滴. 以windows server 2008 R2为例,介绍如何从全新的服务器部署MVC5 站点. 新购买的阿里云服务器是没有IIS的,要安装IIS: 控 ...
- 怎么在阿里云服务器部署多个tomcat
部署前准备: 1.到阿里云官网购买一台服务器 2.给阿里云服务器挂盘,阿里云有教程这里不讲解,自己看. Linux 系统挂载数据盘 视频:Linux服务器挂载数据盘 3.下载tomcat http: ...
- 【Linux】阿里云服务器部署--禅道
Xshell部署环境 回到Xshell界面,连上阿里云服务器,参考上一篇[linux学习1-Xshell连接阿里云ECS服务器](https://www.cnblogs.com/yoyoketang/ ...
- 如何在阿里云服务器部署Django
这段时间一直在搞我的网站——大学易,一个大学生评课网站,主要是提供课程的详尽信息(比如老师会不会经常点名,有没有期中考试),课程资料的下载等等. 这篇文章主要是分享给那些菜鸟,就是像我一样完全没有搞过 ...
- Spring框架学习笔记(6)——阿里云服务器部署Spring Boot项目(jar包)
最近接外包,需要部署服务器,便是参考了网上的几篇博文,成功在阿里云服务器成功部署了Spring Boot项目,特记下本篇笔记 Spring Boot项目打包 这里说一下部署的一些问题 1.mysql驱 ...
- 阿里云服务器部署Web环境
一.配置阿里云服务器 进入阿里云官方网站(https://www.aliyun.com/). 初次使用的话使用支付宝快速注册账户,并进行个人实名认证. 点击试用中心. 选择第二个,云服务器2核4G. ...
- 记录第一次阿里云服务器部署java web工程的经历
起因:测试一个微信小程序,发现所有的请求要求为https的形式,开发工具忽略后手机无法测试,故尝试配置. 准备:阿里云服务器一台 域名一个(解析在服务器) tomcat7.0.54 j ...
随机推荐
- 各种优化方法总结比较(sgd/momentum/Nesterov/adagrad/adadelta)
前言 这里讨论的优化问题指的是,给定目标函数f(x),我们需要找到一组参数x,使得f(x)的值最小. 本文以下内容假设读者已经了解机器学习基本知识,和梯度下降的原理. Batch gradient d ...
- Android Saripaar 注解详解
写这篇文章的原因 在移动端一般很少使用复杂的表单,一般针对于属性的更改都会打开一个新的页面进行更改.虽然不多,但是也会有.如果一个页面要输入的内容包括姓名.地址.邮箱.手机号等,对各个属性的验证会非常 ...
- 配置Tomcat监听80端口、配置Tomcat虚拟主机、Tomcat日志
6月27日任务 16.4 配置Tomcat监听80端口16.5/16.6/16.7 配置Tomcat虚拟主机16.8 Tomcat日志扩展邱李的tomcat文档 https://www.linuser ...
- 重启testjenkins的步骤
在linux下编译caffe的过程中,发生错误,导致linux系统蹦了,没办法,重启linux系统. 之前安装在docker下的jenkins也停掉了. 先启动jenkins的步骤如下: 1.先启动d ...
- 如何切换本地的GIT账号
如何切换本地的GIT账号 1.为什么登陆第一次Git之后,就不用登陆了呢? 因为电脑已经将你的登陆凭据给保存起来了. 这也正是你不知道如何切换账号的原因. 2.在哪里能看已经保存的登陆凭证呢?并能够切 ...
- pyecharts实现星巴克门店分布可视化分析
项目介绍 使用pyecharts对星巴克门店分布进行可视化分析: 全球门店分布/拥有星巴克门店最多的10个国家或地区: 拥有星巴克门店最多的10个城市: 门店所有权占比: 中国地区门店分布热点图. 数 ...
- 【灵魂拷问】你真的懂得Mysql的管理和使用吗?
作者 | Jeskson 来源 | 达达前端小酒馆 MySQL管理,数据库管理和数据表管理,用户管理. 初始化数据库,创建数据库,查看数据库,删除数据库. 创建数据表,查看数据表,修改数据表,删除数据 ...
- 用Python调用华为云API接口发短信
[摘要] 用Python调用华为云API接口实现发短信,当然能给调用发短信接口前提条件是通过企业实名认证,而且有一个通过审核的短信签名,话不多说,showcode #!/usr/bin/python3 ...
- 【nodejs原理&源码赏析(9)】用node-ssh实现轻量级自动化部署
[摘要] node脚本实现轻量级自动化部署 示例代码托管在:http://www.github.com/dashnowords/blogs 一. 需求描述 前端工程出包后实现简易的自动化部署. 二. ...
- Python协程与Go协程的区别二
写在前面 世界是复杂的,每一种思想都是为了解决某些现实问题而简化成的模型,想解决就得先面对,面对就需要选择角度,角度决定了模型的质量, 喜欢此UP主汤质看本质的哲学科普,其中简洁又不失细节的介绍了人类 ...