本篇詳細介紹tornado應用部署到阿里雲服務器上的全過程。html
Tornado程序地址:github https://github.com/ddong8/ihasy.gitnode
準備工做:阿里雲服務器CentOS7.4系統+PuTTY遠程登陸python
安裝完CentOS7.4後慣例更新下系統:mysql
1
|
yum update
|
而後安裝MySQL:linux
卸載MariaDBnginx
CentOS7默認安裝MariaDB而不是MySQL,並且yum服務器上也移除了MySQL相關的軟件包。由於MariaDB和MySQL可能會衝突,故先卸載MariaDB。c++
一、安裝新版mysql以前,咱們須要將系統自帶的mariadb-lib卸載git
查找mariadb:github
[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
二、到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
五、 數據庫初始化
爲了保證數據庫目錄爲與文件的全部者爲 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 是 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
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
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,便可實現反向代理。
直接經過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是用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了。