当前位置 : 首页 » 文章分类 :  开发  »  阿里云ECS使用记录

阿里云ECS使用记录

美区AWS的EC2太慢了,敲命令都卡,只好迁到阿里云,不可否认目前国内云计算阿里云是老大。
2019.6.4更新,把整套环境安装好后,发现博客页面被篡改到备案页面了,烦人,关键连评论相关的 RESTful API 都给我拦截了,只做个后台服务都不行。果断放弃。幸亏就买了一个月。

1 vCPU 1 GiB (I/O优化) ecs.t5-lc1m1.small 1Mbps
华北 2 可用区 E
CentOS 7.6 64位
Linux ecs-t5 3.10.0-957.5.1.el7.x86_64 #1 SMP Fri Feb 1 14:54:57 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux

https://juejin.im/post/5c62bf5f51882562c5505fa4


ECS秘钥对

云服务器ECS - 网络和安全 - 密钥对

生成密钥对

ECS 的 SSH 密钥对可以在控制台生成,也可以自己用 ssh-keygen 命令生成后将公钥导入ECS,和Git差不多。
我这里选择直接在控制台生成,成功创建SSH密钥对后会下载一个 .pem 文件,就是自己的私钥

阿里云会保存SSH密钥对的公钥部分。在Linux实例中,公钥内容放在~/.ssh/authorized_keys文件内。
您需要下载并妥善保管私钥。私钥使用未加密的PEM(Privacy-Enhanced Mail)编码的PKCS#8格式。

密钥对和实例绑定

把生成或导入的公钥和指定的实例绑定后,才能用这个公钥对应的私钥来免密登录此实例。

  • 一台ECS实例只能绑定一个SSH密钥对。如果ECS实例已经绑定了SSH密钥对,绑定新密钥对后,新密钥自动替换原有的密钥。
  • 如果ECS实例使用密码认证,绑定密钥对后,密码验证方式自动失效。但如果在绑定密钥对之后重置实例密码,除使用密钥对方式之外,您也可以使用密码方式登录实例。
  • 基于数据安全考虑,在实例状态为运行中(Running)绑定或者解绑密钥对时,您需要重启实例使操作生效
  • 如果使用SSH密钥对登录Linux实例,将会禁用密码登录,以提高安全性。

私钥权限过大无法登陆

确保 ssh私钥 文件具有权限 0400 而不是 0777。
否则登录时提示:
错误:未保护的私钥文件

在mac使用时,0644的权限都不行:

xxxxx  ~/.ssh  ssh ecs
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@         WARNING: UNPROTECTED PRIVATE KEY FILE!          @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Permissions 0644 for '/Users/xxx/.ssh/xxx.pem' are too open.
It is required that your private key files are NOT accessible by others.
This private key will be ignored.
Load key "/Users/xxxx/.ssh/xxxx.pem": bad permissions
ec2-user@ec2-xxxxxx.us-west-2.compute.amazonaws.com: Permission denied (publickey,gssapi-keyex,gssapi-with-mic).

必须保护您的私钥文件,防止其他任何用户对其进行读写操作。如果除您外其他任何人都能够读取或写入您的私钥,则 SSH 会忽略您的密钥
获取您在启动实例时指定的密钥对的 .pem 文件在您电脑上位置的完全限定路径。确保 .pem 文件具有权限 0400 而不是 0777。
chmod 0400 .ssh/ecs.pem 改小私钥文件的权限即可

配置ssh config简化登录

可以通过SSH配置来简化连接命令

Host ecs
  HostName 192.*.*.*   // 输入ECS实例的公网IP地址
  Port 22   // 输入端口号,默认为22
  User root   // 输入登录账号
  IdentityFile ~/.ssh/ecs.pem // 输入.pem私钥文件在本机的地址

之后 ssh ecs 即可登录


软件安装(2019)

yum安装git

ecs yum 源已内置 git

[root@ecs-t5 ~]# yum list git
已加载插件:fastestmirror
Loading mirror speeds from cached hostfile
已安装的软件包
git.x86_64   1.8.3.1-20.el7    @updates

