分类 默认分类 下的文章

node.js & express

MEAN是啥东西?查询版本

node -v

结果

v8.9.3

建立文件hello.js

console.log('1+1='+(1+1));

运行

node hello.js

创建一个package.json文件

{
  "name": "Hello",
  "description": "hello mikuq.com",
  "version": "0.1.0",
  "private": true,
  "dependencies": {
    "express": "4.x"
  }
}

然后

npm install

node_modules中会下在40多个包,可以用npm list查看,建立index.js,有中文记得uft8保存,否则会有乱码

var express = require('express');
var app = express();
app.get('/', function (req, res) {
  res.send('<h1>MikuQ的站点</h1>');
});
app.listen(80);

运行node index.js然后浏览器访问http://localhost就可以了

路线2

npm init

全部回车就可以了,自动生成package.json

npm install express --save

或者

npm install express-generator -g
express myapp
cd myapp & npm install
SET DEBUG=myapp:* & npm start

有点儿乱了,http和express有啥区别呢,有没有压力测试,生产环境如何部署?

参考:
http://www.expressjs.com.cn/
http://blog.csdn.net/u012468376/article/details/53245002
https://www.cnblogs.com/stoneniqiu/p/5538109.html

nginx反向代理的dns更新(504 Gateway Time-out)

网站隔三差五的就挂掉,一直以为是球猫在搞鬼,这不,又挂掉了504 Gateway Time-out,本以为是bug已经升级了nginx的,问题依旧。
几次尝试解决,都以失败告终,只能发现后sudo nginx -s reload,总不能放到定时任务中吧,再次查看日志sudo cat /var/log/nginx/error.log。

upstream timed out (110: Connection timed out) while connecting to upstream, upstream: "http://123.123.12.3", host: "mikuq.com"

尝试浏览器中访问这个IP,访问不到,奇怪了,再次确认竟然是过期的IP,参考了几篇文章,是通病,尝试解决,查询本机的dns,写到配置文件中cat /etc/resolv.conf,重起,过几天看效果吧。

参考文献:
https://serverfault.com/questions/240476/how-to-force-nginx-to-resolve-dns-of-a-dynamic-hostname-everytime-when-doing-p
https://www.zhihu.com/question/61786355

在opiz上装docker

最近很喜欢玩docker,所以各种安装写得多一些,参考自己的《玩docker》

uname -a

得到的版本是Linux opiz 4.13.16-sunxi #20 SMP Fri Nov 24 19:50:07 CET 2017 armv7l armv7l armv7l GNU/Linux
运行安装命令

wget -qO- https://get.docker.com/ | sh

可惜报错Could not get lock /var/lib/dpkg/lock,可以用这个命令查看

ps -aux | grep apt

慢慢处理,会好的,安装成功后启动服务,然后需要重起一下

sudo service docker start
sudo usermod -aG docker pi

执行docker info查看版本是18.0.2,然后就可以学习了https://docs.docker.com/get-started/

在docker中安装nginx、php、redis

docker run -ti -h nginx --name nginx_20080 -p 20080:80 ubuntu:14.04
apt-get update
apt-get install nginx
nginx -v 安装的1.4.6版本
cd /usr/share/nginx/html
mv index.html index.html.bak
vi index.html
nginx启动显示hello
apt-get install php5-fpm
cd /etc/nginx
cp sites-available/default default.bak
修改配置文件让php生效
vi sites-available/default
nginx -s reload
service php5-fpm restart
ln -s /usr/share/nginx/html /root/www
vi ip.php

<?php
$ip=$_SERVER["REMOTE_ADDR"];
echo $ip;
echo phpinfo();
?>

可以看到ip说明php配置好啦

找到最新版3.1.6的驱动
https://github.com/phpredis/phpredis/releases
apt-get install wget
wget https://github.com/phpredis/phpredis/archive/3.1.6.tar.gz
tar xzf 3.1.6.tar.gz
cd phpredis-3.1.6
apt-get install php5-dev
phpize
./configure
vi /etc/php5/fpm/php.ini
extension=redis.so 加在php下就可以
service php5-fpm restart

<?php
   $redis = new Redis();
   $redis->connect('192.168.1.220', 26379);
   echo "Connection to server sucessfully";
   echo "Server is running: " . $redis->ping();
?>

继续重入docker attach nginx_20080

参考:http://www.runoob.com/redis/redis-php.html

在docker中安装redis

06.png
首先建立实例
docker run -ti -h redis --name redis_26379 -p 26379:6379 ubuntu:14.04
apt-get update
apt-get install -y python-software-properties
apt-get install software-properties-common
add-apt-repository -y ppa:rwky/redis
用这个办法安装最新版失败了,可能是那个源不在了
apt-get install redis-server安装的是2.8版本,不是最新的
从官方可以装新的
apt-get install wget
wget http://download.redis.io/releases/redis-4.0.8.tar.gz
tar xzf redis-4.0.8.tar.gz
cd redis-4.0.8
apt-get install make
apt-get install gcc
make
会报错jemalloc/jemalloc.h: No such file or directory
改用make MALLOC=libc
如果不是本机启动客户端会警告,用这个启动
src/redis-server --protected-mode no
数据入库比较慢,用mset会快一些,远程打开
redis-cli -h 192.168.1.220 -p 26379

参考资料:
https://redis.io/download
http://mikuq.com/search/docker/
http://blog.csdn.net/chenlix/article/details/46696165