本文总结了这几个月配置和部署服务器的经验,便于今后查找。
准备工作
准备云服务器和操作系统
学生党由于腾讯云的优惠吸引,所以一直使用腾讯家的CVM。这部分的操作方法可以在直接参考腾讯云官网上的指导和文档。
关于服务器系统,个人习惯于使用Ubuntu系统,所以以下的实现以Ubuntu为准。关于本地系统,Window和Ubuntu混合使用,但是以Ubuntu为主。
登录
Ubuntu登录云服务器。可以直接使用终端执行: ssh username@IP,然后输入密码即可。也可使用SSH密钥登录,需先在云服务器控制台创建SSH密钥,然后分配到云服务器上(关机状态),然后将下载的私钥存在本地,在本地使用终端执行:ssh -i <私钥的绝对路径> username@IP 即可登录。
Windows登录云服务器。虽然可以使用Webshell,但是体验太差,推荐Xshell。
文件部署
关于文件传输(上传&下载)和部署,我用过三种方式:
1. Fabric脚本。这是一个python脚本,部署极其方便,使用方法可以参考:廖雪峰、伯乐在线。
2. Github仓库同步。这种方式相比前一种来说,操作稍微麻烦一点,需要许多手动操作。但是优点在于,在服务端修bug可以直接将修复后的代码push到Github上,有利于代码的同步。
3. FileZilla软件。本地是Windows系统时,曾使用过这款软件同步代码,但是效率较低,不推荐。
服务器环境配置
通常情况下,使用较多的软件包括:Python、PHP、MySQL、MongDB、Redis、Nginx、Apache、Supervisor等。每次搭建服务器只会使用到其中一部分软件,但是此处一起总结,具体情况请根据需求进行配置和组合。
Python
先检查是否已经安装了需要的python版本以及其pip。
通常需要安装相应的包,如下。
MySQLdb包,执行命令:
Tornado包,执行命令:
sudo apt-get install python-tornado
或
sudo apt-get install python3-tornado
Aiohttp包,执行命令:
MongoDB包,执行命令:
PHP
暂略。
MySQL
主要是安装一个mysql服务端。执行命令:
sudo apt-get install mysql-server
MongoDB
主要是安装一个mongodb服务端。执行命令:
sudo apt-get install
Redis
暂略。
Nignx
安装Nginx,执行命令:
sudo apt-get install nginx
Nginx配置的方法,请参看我的另一篇博客:Nginx小结。
Apache
暂略。
Supervisor
这是个很不错的进程监管和托管软件,我一般将需要执行的服务端脚本都托管在这里只里执行(在此之前,我竟然使用了很久的screen命令来运行脚本和管理服务器)。
安装Supervisor,执行命令:
sudo apt-get install supervisor
配置Supervisor,暂略。
遇到过一个bug,不生成log。此时可以将command配置成:
python -u /xxx/xxx.py此外可以将log文件的size调大一点。
服务器性能优化
负载均衡。(暂略)
服务器运维
服务器各种日志
服务器维护,最重要的是各种日志,日志的位置、各种日志的作用,应当清清楚楚。
系统级日志
Nginx日志
Supervisor日志
注意包括正常日志和错误日志。
服务器安全问题
云服务器帐号安全
服务器登录安全
服务器数据安全
数据备份。分为两种类型,云备份和本地备份。推荐二者配合使用。
云备份,将服务器重要数据备份到另一个云端,如云硬盘或另一个云服务器。
本地备份,可以使用fabric脚本进行备份。
SSL配置。
1623

被折叠的 条评论
为什么被折叠?



