阿里云部署

阿里云

购买云服务器

基础配置:
  1.计费方式
    按量付费
  2.地域选择
    华南(深圳)
  3.实例
    架构-> x86计算
    分类-> 计算型
    规格族-> 计算型c5 4vCPU 8GiB
    价格: 1.260/小时
  4.存储
    高效云盘 40g
  5.操作系统: centos 7.2 64位
网络和安全组:
	不用改
系统配置:
	自定义密码
	root 密码(大小写字符+数字): chuanzhi_jiuye13_123456
	主机名-> toutiao-web
分组设置:
	不用填
确认订单:
	下一步
购买成功(得先冲钱,最低100)
进入控制台
找到公网ip地址

使用Termius连接服务器

1.NEW HOST
	Label-> ali-toutiao-web
	Address-> 服务器的公网ip地址
	SSH
		Username -> root
		Password -> 密码
2.保存
3.双击打开
4.创建python用户
	useradd python
5.修改python用户密码(chuanzhi)
	passwd python

从虚拟机中导出数据:

mysqldump -uroot -pmysql --databases toutiao >/home/python/toutiao.sql

上传文件到服务器中:

如果已经存在,走阿里内网更快。
scp toutiao.sql root@120.78.184.139:/root/

设置网络:

sudo yum install net-tools

设置主机名:

hostnamectl set-hostname toutiao-web

安装主MySQL:

1.添加MariaDB软件源
	在/etc/yum.repos.d/目录中添加MariaDB.repo文件:
	cd /etc/yum.repos.d
	sudo vi MariaDB.repo
	添加以下内容:
	# MariaDB 10.3 CentOS repository list - created 2018-11-24 14:39 UTC
  # http://downloads.mariadb.org/mariadb/repositories/
  [mariadb]
  name = MariaDB
  #baseurl = http://yum.mariadb.org/10.3/centos7-amd64
  baseurl = http://mirrors.ustc.edu.cn/mariadb/yum/10.3/centos7-amd64
  #gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
  gpgkey=http://mirrors.ustc.edu.cn/mariadb/yum/RPM-GPG-KEY-MariaDB
  gpgcheck=1
2.安装MariaDB
	sudo yum install MariaDB-server MariaDB-client -y
	sudo yum install mariadb-devel -y
	sudo yum install MariaDB-shared -y
3.修改配置文件
	修改 /etc/my.cnf.d/server.cnf
	vim /etc/my.cnf.d/server.cnf
	在 [mysqld] 标签下方添加
	init_connect='SET collation_connection = utf8_unicode_ci' 
  init_connect='SET NAMES utf8' 
  character-set-server=utf8 
  collation-server=utf8_unicode_ci 
  skip-character-set-client-handshake
  
  修改/etc/my.cnf.d/client.cnf
  vim /etc/my.cnf.d/client.cnf
  在 [client] 标签下方添加
  default-character-set=utf8
  修改/etc/my.cnf.d/mysql-clients.cnf
  vim /etc/my.cnf.d/mysql-clients.cnf
  在 [mysql] 标签下方添加
  default-character-set=utf8
4.启动
	设置开机自启
	sudo systemctl enable mariadb
	启动mariadb
	sudo systemctl start mariadb
5.设置root账号
	mysql_secure_installation
	密码: mysql
	后面的设置一路yes即可
	登录测试: mysql -uroot -p
6.Python客户端依赖
	需要使用mysql的python客户端库mysqlclient,安装依赖包:
	sudo yum install python-devel -y
  sudo yum install zlib-devel -y
  sudo yum install openssl-devel -y

安装从MySQL:

1.安装Docker
	sudo yum install -y yum-utils \
  device-mapper-persistent-data \
  lvm2
  
	sudo yum-config-manager \
    --add-repo \
    https://download.docker.com/linux/centos/docker-ce.repo
  
  3分钟
  sudo yum install docker-ce docker-ce-cli containerd.io
	启动docker
	sudo systemctl start docker
	测试docker
	sudo docker run hello-world
2.使用Docker安装MySQL
	sudo docker pull mariadb:10.3.13
