云服务器购买
https://ecs-buy.aliyun.com/#/prepay
阿里云ECS服务. 简单项目最低配置就行.
我的个人服务器1核1G1MB带宽
这个配置大概是什么概念呢?? 举个例子
我装了java+apache tomcat, 用war包的形式跑jenkins. 在安装jenkins插件的时候彻底卡死了. 原因是服务器内存不足. 1G的内存不足以让jenkins跑起来....
但是安装mysql+nginx+uwsgi跑django项目没有任何问题. 速度飞快.
我在部署完毕后简单测试了一下.
python requests库
本机mac系统下,编写脚本循环请求远程服务器django项目接口
循环10万次
平均反应速度55ms
uwsgi线程一共7个, 跑完10万次请求 服务器内存还有大约200MB.
以下所有命令例子都是root用户
服务器端口配置
成功购买ECS服务器实例之后, 可以查看到自己的公网ip地址, 以后连接服务器就是用这个ip地址来连接.
在服务器管理控制台中配置实例安全组, 以开放端口.
ssh 22端口
http 80
偶尔测试使用8000端口
mysql数据库 3306端口
tomcat(如果有用到)8080端口.
确保服务器状态处于"运行中"
接下来ssh 连接服务器, 开始敲击各种命令来配置python环境.
mac系统ssh连接远程ubuntu系统.
在够买服务器时应该填写过root用户密码, 这个密码一定包保存好.
mac系统打开终端,
输入 ssh root@11.11.11.11
输入密码回车
举个栗子
ssh root@192.168.0.1
your password
连接成功显示上图.
root表示服务器用户名, 如果创建了新的用户需要用新用户登录, 就将root更换为新的用户名.输入新用户的密码.
连接成功
显示欢迎使用阿里巴巴弹性云计算服务
列举一些常用的终端命令(linux, ubuntu)
命令 | 功能 |
---|---|
ls | 显示当前目录下的内容 |
ls -a | 同时显示隐藏内容 |
cd | 跳转目录 |
cd .. | 跳转至上一级目录 |
mv | 剪切 |
cp | 复制 |
mkdir | 创建路径 |
vim | vim编辑器 |
rm -r | 删除目录 |
apt-get install | 安装软件 |
free | 查看内存情况 |
netstat -lntp | 查看端口号情况 |
top | 查看cpu |
ps -df | 查看进程情况 |
df | 查看磁盘使用情况 |
安装各种软件
先apt-get update
apt-get update
mysql
apt-get install mysql-server
apt-get install mysql-client
apt-get install libmysqlclient-dev
mysql 5.7的坑!!!
1.user表没有password 字段 改为authentication_string
1.开放mysql外网访问
sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf 找到 bind-address=127.0.0.1
修改为
bind-address=0.0.0.0
编辑完成输入
:wq! 强制修改.
最后的效果:
重启mysql
sudo /etc/init.d/mysql restart
2.授权用户进行远程连接.
进入mysql命令执行状态
输入
mysql -u root -p
表示root 用户登录mysql
授权用户进行远程链接.
grant all privileges on *.* to root@"%" identified by "password" with grant option;
flush privileges;
从mysql命令输入状态退出
quit命令. over
nginx
安装nginx
sudo apt-get install nginx
修改nginx用户. 默认是www-data用户, 此用户权限极低.
理论上应该新建操作系统用户来运行web程序, 我这里就简单点(反正没重要数据, 挂了就挂了吧.)统统都是用root用户来运行.
vim /etc/nginx/nginx.conf
修改第一行改为root, 保存并重启nginx
sudo /etc/init.d/nginx start
sudo /etc/init.d/nginx restart
安装python
sudo apt-get install python3.5
sudo apt-get install python3.5-dev
sudo apt-get install build-essential
sudo apt-get install libssl-dev
sudo apt-get install libevent-dev
sudo apt-get install libjpeg-dev
sudo apt-get install libxml2-dev
sudo apt-get install libxslt-dev
sudo apt-get install python-pip
sudo pip install virtualenv
sudo pip install
sudo apt-get install python-pip
sudo pip install virtualenv
sudo pip install virtualenvwrapper
为virtualenvwrapper 写入环境变量
cd ~
ls -a
vim .bashrc
在文件末尾添加环境变量.
export WORKON_HOME=$HOME/.virtualenvs
export PROJECT_HOME=$HOME/workspace
source /usr/local/bin/virtualenvwrapper.sh
之前的文章中有介绍如何使用pip 与 virtualenv,以及virtualenvwrapper.
使用virtualenvwrapper 创建新的python环境.
创建的新的python 环境目录为
~/.virtualenvs/{your environment}
安装git
sudo apt-get install git
为git 配置用户名邮箱.
git config --global user.name "youname"
git config --global user.email "youeamil@email.com"
为git 添加 ssh 私钥. (公钥在你的git服务器上, 私钥用来验证用户身份)
mac系统下文件上传和下载命令
# 下载文件到桌面(从远程服务器下载文件到本机,此处以google dns ip地址举例)
scp root@8.8.8.8:/root/filename.txt /User/username/Desktop
# 下载文件夹到桌面
scp -r root@8.8.8.8:/root/filedir /User/username/Desktop
# cd 到待上传文件目录下,上传文件
scp -r filename.py root@8.8.8.8:/root/filedir
# 进入root用户根目录
cd ~
# 查看.ssh目录
cd .ssh
# 需要将你的git私钥上传到.ssh目录
scp -r id_rsa root@114.114.114.114:/root/.ssh
此时远程服务器有权限拉取托管在git上的 程序.
安装uwsgi
uwsgi使用来运行django服务区项目的 web应用服务器.
apt-get install uwsgi
apt-get install uwsgi-plugin-python
sudo apt-get install uwsgi-plugins-all