直接yum安装即可
sudo yum install git
git 需要依赖 curl,zlib,openssl,expat,libiconv 等库,会自动安装这些依赖。

ssh连接Coding

ssh-keygen -P '' 生成密钥对, 使用默认加密算法,默认文件名,得到私钥文件 id_rsa,公钥文件 id_rsa.pub
登陆Coding页面,点击右上角的 设置 -> SSH公钥 -> 新增公钥, 打开刚才生成的公钥文件id_rsa.pub,复制其内容粘贴到GitHub页面的文本框中。
ssh -T git@git.coding.net 测试连接是否成功

[root@ecs-t5 .ssh]# ssh -T git@git.coding.net
Coding 提示: Hello masikkk, You've connected to Coding.net via SSH. This is a personal key.
masikkk,你好,你已经通过 SSH 协议认证 Coding.net 服务,这是一个个人公钥

yum安装jdk8

yum检索 java-1.8
yum list java-1.8*

安装1.8.0的所有文件(必须使用root用户)
sudo yum -y install java-1.8.0-openjdk*

查看java版本,测试java运行环境

[root@ecs-t5 ~]# java -version
openjdk version "1.8.0_212"
OpenJDK Runtime Environment (build 1.8.0_212-b04)
OpenJDK 64-Bit Server VM (build 25.212-b04, mixed mode)

查看安装目录,先看看java命令的目录:

[root@ecs-t5 ~]# which java
/usr/bin/java
[root@ecs-t5 ~]# ll -h /usr/bin/java
lrwxrwxrwx 1 root root 22 5月  28 16:54 /usr/bin/java -> /etc/alternatives/java

可知安装到了 /etc/alternatives/ 中


yum安装nginx

ECS 的 yum 默认已添加了 nginx 源:

[root@ecs-t5 ~]# yum list nginx
已加载插件:fastestmirror
Loading mirror speeds from cached hostfile
可安装的软件包
nginx.x86_64                                                                                              1:1.12.2-3.el7

直接安装即可
yum install nginx

安装后 nginx 配置文件位置: /etc/nginx/nginx.conf
日志文件位置 /var/log/nginx/access.log

查看 nginx 安装路径

[root@ecs-t5 ~]# rpm -ql nginx
/etc/logrotate.d/nginx
/etc/nginx/fastcgi.conf
/etc/nginx/fastcgi.conf.default
/etc/nginx/fastcgi_params
/etc/nginx/fastcgi_params.default
/etc/nginx/koi-utf
/etc/nginx/koi-win
/etc/nginx/mime.types
/etc/nginx/mime.types.default
/etc/nginx/nginx.conf
/etc/nginx/nginx.conf.default
/etc/nginx/scgi_params
/etc/nginx/scgi_params.default
/etc/nginx/uwsgi_params
/etc/nginx/uwsgi_params.default
/etc/nginx/win-utf
/usr/bin/nginx-upgrade
/usr/lib/systemd/system/nginx.service
/usr/lib64/nginx/modules
/usr/sbin/nginx
/usr/share/doc/nginx-1.12.2
/usr/share/doc/nginx-1.12.2/CHANGES
/usr/share/doc/nginx-1.12.2/README
/usr/share/doc/nginx-1.12.2/README.dynamic
/usr/share/doc/nginx-1.12.2/UPGRADE-NOTES-1.6-to-1.10
/usr/share/licenses/nginx-1.12.2
/usr/share/licenses/nginx-1.12.2/LICENSE
/usr/share/man/man3/nginx.3pm.gz
/usr/share/man/man8/nginx-upgrade.8.gz
/usr/share/man/man8/nginx.8.gz
/usr/share/nginx/html/404.html
/usr/share/nginx/html/50x.html
/usr/share/nginx/html/index.html
/usr/share/nginx/html/nginx-logo.png
/usr/share/nginx/html/poweredby.png
/usr/share/vim/vimfiles/ftdetect/nginx.vim
/usr/share/vim/vimfiles/ftplugin/nginx.vim
/usr/share/vim/vimfiles/indent/nginx.vim
/usr/share/vim/vimfiles/syntax/nginx.vim
/var/lib/nginx
/var/lib/nginx/tmp
/var/log/nginx

