CVM 操作记录

CVM 上的操作记录。

CentOS 7.2

ngrok 服务器搭建

可参考 imike 的CentOS下部署Ngrok服务器

  • 安装依赖库
1
2
sudo yum update
sudo yum install build-essential golang mercurial git
  • 获取 ngrok 源码
1
2
git clone https://github.com/inconshreveable/ngrok.git ngrok
cd ngrok
  • 生成证书并替换代码中默认证书,修改域名为解析到云主机的域名。
1
2
3
4
5
6
7
NGROK_DOMAIN="cross.forec.cn"
openssl genrsa -out base.key 2048
openssl req -new -x509 -nodes -key base.key -days 10000 -subj "/CN=$NGROK_DOMAIN" -out base.pem
openssl genrsa -out server.key 2048
openssl req -new -key server.key -subj "/CN=$NGROK_DOMAIN" -out server.csr
openssl x509 -req -in server.csr -CA base.pem -CAkey base.key -CAcreateserial -days 10000 -out server.crt
cp base.pem assets/client/tls/ngrokroot.crt
  • 编译:sudo make release-server release-client,编译结束后 bin 目录下会有 ngrokdngrok 两个可执行文件,对应服务器和客户端。
  • 不同系统使用的客户端需要重新编译
    • windows: sudo GOOS=windows GOARCH=amd64 CGO_ENABLED=0 make release-client
    • arm: sudo GOOS=linux GOARCH=arm CGO_ENABLED=0 make release-client
    • mac: sudo GOOS=darwin GOARCH=amd64 make release-client
  • 设置域名解析,增加记录 A,主机记录为 cross,记录值为云主机公网 IP。
  • 启动服务器,下面命令指定 http 端口映射到 8081https 映射到 8082。
1
./bin/ngrokd -tlsKey=server.key -tlsCrt=server.crt -domain="cross.forec.cn" -httpAddr=":8081" -httpsAddr=":8082"

域名解析

http://blog.forec.cn 解析至 https://forec.github.io

  • 向解析列表添加一条 CNAME 记录,主机记录为 blog,记录值为 forec.github.io
  • 在 Github 博客仓库中根目录添加一个文件,文件名为 CNAME,文件内容为 blog.forec.cn

开启 IPv6

  • 新建 /etc/modprobe.d/ipv6.conf,添加 options ipv6 disable=0
  • 向自启动脚本添加 sysctl -w net.ipv6.conf.all.disable_ipv6=0
  • 重启,或直接运行上面的命令,观察 ifconfig 结果。

使用 tunnelbroker 分配 IPv6 地址

  • 在 tunnelbroker 注册,并分配一个 tunnel,填入 VPS 外网 IPv4 地址。
  • 在 tunnel 的 example configuration 选项卡下选择 Linux-route2,将生成的脚本拷贝到自启动脚本中。
  • 重启,观察 ifconfig,应增加一个 he-ipv6 网卡,并可看到对应 IPv6 地址。

Nginx 配置

  • 从官网获得 nginx 最新版本链接,wget 到本地
  • 安装编译依赖包: yum -y install zlib zlib-devel openssl openssl--devel pcre pcre-devel
  • 安装 nginx 依赖包:yum install GeoIP gd libXpm libxslt
  • 编译、安装
1
2
3
4
5
tar -zxvf nginx-1.10.2.tar.gz
cd nginx-1.10-2
./configure
make
make install
  • /usr/local/nginx/sbin/nginx 运行,在浏览器输入 IP 观察是否显示欢迎页
  • /etc/profile 增加环境变量并 source /etc/profile 更新
1
2
PATH=/usr/local/nginx/sbin:$PATH
export PATH

为 Ngrok 做反向代理

  • 要令 monitor.cross.forec.cn 作为 ngrok 代理,该域名对应的 80 端口转发至本地 9999 端口。在 /usr/local/nginx/conf 增加配置文件 ngrok_monitor.conf
1
2
3
4
5
6
7
8
9
10
11
12
server{
listen 80;
server_name monitor.cross.forec.cn;
location / {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host:8081;
proxy_set_header X-Nginx-Proxy true;
proxy_set_header Connection "";
proxy_pass http://127.0.0.1:9999;
}
}

安装 MySQL

  • 腾讯云 CentOS 7.2 的 yum 源不提供 mysql-server
  • 下载 mysql 的 repo 源: wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm
  • 安装源: sudo rpm -ivh mysql-community-release-el7-5.noarch.rpm
  • 安装 mysql :sudo yum install mysql-server
  • 启动 mysqld 服务:systemctl start mysqld.service
  • 修改密码:mysqladmin -u USER -p password PASSWORD 或使用 root 账户登入 mysql,执行
1
2
3
USE mysql;
UPDATE user SET password=PASSWORD('123456') WHERE user='root';
FLUSH PRIVILEGES;
  • 开机启动 mysqld 服务:systemctl enable mysqld.service

WordPress + Nginx 配置

1
2
3
4
5
6
7
8
9
if (-f $request_filename/index.html){
rewrite (.*) $1/index.html break;
}
if (-f $request_filename/index.php){
rewrite (.*) $1/index.php;
}
if (!-f $request_filename){
rewrite (.*) /index.php;
}

Nginx HTTPS 配置

  • 安装 openssl 和 openssl-devel:yum install openssl openssl-devel
  • 颁发证书
1
2
3
4
5
cd /usr/local/nginx/conf
openssl genrsa -des3 -out server.key 1024
openssl req -new -key server.key -out server.csr
openssl rsa -in server.key -out server_nopwd.key
openssl x509 -req -days 365 -in server.csr -signkey server_nopwd.key -out server.crt
  • 增加配置文件 wordpress_https.conf,除下面部分,其它和 wordpress 配置文件相同
1
2
3
4
5
6
server {
listen 443;
sever_name forec.cn;
ssl_certificate /usr/local/nginx/conf/server.crt;
ssl_certificate_key /usr/local/nginx/conf/server_nopwd.key;
}


原创作品,允许转载,转载时无需告知,但请务必以超链接形式标明文章原始出处(https://forec.github.io/2016/11/02/cloud-virtual-machine-config/) 、作者信息(Forec)和本声明。

分享到