[系列教程]02.Web项目的结构

一个Web项目, 可大可小, 大到整个阿里巴巴, 小到你自己的博客, 留言板. 虽然所采用的技术不一样, 规模不一样, 但是都由一些执行相同作用的组件所构成的, 当然根据规模的不同, 要实现的功能的不同, 有一些组件并不一定是必须, 但是当一个项目从小到大的演变过程中, 需要加入的组件都是大致功能类似的. 下面我们就从最简单的Web项目开始, 到随着功能, 规模的递增, 看看有那些组件需要加入, 和各自的作用.

1. 种子规模

这个规模的项目最好的实例就是个人博客, 留言板, 公司介绍网站等, 基本结构如下
种子规模项目结构 code.78.01.jpeg

这是最简单的模式, 基本上可以概括为  请求-响应 模式. 主要的组件是由 Web框架 和 数据库 两个部分组成, Web框架负责为开发者提供基础的应用程序结构和功能: 1. 接收HTTP请求 2.渲染返回的HTML页面, 数据库则负责持久化数据: 比如留言的内容.

随着使用人数的上升, 性能很快入不敷出, 你开始觉得访问的时候速度不如原来快了. 但是你在用top命令查看系统开销的时候会发现, 其实系统的CPU占用并不是很高. 原来这个时候大部分的时候CPU都在等带数据库查询的结果, 而数据库查询结果很多时候是重复的, 比如当没有人留言的时候, 返回的最新留言列表. 为了避免无谓的IO开销, 我们需要用一个比数据库快N倍的存储设备来缓存查询的结果, 这样当我们发现查询结果不会有变化的时候, 就能通过更快的存储设备拿到结果, 比如内存就是用户级应用程序能访问的最快, 而且现在看来容量也够大(将来会越来越大)的存储设备了. 这个时候我们需要引入一个新的组件: 内存缓存


- 阅读剩余部分 -

[系列教程]01.前言

Web现在是互联网的通用性语言, 无论是网站也好App的后端也好, 都是基于Web技术来构建的.围绕着Web技术是一大堆庞杂的各式各样的技术栈. 我们笼统的可以划分为两类: 1. 前端技术 2.后端技术. 详细的分解如下图:
code.76.01.jpg

要能全须全尾从头到脚的把一个能拿出来见人的Web项目做完, 上面这棵书每一个根须都要触及到最根部才行. 否则随着规模的增大, 技术债是迟早要还的.

看完了有如此多的技术需要学习, 是不是感觉人生很绝望? 不要灰心, 本书的目的, 就是为了给没有行业经验的小白同学一个入门的路书, 你可以把此书看作是独孤九剑的总诀式. 接下来我会一一分解, 告诉你Web技术的每一个触角如何快速入门. 我并不能精通每一门技术, 事实上, 图中的技术我能说得上精通的不过寥寥数个, 但是技术的一般性原理是一致的, 我会给出这些技术的共性, 只要掌握就能够上手实践开发的最根本的技术点. 然后剩下的你可以自己选择自己喜欢的技术去深入学习.


- 阅读剩余部分 -

在CLI中为应用使用ss代理

  • 安装
    sudo pacman -S privoxy

  • 软件配置
    sudo vim /etc/privoxy/config

  • 填入forward-socks5 / localhost:1080 . 以及 listen-address 127.0.0.1:8118
    [其中为 ss 所在 pc 的 ip 以及 ss 的端口,后一个是本地的 http 接口.]

  • 重启服务
    systemctl restart privoxy

  • 系统配置,让Terminal里的http访问走8118端口

export http_proxy='http://localhost:8118'
export https_proxy='http://localhost:8118'
  • 测试:
    curl http://www.google.com

  • 关闭代理

unset http_proxy
unset https_proxy

Typecho Access denied 故障解决

今天我的域名在主机屋实名之后开始转移到nameSilo了,在域名恢复解析之后我发现,网站打开首页是正常的,但是发现typecho的所有二给页面都打不开,显示Access denied.

官方已经给出了解决办法:http://docs.typecho.org/servers

主要就是要修改/etc/php5/fpm/php.ini

cgi.fix_pathinfo = 1

但是OneinStack的位置在:/usr/local/php/etc/php.ini

然后重启php和nginx即可。

service nginx restart
service php-fpm restart

来源