systemctl 启动停止nginx

systemctl start nginx.service # 启动nginx服务
systemctl stop nginx.service # 停止nginx服务
systemctl restart nginx.service # 重启nginx服务
systemctl status nginx.service # 查看nginx服务状态

查看nginx服务运行状态结果如下

[root@ecs-t5 system]# systemctl status nginx.service
● nginx.service - The nginx HTTP and reverse proxy server
   Loaded: loaded (/usr/lib/systemd/system/nginx.service; disabled; vendor preset: disabled)
   Active: active (running) since 三 2019-05-29 15:24:32 CST; 14s ago
  Process: 11140 ExecStart=/usr/sbin/nginx (code=exited, status=0/SUCCESS)
  Process: 11136 ExecStartPre=/usr/sbin/nginx -t (code=exited, status=0/SUCCESS)
  Process: 11135 ExecStartPre=/usr/bin/rm -f /run/nginx.pid (code=exited, status=0/SUCCESS)
 Main PID: 11142 (nginx)
   CGroup: /system.slice/nginx.service
           ├─11142 nginx: master process /usr/sbin/nginx
           └─11143 nginx: worker process

5月 29 15:24:32 ecs-t5 systemd[1]: Starting The nginx HTTP and reverse proxy server...
5月 29 15:24:32 ecs-t5 nginx[11136]: nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
5月 29 15:24:32 ecs-t5 nginx[11136]: nginx: configuration file /etc/nginx/nginx.conf test is successful
5月 29 15:24:32 ecs-t5 systemd[1]: Failed to read PID from file /run/nginx.pid: Invalid argument
5月 29 15:24:32 ecs-t5 systemd[1]: Started The nginx HTTP and reverse proxy server.

可以看到 读取的是 默认的配置文件 /etc/nginx/nginx.conf


ECS安装MySQL及远程访问

Linux下安装MySQL

和普通linux下安装mysql大致相同,看mysql官网的文档即可。
或参考笔记 MySQL-Linux安装
root/123456

Getting Started with MySQL - Installing and Starting MySQL
https://dev.mysql.com/doc/mysql-getting-started/en/#mysql-getting-started-installing

创建可远程访问的MySQL账号

创建一个账号,Host为%,即允许所有主机连接,并给账号授权。
然后在ecs命令行中验证可以本地登录mysql

配置mysql绑定ip

查看mysql server绑定ip
show variables like 'bind_address';
默认是*,表示接收所有的IPv4 或 IPv6 连接请求,如没有更改过就不用配置。

编辑ECS安全组配置,放开3306端口入站流量

mysql安装后还不能远程连接,因为ECS防火墙(安全组)默认没有开启mysql的3306端口入站流量
编辑ECS的安全组配置,添加允许所有来源(授权对象为 0.0.0.0/0)的3306端口入站流量

通过公网IP远程连接MySQL数据库

之后便可利用ECS提供的公网IP远程连接mysql访问
可以在Windows或Mac命令行中登录,也可以使用Navicat或DataGrip等图形界面登录

C:\Users\xxx> mysql -u username -h xx-xx-xx-xx -p
Enter password: *******
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MySQL connection id is 11
Server version: 5.6.44 MySQL Community Server (GPL)

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

忽略提示中的 mariadb, 我本地使用的是mariadb客户端。

通过自定义域名远程连接MySQL数据库

ECS 给我们提供了公网IP,可以在自己的DNS提供商处配置自定义域名解析到这个公网IP,这样就可以使用域名远程连接了。
比如在阿里云上,我有个域名 devgou.com, 新加个二级域名: mysql.devgou.com 解析到ECS提供的公网IP,然后就可以使用域名访问了。
mysql -u usrname -h mysql.devgou.com -ppasword


阿里云DNS域名解析配置说明

记录类型

