迁移到阿里云,第一篇博文

2015-09-30

原SFO的开端与结局

在早些年的时候,用shadowsocks还算是比较先进的科学上网方式,那时候盛行的DO、Linode和Vultr的一些节点都非常适合作为FQ的服务器。也就是在那个时候,我在朋友的“指引”下买了DO的低配VPS。为了充分利用网络资源,我让ss监听了IPv6的端口。那个时候学校的v6带宽还能达到20M/s。同时我的FTP也一样通过v6方式上传下载东西。

解决了科学上网的问题之后,我在服务器上配置的东西越来越多,nginx不停copy和随意命名的配置文件越来越多,FTP开启了多用户之后,用户名管理也极其不方便。ss的配置文件到处飞舞,mysql的备份文件也没有rotate导致日益增多。mongodb的用户名密码随意创建,到最后难以回收。

原本这些都不足以让我更换服务器,直到ss半死不活,sfo节点ping值上升到300ms,我开始有了转移服务器的想法。不久,我找到了另外一种科学上网的方式之后,我决定撤掉这台SFO,转移到阿里云。记得熟悉的IP随手就能敲出来,想想确实有点不习惯。

新的旅途

在搭建我的新的服务器之前,我思考过自己之前管理不当的行为。同时,受到一个在服务器安全方面特别有见解的朋友的影响,我也决定在开始做好我的服务器安全措施。虽然不能面面俱到一蹴而就,但不断完善才能积累经验。下面分享一些已经做好的配置管理和安全措施。

服务器仍然选择 Ubuntu 14.04 LTS Server

Nginx 重编译

我习惯使用 Nginx 作为我的 Web Server,以往我的经验都是从apt-get上直接安装。这样有一个安全隐患就是,当我当前使用的版本出现漏洞,而我没有及时更新的时候,容易让心怀不轨的人有可乘之机。因此,隐藏自己的发型版本是一个可以减少这个可能的方式。

我大概是这么做的。

安装 Nginx

  1. 安装必须库 zlib, zlib-devel, openssl, openssl-devel, prce, prce-devel
  2. 创建用户组和用户名,比如说nginx
  3. 下载当前最新的稳定版,nginx: download,解压
  4. 修改nginx服务器名称和版本号,在如下文件中做修改(不仅限于列出来的这些)

    • src/http/ngx_http_header_filter_module.c
    • src/http/ngx_http_special_response.c
    • src/http/v2/ngx_http_v2_filter_module.c
    • src/core/nginx.h

      # 找到类似如下的语句进行修改
      static char ngx_http_server_string[] = "Server: putim" CRLF;       # 更改为您制定的名称
      static char ngx_http_server_full_string[] = "Server: putim" CRLF;  # 更改为您指定的版本号
      
  5. 编译安装

    ./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_stub_status_module --with-http_ssl_module
    
    # 使用nginx-1.9 系列的可以把 http_v2 模块添加进去
    # ./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_ssl_module --with-http_v2_module --with-http_stub_status_module
    
    make
    make install
    
  6. 使用启停脚本,参考仓库JasonGiedymin/nginx-init-ubuntu

    • 修改config路径和pid路径(可选),这里假设您希望您的conf和run放在一个地方便于管理,就需要修改。假设为/home/mydata

      MYPATH=/home/mydata
      NGINX_CONF_FILE=${MYPATH}/conf/nginx/nginx.conf # config file path
      PIDSPATH=${MYPATH}/run
      
    • 更新service
    • 修改nginx.conf中的配置信息user和pid目录
  7. 现在可以使用 service nginx start/stop 来控制啦!

安装 php5

  1. 直接从apt-get安装软件

    apt-get install php5-cli php5-cgi mysql-server php5-mysql spawn-fcgi
    
  2. 启动,并添加到启动脚本/etc/rc.local中

    spawn-fcgi -a 127.0.0.1 -p 9000 -C 10 -u nginx -f /usr/bin/php-cgi
    
  3. nginx部分配置,可参考如下

    # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
    location ~ \.php$ {
    include /usr/local/nginx/conf/fastcgi_params;
    fastcgi_pass 127.0.0.1:9000;
    fastcgi_index index.php;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    }
    
  4. 若修改了配置,重载即可!

安装phpmyadmin

参考 How To Install and Secure phpMyAdmin with Nginx on an Ubuntu 14.04 Server

越轻便的博客越喜欢

为了让博客编写更加的方便和转移,我用 JustWriting 来写。同时搭配了一个owncloud私有网盘。使用它的一个主要原因莫过于md的方便。同时,为了让同步更加便捷,我搭建了owncloud。

如何搭建owncloud就不用说了,过程非常简单。

  1. 下载 Getting Started with ownCloud | ownCloud.org
  2. 配置 Nginx,参考 Nginx Configuration — ownCloud Server Administration Manual 8.1 documentation
  3. 打开网址设置,完成!

为了让 owncloud 和 JustWriting 联动起来,我做了个简单的连接。在owncloud中创建一个目录,作为我文章的md文件目录。

然后把原本的内容copy到这个目录下(自行修改目录路径)。

# 备份之前的文章
cp -r myblog/posts/* owncloud-data/blog/
# 删除原来的路径
rm -rf owncloud-data/blog/
# 让博客的文章目录软连接到owncloud的目录
ln -s owncloud-data/blog/ myblog/posts

修改一下权限,刷新一下你的博客,发现原来的文章都保留原样。这个时候,在owncloud上修改一下文章内容,刷新博客就可以看到更新了。

这个时候,你就可以发挥你的想象力了,owncloud可以做什么,你的博客都可以做到。

更新于20151203

JustWriting的位置是小的在前,大的在后,我用日期的负数作为Position,可以保证新的内容在前面。

如这篇文章 Position: -20150930


Tags: Aliyun

关于内容(信息、资料、图像等)的转载

本网站所有内容仅供学习交流,均禁止转载至营利、非营利网站或内联网。如需帮助,请联系作者 admin#put.im。