一、部署环境
# 1.查看当前python版本
python --version
# 2.下载python3.7的安装包(目前更新到了python3.7.3)
wget https://www.python.org/ftp/python/3.6.4/Python-3.6.4.tar.xz
# 3.解压下载包
tar -xvJf Python-3.6.4.tar.xz
# 4.编译安装
cd Python-3.6.4
./configure --prefix=/usr/local/bin/python3
sudo make
sudo make install
# 5.安装依赖包
pip install tornado # 安装最新版本的包
pip install tornado==5.1.1 # 安装指定版本的包
pip install -r require.txt # 安装所有依赖包(文件名自己定义,一般使用requirements.txt)
# 6.运行程序
python Main.py
# 7.浏览器访问(不用nginx代理转发http请求)
如果tornado使用的是80端口,则直接用域名访问。
如果tornado没有使用80端口,则需要用'域名+端口号'或者'IP+端口号'访问。
# 8.浏览器访问(使用nginx代理转发http请求)
如果nginx使用的是80端口,则直接用域名访问。然后转发给tornado服务器。
如果nginx没有使用80端口,则需要用'域名+端口号'或者'IP+端口号'访问。然后转发给tornado服务器。
# 9.用Nginx监听80端口做代理
Tornado默认是监听IP加端口形式,运行后,使用浏览器访问:IP+端口号。
如果你想支持域名访问,可以用Nginx监听80端口做代理,或者你只有这么一个应用,直接就用Tornado监听80端口免去Nginx这一步,关键是这么干别人使用IP或者域名都能访问。
使用Nginx监听80端口做代理,这时候tornado的端口就不能是80了。nginx的端口是80,http请求默认端口是80,nginx监听到http请求之后,把请求转发给应用服务器tornado。
# 默认为80端口 是因为80端口可以默认不写,这样就简便了url的格式,如百度是80端口的,www.baidu.com:80 跟www.baidu.com 是一样的 只有80端口可以默认不写 要是改成其他端口的话 需要写端口号,比如改成端口号8080 需要写成www.baidu.com:8080。
# HTTP 默认端口是 80, 指提供 HTTP 服务的进程监听在 TCP 80 端口。
# 这好比银行的服务大厅有多个窗口,其中有个窗口提供外币兑换服务。为了让客户更便捷的找到窗口,银行总部规定默认情况下,各分行的第 80 个窗口提供外币兑换服务,这样需要兑换服务的客户只要找到任意一家分行,直奔 80 号窗口便是。
# 这里各分行地址可理解成 IP 地址,大厅的各个窗口可理解成端口。大厅各个窗口的服务内容可由大厅经理安排,这个经理可理解成服务器管理员,意思是虽然 HTTP 默认端口是 80, 管理员也可以改成 81 端口,也可以把 80 端口改成 SSH 等其他服务。
二、使用nginx反向代理
# 0.安装软件包
# sudo apt-get install 软件包名称`
# sudo apt-get install nginx
# 1.安装nginx
# 方法1:apt-get install -y nginx
# 方法2:1.手动下载:http://nginx.org/en/download.html。2.下载完后,利用sftp工具上传到ECS上。如果没有购买外挂硬盘,上传到系统盘也可以。Linux送20GB系统盘。还剩下18GB左右,足够做实验了。
# 方法3:
wget http://nginx.org/download/nginx-1.9.9.tar.gz
tar -zxvf nginx-1.9.9.tar.gz -C /usr/local/src
cd /usr/local/src/nginx-1.9.9
./configure
make
make install
# 最后三步,可以写成一行代码:./configure && make && make install
# 2.监测Nginx服务是否正在运行
netstat -anput | grep nginx
# 3.启动nginx服务
方法1:service nginx start
方法2:进入/usr/sbin/ 即nginx的安装目录。通过 ./nginx 启动nginx服务。
# 4.停止nginx服务
方法1:service nginx stop
方法2:进入/usr/sbin/ 即nginx的安装目录。通过 ./nginx -s stop 停止nginx服务。
方法3:进入/usr/sbin/ 即nginx的安装目录。通过 ./nginx -s quit 停止nginx服务。
# 5.重启nginx服务
方法1:service nginx reload
方法2:进入/usr/sbin/ 即nginx的安装目录。通过 ./nginx -s reload 重启nginx服务。
# 6.卸载软件包
sudo apt-get remove 软件包名称
sudo apt-get remove nginx
# 删除依赖包:sudo apt-get autoremove
# 6.卸载软件包且不保留配置文件
sudo apt-get remove --purge 软件包名称
sudo apt-get remove --purge nginx
# 删除依赖包:sudo apt-get autoremove --purge
# 7.查询nginx进程:
ps aux|grep nginx
# 8.查找nginx安装路径:
whereis nginx
# 9.查看Nginx安装目录、版本号信息
安装目录:ps -ef | grep nginx # /usr/sbin/nginx
版本信息:cd /usr/sbin
nginx -v 或者nginx -V
# 9.查看nginx配置文件路径以及该文件语法是否正确
进入安装目录下面:cd /usr/sbin
查看配置文件路径:./nginx -t
# 参考:nginx安装和测试(已验证):https://www.cnblogs.com/monjeo/p/7570117.html
# 参考:带ssl配置与配置文件的详解:https://www.cnblogs.com/hzl6255/p/7324438.html
# 参考:https://www.cnblogs.com/wyd168/p/6636529.html
# 参考:https://blog.csdn.net/qq_36886883/article/details/80674665
# 参考:https://www.cnblogs.com/MyOceansWeb/p/10577444.html
# 参考:https://blog.csdn.net/menghaocheng/article/details/79861832
Nginx配置文件详解
user www-data;
worker_processes auto;
pid /run/nginx.pid;
events {
worker_connections 768;
# multi_accept on;
}
http {
# 设定负载均衡的服务器列表,weigth参数表示权值,权值越高被分配到的几率越大
# 使用默认的轮询分发配置多个分布的服务主机
upstream tornadoes {
server 127.0.0.1:8081 weight=1; #supervisor控制的域名
server 127.0.0.1:8082 weight=1;
# server 192.168.35.137:80 weight=1;
# server 192.168.35.130:80 weight=1;
}
server{
# listen 8888; # 监听的端口
listen 80; # 监听的端口:80,可以修改。
# server_name www.xx.com; # 定义使用www.xx.com访问,即浏览器输入的地址。
# server_name localhost; # 服务器的地址
server_name 120.79.60.146; # 使用120.79.60.146访问
root /root/home/server/study_test; #定义服务器的默认网站根目录位置
#设定查看Nginx状态的地址
location /nginxstatus{
stub_status on;
access_log on;
}
# 配置分布式负载转发
location / {
allow 120.79.60.146;
proxy_pass_header Server;
proxy_set_header Host $http_host;
proxy_redirect off;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Scheme $scheme;
proxy_pass http://127.0.0.1:8082;
# proxy_pass http://tornadoes;
}
# 配置静态文件服务器
location /static {
alias /home/worker/django_pro_1_11/myweb/static_file/;
}
error_page 404 /404.html;
# 定义错误提示页面
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /root;
}
}
}
# 我们访问120.79.60.146:80就会转发到120.79.60.146:8082上,就可以实现nginx配置的Tornado了。
# 参考:https://blog.csdn.net/yongche_shi/article/details/52004088
# 参考:完整配置:https://blog.csdn.net/sc4599/article/details/50069667
# 参考:完整配置:http://www.nginx.cn/76.html
# 参考:部分配置:https://www.jianshu.com/p/9bebb99368ea
# 参考:部分配置:https://www.cnblogs.com/DjangoBlog/p/8044234.html
# 参考:完整配置:https://blog.csdn.net/ithongchou/article/details/83618112
如何给域名配置https证书
https://blog.csdn.net/qq_38719039/article/details/80202418
https://www.jianshu.com/p/90128aba680e
常见报错
1.error: Unable to locate package 错误解决办法
最后发现问题出在执行sudo apt-get install之前更换了软件源,但是却忘了update下了,于是执行下面的命令:
sudo apt-get update
2.error: command 'x86_64-linux-gnu-gcc' failed with exit status 1
查看自己python的版本,然后下载自己版本Python的devel。
比如python3.6.8 就是:apt-get install python3.6-dev
比如python2.7.12就是:apt-get install python2.7-dev
# apt-get install libpcap-dev:应该不需要执行这条命令
3.pip安装出现Command "python setup.py egg_info" failed with error code 1 的解决方案
sudo python -m pip install --upgrade --force pip
sudo pip install setuptools==33.1.1
4.Ubuntu14.04.3,apt-get出现dpkg: error processing package xxx (--configure)和cups-daemon错误的解决方案:
第一步:sudo mv /var/lib/dpkg/info/ /var/lib/dpkg/info_backup/
第二步:sudo mkdir /var/lib/dpkg/info/
第三步:apt-get update
第四步:apt-get install -y nginx
# 1.执行完上一步操作后会在新的info文件夹下生成一些文件,现将这些文件全部移到info_old文件夹下 命令如下:
# www@TinywanAliYunu:~# mv /var/lib/dpkg/info/* /var/lib/dpkg/info_old/
# 2.把自己新建的info文件夹删掉,命令如下:
# www@TinywanAliYun:~# rm -rf /var/lib/dpkg/info
# 3.把info_old文件夹重新改回info,命令如下:
# www@TinywanAliYun:~# mv /var/lib/dpkg/info_old/ /var/lib/dpkg/info/
https://blog.csdn.net/c465869935/article/details/53242126
https://blog.csdn.net/qq_40285302/article/details/81064739
https://blog.csdn.net/lm_is_dc/article/details/80848912
https://blog.csdn.net/selectY/article/details/78502788
https://m.aliyun.com/yunqi/articles/703955?spm=5176.11156470.0.0.bb95f619KP0yrp