用OpenSSH的人都知ssh会把你每个你访问过计算机的公钥(public key)都记录在~/.ssh/known_hosts。当下次访问相同计算机时,OpenSSH会核对公钥。如果公钥不同,OpenSSH会发出警告,避免你受到DNS Hijack之类的攻击。
当重置云系统时,秘钥已经改变,需要重新配置公钥。
ssh-keygen - 认证密钥生成、管理和转换ssh-keygen -R "47.112.154.64" // 删除ip
1.安装软件
# 升级apt-get命令apt-get update# 升级pip3pip3 install --upgrade pip3#install mysqlapt-get install -y mysql-server-5.7apt-get install -y mysql-client-5.7# 安装nginxapt-get install -y nginx-full# 安装venv python3创建虚拟环境apt-get install -y python3-venv# 安装superctl 进程管理工具apt-get install -y supervisor# 安装gitapt-get install -y git# unbutu 安装redis并设为守护进程apt-get install -y gcc automake autoconf libtool make #安装依赖包wget http://download.redis.io/releases/redis-5.0.5.tar.gztar xzf redis-5.0.5.tar.gz #解压cd redis-5.0.5make && make install#修改配置文件设为守护进程vim redis.confdaemonize yes# 设置远程访问protected-mode yesbind 0.0.0.0#配置完成后重启redisredis-server redis.conf
mysql配置使用
- 一般可以直接使用root用户登入mysql或者是查看mysql生成的默认用户,并重新设置密码。
sudo cat /etc/mysql/debian.cnf
- 进入mysql修改密码
mysql -uusername -ppassword update mysql.user set authentication_string=PASSWORD('Klipc@2019USA2China'),plugin='mysql_native_password' where user='root';
- 创建UTF-8编码数据库
CREATE DATABASE online_read DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
- 更改mysql配置
# mysql远程访问vim /etc/mysql/mysql.conf.d/mysqld.cnfbind-address = 0.0.0.0 #添加进去#设置远程访问GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;flush privileges;
注意,authentication_string是密码 ,plugin是验证方式,这两个一定要同时改。从mysql5.7开始root的默认验证方式是auth_socket
这种方式只能用系统root用户登录时才可以登录数据库的root用户。所以需要改为mysql_native_password方式,才可以不受系统用户限制。
- 重启mysql
service mysql restart
2 准备项目
- 添加账户创建目录将项目copy到指定目录
adduser sitespasswd sitesmkdir /sitescd /sitesmkdir envs deploy logs
- 拷贝项目文件;也可以从git拉
scp -r /Users/jiangxiaolong/Desktop/klipc_apis root@47.103.xx.xx:/sites
- 创建虚拟环境并安装项目所需包
python3 -m venv klipc_apis #创建虚拟环境pip install --upgrade pip -i https://pypi.tuna.tsinghua.edu.cn/simple #升级pip命令pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple #安装项目依赖包
* 安装gunicorn;python的web服务器遵循WSGI协议.用于启动django项目
pip install gunicorn==19.9.0 -i https:/pypi.tuna.tsinghua.edu.cn/simplepython manage.py migrate #生成表
## 3. 编辑配置文件3.1 配置gunicorn配置文件`vim /sites/deploy/gunicorn.conf.py`gunicorn配置文件:```plain#/sites/deploy/gunicorn.conf.pybind = "127.0.0.1:8877" #运行端口workers = 5 #开启进程数TIMEOUT = 300 #超时时间logfile = "/sites/logs/gunicorn_klipc.log" #日志文件loglevel = "info" #日志级别proc_name = "klipc_apis" #项目名称
3.2 supervisor配置文件vim /sites/deploy/supervisor.conf
#/sites/deploy/supervisor.conf[program:klipc_apis]command=/sites/envs/klipc_apis/bin/gunicorn --timeout 300 --log-level=DEBUG klipc.wsgi -c /sites/deploy/gunicorn.conf.pydirectory=/sites/klipc_apis/user=sitesautostart=trueautorestart=truestdout_logfile=/sites/logs/klipc_apis.logredirect_stderr=trueenvironment=DJANGO_READ_DOT_ENV_FILE=/home/sites/config/klipc.env[program:celerytasks]command=/sites/envs/klipc_apis/bin/celery worker -A celery_task -l infodirectory=/sites/klipc_apis/user=sitesautostart=trueautorestart=truestdout_logfile=/sites/logs/celerytasks.logredirect_stderr=trueenvironment=DJANGO_READ_DOT_ENV_FILE=/home/sites/config/klipc.env
3.3 nginx配置文件
后端nginx配置文件:vim /sites/deploy/klipc_apis.conf
# /sites/deploy/klipc_apis.confserver {root /sites/klipc_apis;listen 8080;charset utf8;autoindex off;client_max_body_size 128m;access_log /sites/logs/nginx_klipc_apis_access.log;error_log /sites/logs/nginx_klipc_apis_error.log;location / {proxy_pass http://127.0.0.1:8877; #反向代理;访问127.0.0.1:8000/index/ 代理到127.0.0.1:8877/index/include proxy_params;proxy_connect_timeout 300s;proxy_read_timeout 300s;}location /static/ {alias /sites/klipc_apis/static/; #alias}}
3.4 拉取静态文件
#在项目setting.py中配置目录STATIC_ROOT = os.path.join(BASE_DIR, "static")#如果setting.py中配置了STATICFILES_DIRS,需要先注释掉#STATICFILES_DIRS=(#os.path.join(BASE_DIR,'static'),#)#执行代码拉取静态文件python manage.py collectstatic
3.5 切换sites目录下文件属组属主为sites用户
cd /chown -R sites:sites sites
4.建立软链接,启动服务。
4.1 supervisor软链接
#安装supervisor之后默认生成/etc/supervisor/supervisord.conf,如果没有运行以下命令mkdir /etc/supervisorecho_supervisord_conf > /etc/supervisor/supervisord.conf
supervisor 调用的 python一定是要python2的。supervisor支持python2,不支持python3
- 建立supervisor软链接:

cat /etc/supervisor/supervisord.conf #查看supervisor配置文件
supervisor会默认去加载/etc/supervisor/conf.d/目录下后缀是.conf的配置文件。
#in 建立链接 -s:建立软链接 -f:强制执行#建立supervisor配置软链接/etc/supervisor/conf.d/klipc_api.confln -s -f /sites/deploy/supervisor.conf /etc/supervisor/conf.d/klipc_api.conf
supervisor常用命令
supervisorctl #启动supervisor交互restart xxx #开启xxx进程;不写,默认开启全部stop xxx #停止xxx进程;不写,默认停掉所有。restart #重新启动exit #退出
- 建立nginx软链接
cat /etc/nginx/nginx.conf #查看nginx配置
#去掉 include /etc/nginx/sites-enabled 这行nginx会/etc/nginx/conf.d/目录下加载后缀带有.conf的配置文件。建立该目录下的软链接并指向已经写好的配置文件ln -s -f /sites/deploy/klipc_apis.conf /etc/nginx/conf.d/klipc_apis.conf
nginx常用命令:
nginx -tnginx -s reload #重新加载配置service nginx restart #重启nginx服务
