@(工作笔记)[短域名|openrest|lua]
[TOC]
- CentOS 6.*
- openresty-1.11.2.1.tar.gz
- ourls-resty
# 一些环境准备
yum install readline-devel pcre-devel openssl-devel gcc
# 安装
tar -xzvf openresty-VERSION.tar.gz
cd openresty-VERSION/
./configure
make
sudo make install
- 安装 OpenResty 为前提
- 安装 gcc/make/libidn/libidn-devel
yum gcc make install libidn-devel
- 将 Ourls 项目解压到 OpenResty 目录(/usr/local/openresty/), 执行
install.sh
- 修改 lualib/ourl/config.lua 中的数据库配置、hashids参数、可信代理的 cidr。参考如下:
local ok, new_tab = pcall(require, "table.new")
if not ok or type(new_tab) ~= "function" then
new_tab = function (narr, nrec) return {} end
end
local _M = new_tab(0, 8)
_M.db = new_tab(0, 4)
_M.db_rw = new_tab(0, 8)
_M.db_ro = new_tab(0, 8)
_M.hash = new_tab(0, 4)
_M.db_rw.host = '127.0.0.1'
_M.db_rw.port = 3306
--_M.db_rw.path = '/var/lib/mysql/mysql.sock'
_M.db_rw.database = 'ourl'
_M.db_rw.user = 'root'
_M.db_rw.password = '123456'
_M.db_ro.host = '127.0.0.1'
_M.db_ro.port = 3306
--_M.db_ro.path = '/var/lib/mysql/mysql.sock'
_M.db_ro.database = 'ourl'
_M.db_ro.user = 'root'
_M.db_ro.password = '123456'
_M.hash.salt = 'ump.letv.cn'
_M.hash.length = 4
_M.hash.alphabet = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'
_M.proxies = {
'127.0.0.0/8',
'10.0.0.0/8',
'172.16.0.0/12',
'192.168.0.0/16',
}
_M.db.timeout = 1000
_M.db.keepalive = 10000
_M.db.poolsize = 10
_M.log_level = ngx.ALERT
_M.debug = true
return _M
- 恢复 urls.sql 至 MySQL 或 MariaDB 数据库
$ cat urls.sql
CREATE TABLE `urls` (
`id` INT (11) NOT NULL AUTO_INCREMENT,
`sha1` CHAR (40) NOT NULL,
`url` VARCHAR (10240) NOT NULL,
`create_at` INT (11) NOT NULL,
`creator` INT (11) unsigned NOT NULL DEFAULT '0',
`count` INT (11) NOT NULL DEFAULT '0',
`status` TINYINT(1) NOT NULL DEFAULT '1',
PRIMARY KEY (`id`),
INDEX (`sha1`),
INDEX (`create_at`),
INDEX (`creator`),
INDEX (`count`),
INDEX (`status`)
) ENGINE = INNODB CHARACTER
SET utf8 COLLATE utf8_unicode_ci;
由于要存储的 url 长度超过225,因此,将原有的 sql 中的 url 长度从255 修改为 10240
- 进入 nginx/conf 目录,根据自己的实际情况修改 (合并配置,修改 server_name …),如下:
$ cat ourl.conf
server {
listen 80;
server_name t.letv.cn;
root html/ourl;
index index.html;
location / {
try_files $uri $uri/ @app;
}
location @app {
internal;
default_type text/html;
content_by_lua_block {
local t = require 'ourl'
t.run()
}
}
}
- 启动 openresty (service openresty start)
[libo17@mq:/usr/local/openresty/nginx/sbin/]
$ sudo ./nginx -s reload