chainhelen

nginx

nginx 的三个基础用法

介绍 一句话:高性能的http和反向代理服务器 nginx 常用命令 nginx 启动 nginx -s reload 重启 nginx -t 配置文件是否正确 ps -ef | grep nginx 查找出nginx进程号 使用kill -9 nginx 杀死关闭 一台vps,但是希望搭建两个网站 ubuntu apt-get 安装 nginx或者源码make 三部曲安装 在/etc/nginx/nginx.confg配置里面可以看见include /etc/nginx/conf.d/conf,那么在/etc/nginx/conf.d下创建任意文件.conf来配置域名 server { listen 80;

By chainhelen

nodejs

nodejs promise介绍

promise 概念 ES6 原生支持Promise Promise是一个构造函数,包含all,reject,resolve等方法。一个Promise用来传递异步操作的消息,它代表了未来才会知道结果的事件。 本质上是一种异步编程的抽象,是返回值或者抛出exception的代理对象。它有一个then方法,任何人都可以访问then来消费这个返回值或exception的。 三种状态 promise只有三种状态,并且状态转移只能是pending -> fulfiled 或者pending -> rejected pending: 待定状态,Pormise对象刚被初始化的状态 fulfilled: 完成状态,承诺被完成的状态 rejected: 拒绝状态,承诺完成失败的状态 relosve和reject: resolve() 和 reject()是 Promise的两个闭包函数。 通常,读取一个文本,我们会这么写。 "use strict" const fs = require('fs'

By chainhelen

codeforces

自动跳转到cjb.com问题

现象 深圳这边的网络经常被劫持,比方我下载一个A,下载的内容会变成了B。之前挂上代理,就可以正常下载了。今天遇到这个问题访问codeforces自动变成访问www.cjb.com 查找原因 挂上了代理,访问了一下codeforces.com,还是一样问题。但是在国外vps上wget www.codeforces.com,看了一下index.html源码是没有问题。 先在本地Ping一下 codeforces.com $ ping codeforces.com PING codeforces.com (212.193.33.27) 56(84) bytes of data. 64 bytes from codeforces.ptr.sgu.ru (212.193.33.27): icmp_

By chainhelen

nodejs 异步回调

异步非阻塞 nodejs 的软肋是CPU密集型,但它适应IO密集型服务。事件驱动,异步非阻塞。个人理解,异步与非阻塞细分下来是两个概念。异步与同步强调的当前线程(或进程)的两个代码块执行是没有拓扑顺序的的;阻塞与非阻塞强调的是当前线程(或进程)的状态。在操作系统层面上来看,有五种网络模式方式可以进行I/O访问。(具体比较看这里) * 阻塞 I/O(blocking IO) * 非阻塞 I/O(nonblocking IO) * I/O 多路复用( IO multiplexing) * 信号驱动 I/O( signal driven IO) * 异步 I/O(asynchronous IO) 异步、非阻塞两种方式都可以实现 nodejs 的 I/O并行。

By chainhelen

golang proxy

先介绍几个概念 文件尾 linux系统有个重要的思想就是一切皆文件。 1. 普通文件:打开文件文件时程序能拿到文件操作符,当已经读取的数据等于文件本身大小时,返回一个EOF常量。 2. 标准文件:特殊字符判断文件尾,例如linux终端Ctrl+D。 3. socket流:被动关闭方接收主动接受方发送的FIN数据包时,被动接受方的数据会从系统那拿到一个ZERO值。 http协议 介绍http,网上太多了,就讲一个我遇到的坑。 package main import ( "fmt" "log" "net" ) func readFromConn(conn net.Conn) []byte { const HTTP_LEN = 20480 const BUF_LEN = 256 buf := make([]byte,

By chainhelen