A记录:将域名指向一个IPv4地址(例如:10.10.10.10),需要增加A记录
CNAME记录:如果将域名指向一个域名,实现与被指向域名相同的访问效果,需要增加CNAME记录
MX记录:建立电子邮箱服务,将指向邮件服务器地址,需要设置MX记录
NS记录:域名解析服务器记录,如果要将子域名指定某个域名服务器来解析,需要设置NS记录
TXT记录:可任意填写(可为空),通常用做SPF记录(反垃圾邮件)使用
AAAA记录:将主机名(或域名)指向一个IPv6地址(例如:ff03:0:0:0:0:0:0:c1),需要添加AAAA记录
SRV记录:记录了哪台计算机提供了哪个服务。格式为:服务的名字.协议的类型(例如:_example-server._tcp)
显性URL:将域名指向一个http(s)协议地址,访问域名时,自动跳转至目标地址(例如:将 www.net.cn 显性转发到 www.hichina.com 后,访问 www.net.cn 时,地址栏显示的地址为:www.hichina.com )。
隐性URL:与显性URL类似,但隐性转发会隐藏真实的目标地址(例如:将 www.net.cn 隐性转发到 www.hichina.com 后,访问 www.net.cn 时,地址栏显示的地址仍然为:www.net.cn )。

主机记录

www:将域名解析为www.example.com,填写www;
@:将域名解析为example.com(不带www),填写@或者不填写;
mail:将域名解析为mail.example.com,通常用于解析邮箱服务器;
*:泛解析,所有子域名均被解析到统一地址(除单独设置的子域名解析);
二级域名 :如:mail.example.com, abc.example.com, api.example.com 填写mail,abc,api;
手机网站 :如:m.example.com,填写m。


阿里云ECS软件安装记录(2015)

更改vim设置,tab长度更改为4个空格等

vim打开~/.vimrc
添加如下几行:

set nocompatible
set number
filetype on
set history=1000
set background=dark
syntax on
set tabstop=4
set shiftwidth=4
set showmatch
set guioptions=T
set ruler
set incsearch

yum安装lrzsz

ecs yum 已内置 lrzsz

[root@ecs-t5 ~]# yum list lrzsz
已加载插件:fastestmirror
Loading mirror speeds from cached hostfile
可安装的软件包
lrzsz.x86_64                    0.12.20-36.el7                base

直接安装即可
yum install lrzsz

安装sms

安装我们组的sms-1.1.xx-0.x86_64.rpm 到/usr/local/sms
通过下载rpm软件包安装,命令:
rpm -i rpm包文件名

安装LuaJIT-2.0.3

为了能手动编译sms项目,需要先安装LuaJIT
从官网下载LuaJIT-2.0.3源码,解压后进入LuaJIT-2.0.3目录执行:

$ make
$ make install

默认安装到/usr/local/lib 和 /usr/local/include/luajit-2.0
(我特别查看了一下,在安装LuaJIT之前,/usr/local/lib目录和/usr/local/include目录都是空的)

安装mysql

为了测试haomm流名上报功能,安装mysql,安装的应该是mysql的客户端
使用yum安装,命令:

yum -y install mysql

mysql版本:mysql-5.1.73-3.el6_5.x86_64

安装mysql-server

yum -y install mysql-server

版本:mysql-server-5.1.73-3.el6_5.x86_64.rpm
mysql root用户密码:123456
并创建数据库SMS_RTMP,用户SMS_RTMP,密码SMS_RTMP,创建表haomm_stat

安装mysql-devel

做开发时,和mysql相关的库要调用mysql的头文件或库文件,就需要安装mysql-devel

yum -y install mysql-devel

版本:mysql-devel.x86_64 0:5.1.73-3.el6_5

安装ffmpeg

为了在服务器本地用ffmpeg将文件推成rtmp流
直接将克先发给我的他编好的静态的带h.264和aac编解码库的64位的ffmpeg和ffprobe可执行文件
拷贝到/usr/local/bin下


上一篇 Chrome使用笔记

下一篇 Java-Servlet

阅读
评论
3.2k
阅读预计14分钟
创建日期 2019-05-28
修改日期 2019-05-29
类别

页面信息

location:
protocol:
host:
hostname:
origin:
pathname:
href:
document:
referrer:
navigator:
platform:
userAgent:

评论