阿里雲服務器部署Tornado應用

 本篇詳細介紹tornado應用部署到阿里雲服務器上的全過程。html

Tornado程序地址:github https://github.com/ddong8/ihasy.gitnode

準備工做:阿里雲服務器CentOS7.4系統+PuTTY遠程登陸python

 

一.更新CentOS系統

安裝完CentOS7.4後慣例更新下系統:mysql

yum update

  

 

 

二.安裝MySQL

而後安裝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

安裝所需環境

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

nginx.png

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了。

相關文章
相關標籤/搜索