3.配置MySQL主从同步
	编辑MySQL master的配置 /etc/my.cnf.d/server.cnf
	vim /etc/my.cnf.d/server.cnf
	在 [mysqld] 标签下方添加
	log-bin=mysql-bin
	server-id=1
	重启主mysql
	sudo systemctl restart mariadb
	编辑MySQL slave的配置
	把master的配置拷过去作为从的配置
	sudo cp -r /etc/my.cnf.d/ /opt/my.cnf.d-slave
	修改从的配置
	vim /opt/my.cnf.d-slave/server.cnf
	在 [mysqld] 标签下方修改
	server-id=10
  read_only=on
  port=8306
  启动docker容器mysql slave
  sudo docker run --name mariadb -v /opt/my.cnf.d-slave:/etc/mysql/conf.d -e MYSQL_ROOT_PASSWORD=mysql -v /opt/mysql-slave-data:/var/lib/mysql -d --network=host mariadb:10.3.13
  
  为mysql master添加用于同步复制的账号
  mysql -uroot -p
	GRANT REPLICATION SLAVE ON *.* TO 'slave'@'%' identified by 'slave';
	FLUSH PRIVILEGES;
	查看mysql master状态
	show master status;
	
	设置mysql slave
	mysql -uroot -p -h 127.0.0.1 -P 8306
	change master to master_host='127.0.0.1', master_user='slave', 	master_password='slave',master_log_file='mysql-bin.000006', master_log_pos=590;
	注意: master_log_file要改成show master status中的文件名
				master_log_pos要改成show master status中的Position值
	start slave;
	show slave status\G

导入头条数据

mysql -uroot -p < toutiao.sql

安装redis

1.从虚拟机中上传redis压缩文件到服务器中
	scp redis-4.0.13.tar.gz root@120.78.184.139:/root/
2.解压
	tar -zxvf redis-4.0.13.tar.gz
3.安装
	安装gcc。 编译redis,需要用到gcc编译器
	sudo yum install gcc
	再装redis
	cd redis-4.0.13
  sudo make
  sudo make install

配置redis集群

