docker 学习笔记

     因为我本职是前端工程师,这个docker一直都有了解,一般运维人员会用到的一个虚拟机,方便迁移和升级服务器的。

      由于我想在公司的服务器上搞一个node服务器,但是老大说所有服务器都是在docker上运行的,所有我运行这个node,也需要在docker上运行。😓~可是我还不懂怎么操作docker,那就花点时间把它攻破吧。

      之前我的vps运行了5年都没升级了,最新的wordpress,mysql,node都装不了,想搞点新花样都不行。原因是一直运行着老版本的centos6.4。之前实在没办法,嫌麻烦,一直没升级,因为升级系统需要重新装各种服务器,迁移备份文件,超级烦。所以都没弄。趁着这个docker刚刚学完的机会,感觉把vps升一升。现在用起来贼爽。

      我的wordpress是在 php+mysql+apache环境下搭建的,现在需要用docker重新搭起来
      1.apache
安装Apache的docker,在应用市场上搜索 https://hub.docker.com/ 一定要用官方提供的镜像。

      2.php

安装Php 由于php是apache的一个拓展,安装起来真的很麻烦,搜了一下 https://hub.docker.com/_/php 发现php有捆绑apache的docker的镜像直接用了。 那就可以忽略apache的单独安装了

      3.mysql

https://hub.docker.com/_/mysql
看了一下文档,不是很复杂

      4.wordpress

再看一下,居然直接有worpress集成的镜像,镜像里已经包含对应的apache和php,也就是我只要安装wordpress和mysql的镜像就行了

      秉着服务跟随应用的概念,worpress这个应用已经把apache和php集成进去了。我自己需要再分装一层把,mysql也集成进去。有可能我其它应用需要node或者其它版本的mysql,则需要安装一个新的docker服务器包含起来。

       最后,由于各种docker参数和指令结合再一起确实是能把wordpress跑起来。但是也太复杂了。正好docker-compose这个功能就是为了解决这个问题,基本上配置好以后就是docker-compose build/up/down/rm 这样就能重启,构建,删除服务等操作。

     5.nginx

理论上apache已经是能把web服务器跑起来了,但是考虑到以后还有很多的应用场景,比如https,node服务器,或其它端口的应用。我需要把http/https的协议集中管理,后来我又把nginx做了一层方向代理。

由于方向代理的http头有很多cookie,url相关信息,会影响后面的应用,配置的时候需要注意。

 参考资料如下:

https://www.cnblogs.com/randomlee/p/8761799.html

https://www.w3cschool.cn/docker/docker-hello-world.html

https://blog.csdn.net/qq_36148847/article/details/79427878

http://www.ruanyifeng.com/blog/2018/02/docker-tutorial.html

http://www.ruanyifeng.com/blog/2018/02/docker-wordpress-tutorial.html

HTTPS工作原理

通俗一点,HTTPS就是在HTTP上面加一个SSL,SSL是个什么,到底怎么加?公钥私钥是怎么产生,怎么运作的?相信很多前端都是对他只停留在一知半解的水平。现在针对一下这几个问题写个blog分析一下。

  1. 什么是公钥,什么是私钥。

  2. HTTPS在用户敲完地址之后按回车之后的流程,跟http有啥区别?

  3. HTTPS所需要的证书怎么申请。

  1. 关于公钥,私钥:

        一、公钥加密 
假设一下,我找了两个数字,一个是1,一个是2。我喜欢2这个数字,就保留起来,不告诉你们(私钥),然后我告诉大家,1是我的公钥。

        我有一个文件,不能让别人看,我就用1加密了。别人找到了这个文件,但是他不知道2就是解密的私钥啊,所以他解不开,只有我可以用
数字2,就是我的私钥,来解密。这样我就可以保护数据了。

        我的好朋友x用我的公钥1加密了字符a,加密后成了b,放在网上。别人偷到了这个文件,但是别人解不开,因为别人不知道2就是我的私钥,
只有我才能解密,解密后就得到a。这样,我们就可以传送加密的数据了。

        
 

        二、私钥签名
如果我用私钥加密一段数据(当然只有我可以用私钥加密,因为只有我知道2是我的私钥),结果所有的人都看到我的内容了,因为他们都知
道我的公钥是1,那么这种加密有什么用处呢?

        但是我的好朋友x说有人冒充我给他发信。怎么办呢?我把我要发的信,内容是c,用我的私钥2,加密,加密后的内容是d,发给x,再告诉他
解密看是不是c。他用我的公钥1解密,发现果然是c。
这个时候,他会想到,能够用我的公钥解密的数据,必然是用我的私钥加的密。只有我知道我得私钥,因此他就可以确认确实是我发的东西。
这样我们就能确认发送方身份了。这个过程叫做数字签名。当然具体的过程要稍微复杂一些。用私钥来加密数据,用途就是数字签名。

         

        总结:公钥和私钥是成对的,它们互相解密。

        公钥加密,私钥解密。

        私钥数字签名,公钥验证

  2.  一般大网站在用户敲了http://www.xxxxx.com 之后web服务器会重定向到301,告诉浏览器到跳转到https://wwww.xxxxxx.com

      然后流程如下:

QQ20161108-0.png

        

3 ca证书怎么申请?

    淘宝有卖。。。。

SVN忽略文件或文件夹几种方法总结

每个项目中的配置文件都有区别,在本地开发和线上生产,之前一直很懒,不想去忽略提交一些配置文件,只是在提交的时候排除掉。但是在项目上传部署的时候又必须小心,害怕覆盖线上的配置,今天就硬头皮看一下。
如果你使用的是WIN,那么可以在SVN右键菜单里设置,可以设置全局忽略条件或者单独忽略掉一个文件以及文件夹,下面是command-line下的操作。 继续阅读

crtmpserver流媒体服务器的介绍与搭建

这是研究我的智能小车摄像头用到的文章
 
前言

      Adobe的FMS(Flash Media Server)是很好用。但对应着分级授权的是money和有限功能开放。商业的东西既然用不起,也阻碍了我们的技术进步,那就只能求助于开源社区了。而crtmpserver就是FMS的替代者之一
1. crtmpserver简介
    crtmpserver的功能总来说:
  • 支持推送给它的rtmp流的接收与播放器请求的分发;
  • rtmp流媒体服务器树状网络集群的构建;
  • 支持iPhone,Android。

继续阅读

CentOS下Hadoop安装配置教程

1、安装JDK
(1)下载安装JDK:确保计算机联网之后命令行输入下面命令安装JDK
sudo apt-get install sun-java6-jdk
(2)配置计算机Java环境:打开/etc/profile,在文件最后输入下面内容
export JAVA_HOME = (Java安装目录)
export CLASSPATH = “.:$JAVA_HOME/lib:$CLASSPATH”
export PATH = “$JAVA_HOME/:PATH”
(3)验证Java是否安装成功
输入 java -version ,输出Java版本信息即为安装成功。 继续阅读