1.从虚拟机中上传redis集群配置
	在服务器中创建redis目录
	mkdir -p /etc/redis
	在虚拟机中上传文件
	scp /etc/redis/* root@120.78.184.139:/etc/redis
2.安装Ruby
	wget https://cache.ruby-lang.org/pub/ruby/2.6/ruby-2.6.1.tar.gz
	tar -zxvf ruby-2.6.1.tar.gz
	cd ruby-2.6.1
	./configure
	# make 比较耗时(4分钟)
	sudo make 
	sudo make install
	gem install redis
3.从服务器中上传redis启动脚本
	scp /opt/redis-* root@120.78.184.139:/opt
4.创建存放redis数据库的文件夹
	mkdir -p /var/lib/redis/7000
	mkdir -p /var/lib/redis/7001
	mkdir -p /var/lib/redis/7002
	mkdir -p /var/lib/redis/7003
	mkdir -p /var/lib/redis/7004
	mkdir -p /var/lib/redis/7005
	mkdir -p /var/lib/redis/6381
	mkdir -p /var/lib/redis/6380
4.启动redis集群实例
	/opt/redis-cluster-start.sh
5.启动cluster集群
	sudo cp /root/redis-4.0.13/src/redis-trib.rb /usr/local/bin/
	redis-trib.rb create --replicas 1 127.0.0.1:7000 127.0.0.1:7001 127.0.0.1:7002 127.0.0.1:7003 127.0.0.1:7004 127.0.0.1:7005
6.测试redis集群
	redis-cli -c -p 7000

redis主从

1.使用脚本启动redis主从
	/opt/redis-replication-start.sh
2.测试
	redis-cli -p 6381

安装rabbitmq

1.安装erlang
	在/etc/yum.repos.d/目录中添加rabbitmq_erlang.repo文件
	cd /etc/yum.repos.d
	sudo vi rabbitmq_erlang.repo
	在文件中添加
	# In /etc/yum.repos.d/rabbitmq_erlang.repo
  [rabbitmq-erlang]
  name=rabbitmq-erlang
  baseurl=https://dl.bintray.com/rabbitmq-erlang/rpm/erlang/21/el/7
  gpgcheck=1
  gpgkey=https://dl.bintray.com/rabbitmq/Keys/rabbitmq-release-signing-key.asc
  repo_gpgcheck=0
  enabled=1
  执行安装(3分钟)
  sudo yum install erlang
2.安装RabbitMQ
	rpm --import https://github.com/rabbitmq/signing-keys/releases/download/2.0/rabbitmq-release-signing-key.asc
	在/etc/yum.repos.d/目录中添加rabbitmq_server.repo文件
	cd /etc/yum.repos.d
	vim rabbitmq_server.repo
	
	在文件中添加
  # In /etc/yum.repos.d/rabbitmq_server.repo
  [bintray-rabbitmq-server]
  name=bintray-rabbitmq-rpm
  baseurl=https://dl.bintray.com/rabbitmq/rpm/rabbitmq-server/v3.7.x/el/7/
  gpgcheck=0
  repo_gpgcheck=0
  enabled=1
  执行安装
  sudo yum install rabbitmq-server -y
3.启动
	sudo chkconfig rabbitmq-server on
	sudo systemctl start  rabbitmq-server.service
4.头条项目账号设置
	sudo rabbitmqctl add_user python rabbitmqpwd
	sudo rabbitmqctl add_vhost toutiao
	sudo rabbitmqctl set_user_tags python administrator
	sudo rabbitmqctl set_permissions -p toutiao python ".*" ".*" ".*"

安装Elasticsearch5

1.安装wget
	sudo yum install wget -y
2.下载jdk 官网密码: 13423682841_qinzhiWang
	下载页:
	https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
	得先创建账号
	选中xxx-linux-x64.rpm 或者 xxx-linux-x64.tar.gz
	安装
	rpm -ivh xxx-linux-x64.rpm
	安装后查看java版本
	java -version
	设置环境变量
	vim ~/.bash_profile
	在最后添加
	export JAVA_HOME=/usr/java/default
3.安装Elasticsearch
	rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch
	在/etc/yum.repos.d/ 中编辑elasticsearch5x.repo
	cd /etc/yum.repos.d/
	vim elasticsearch5x.repo
	添加以下内容
	[elasticsearch-5.x]
  name=Elasticsearch repository for 5.x packages
  baseurl=https://artifacts.elastic.co/packages/5.x/yum
  gpgcheck=1
  gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
  enabled=1
  autorefresh=1
  type=rpm-md
  执行安装(10分钟)
  sudo yum install elasticsearch
4.启动
	设置开机启动
	sudo systemctl enable elasticsearch.service
	启动elasticsearch
	sudo systemctl start elasticsearch.service
5.测试
	curl localhost:9200/_cluster/health?pretty
6.安装中文分词器
	上传ik文件
	scp elasticsearch-analysis-ik-5.6.16.zip root@120.78.184.139:/root
	安装
	sudo /usr/share/elasticsearch/bin/elasticsearch-plugin install file:///root/elasticsearch-analysis-ik-5.6.16.zip
7.重新启动
	sudo systemctl restart elasticsearch
8.测试
	curl -X GET 127.0.0.1:9200/_analyze?pretty -d '
{
  "analyzer": "standard",
  "text": "我是&中国人"
}'

	curl -X GET 127.0.0.1:9200/_analyze?pretty -d '
{
  "analyzer": "ik_max_word",
  "text": "我是&中国人"
}'
9.Logstach安装(换成脚本导入import_es_data.py)
	sudo rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch
	在 /etc/yum.repos.d/ 中创建logstash.repo文件
	vim /etc/yum.repos.d/logstash.repo
	输入内容
	[logstash-6.x]
  name=Elastic repository for 6.x packages
  baseurl=https://artifacts.elastic.co/packages/6.x/yum
  gpgcheck=1
  gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
  enabled=1
  autorefresh=1
  type=rpm-md
  安装 (超慢,提前安装)
  sudo yum install logstash
	安装插件
	cd /usr/share/logstash/bin/
  sudo ./logstash-plugin install logstash-input-jdbc
  sudo ./logstash-plugin install logstash-output-elasticsearch
10.上传mysql-connector到服务器
	scp mysql-connector-java-8.0.13.tar.gz python@120.78.184.139:/home/python
	解压
	tar -zxvf mysql-connector-java-8.0.13.tar.gz
11.执行脚本导入数据到elasticsearch
	/home/python/toutiao-backend/scripts/import_elasticsearch_data.sh

git

1.安装
	yum install git -y

配置虚拟环境

1.安装虚拟环境(使用python 用户)
	sudo pip install virtualenv
	sudo pip install virtualenvwrapper
	配置虚拟环境命令环境
	创建目录用来存放虚拟环境
	mkdir $HOME/.virtualenvs
	打开~/.bash_profile文件,并添加如下
	vim ~/.bash_profile
	export WORKON_HOME=$HOME/.virtualenvs
  source /usr/bin/virtualenvwrapper.sh
	测试:重连
	workon
2.安装python3
	下载 ----ali02
	wget https://www.python.org/ftp/python/3.6.4/Python-3.6.4.tar.xz
	解压
  xz -d Python-3.6.4.tar.xz
  tar -xf Python-3.6.4.tar
  安装sqlite3(一定要先装,再装python,不然会报各种未知错误)
  yum install sqlite-devel
  编译
  cd Python-3.6.4
  ./configure prefix=/usr/local/python3
  make && make install
  配置python3的搜索路径: 
  vim ~/.bash_profile
  添加以下内容
  export PATH=$PATH:/usr/local/python3/bin/
  创建头条虚拟环境
  mkvirtualenv -p python3 toutiao
  安装依赖
  workon toutiao
  cd /home/python/toutiao-backend
  pip install -r requirements.txt

配置项目代码

1.使用python用户登录
2.git配置永久保存密码
	git config --global credential.helper store
3.使用git拉取代码
	git clone http://git.meiduo.site/jiuye13/toutiao-backend.git
4.创建logs文件夹
	mkdir -p /home/python/logs
5.运行代码测试
	export FLASK_APP=toutiao.main
	export FLASK_ENV=production
	flask run
	测试:
	curl localhost:5000
6.使用脚本运行代码
	sh /home/python/toutiao-backend/scripts/toutiao_app.sh

安装supervisord

1.安装
	pip install supervisor
2.生成默认配置文件
	echo_supervisord_conf > /etc/supervisord.conf
3.修改/etc/supervisord.conf 文件
	;[include]
	;files = relative/directory/*.ini
	改成
	[include]
	files = /home/python/etc/supervisor/*.conf
	创建存放supervisor配置文件夹
	mkdir -p /home/python/etc/supervisor/
4.启动supervisord(使用python用户)
	supervisord -c /etc/supervisord.conf
5.配置项目由supervisord管理
	创建软链接
	ln -s /home/python/toutiao-backend/scripts/toutiao_app_supervisor.conf /home/python/etc/supervisor/toutiao_app_supervisor.conf
	ln -s /home/python/toutiao-backend/scripts/im_supervisor.conf /home/python/etc/supervisor/im_supervisor.conf
	ln -s /home/python/toutiao-backend/scripts/apscheduler_supervisor.conf /home/python/etc/supervisor/apscheduler_supervisor.conf
6.给命令加上执行权限
	chmod +x /home/python/toutiao-backend/scripts/im.sh
	chmod +x /home/python/toutiao-backend/scripts/toutiao_app.sh
	chmod +x /home/python/toutiao-backend/scripts/apscheduler.sh
6.重新加载配置
	supervisorctl reload
7.测试
	curl localhost:5000

nginx

1.安装nginx
	yum install nginx
2.启动nginx
	sudo nginx
3.配置反向代理访问项目
	创建nginx日志文件夹
	mkdir -p /home/python/logs/nginx
	添加toutiao配置文件
	vim /etc/nginx/conf.d/toutiao.conf
  upstream toutiao-api-backend {
      server localhost:5000;
  }
	server {
    listen  80;
    server_name toutiao_jiuye13.com;
    access_log /home/python/logs/nginx/toutiao_jiuye13.com.access.log main;

    location / {
        client_max_body_size 5M;
        proxy_pass http://toutiao-api-backend;
        proxy_set_header X-Host $host;
        proxy_set_header X-Real-Ip $remote_addr;
        proxy_set_header Connection '';
        proxy_http_version 1.1;
    }
}
	添加im配置文件
	vim /etc/nginx/conf.d/im.conf
	upstream im-backend {
      server localhost:7777;
}

server {
    listen  80;
    server_name toutiao_jiuye13_im.com;
    access_log /home/python/logs/nginx/toutiao_jiuye13_im.com.access.log main;

    location /socket.io/ {
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header User-Agent $http_user_agent;
        proxy_pass http://im-backend;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
        }
}
	重新加载配置
	ngnix -s reload
4.配置本地hosts指向服务器
	vim /etc/hosts
	120.78.184.139 toutiao_jiuye13.com
	120.78.184.139 toutiao_jiuye13_im.com
5.测试
	toutiao_jiuye13.com
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值