请教:大家生产环境是如何部署、更新基于openresty开发的工程?如果用Git+Jenkins,是如何把源码和logs, client_body_temp, xxx_temp目录分离的? 我的部署方式: 把更改的源码文件用rsync至服务器,备份旧的,然后覆盖(我也觉得low 😂),然后nginx -s reload。因为诸多限制(git的私钥不允许放在生产环境上,也不允许单独为项目创建git账号),所有不能用git pull。 关于源码和logs等目录分离: 启动方式 /usr/local/openresty/nginx/sbin/nginx -p /data/myproject -c /data/myproject/conf/nginx.conf 目前的目录结构 . ├── conf │ ├── nginx.conf │ └── xxx.conf ├── logs │ ├── access.log │ └── error.log └── src ├── bar.lua ├── foo.lua └── lib └── xxx.lua 配置: error_log logs/error.log crit; ...; lua_package_path "$prefix/src/?.lua;;" server { { listen 80; location /foo { content_by_lua_file src/foo.lua; access_log logs/access.log main; } } 疑惑: xxx_by_lua_file、lua_package_path、logs, xxx_temp临时目录等都依赖Nginx启动选项-p PATH来查找源码位置。如何将源码文件和logs、xxx_temp目录分离呢? 已知解决方法: 涉及`PATH`的地方全部用绝对路径。->带来的问题是:由于绝对路径,多人在同一台服务器上开发时不能同时启动
请教:大家生产环境是如何部署、更新基于openresty开发的工程?如果用Git+Jenkins,是如何把源码和logs, client_body_temp, xxx_temp目录分离的?
我的部署方式:
把更改的源码文件用rsync至服务器,备份旧的,然后覆盖(我也觉得low 😂),然后nginx -s reload。因为诸多限制(git的私钥不允许放在生产环境上,也不允许单独为项目创建git账号),所有不能用git pull。
关于源码和logs等目录分离:
启动方式
/usr/local/openresty/nginx/sbin/nginx -p /data/myproject -c /data/myproject/conf/nginx.conf
目前的目录结构
.
├── conf
│ ├── nginx.conf
│ └── xxx.conf
├── logs
│ ├── access.log
│ └── error.log
└── src
├── bar.lua
├── foo.lua
└── lib
└── xxx.lua
配置:
error_log logs/error.log crit;
...;
lua_package_path "$prefix/src/?.lua;;"
server {
{
listen 80;
location /foo {
content_by_lua_file src/foo.lua;
access_log logs/access.log main;
}
疑惑:
xxx_by_lua_file、lua_package_path、logs, xxx_temp临时目录等都依赖Nginx启动选项-p PATH来查找源码位置。如何将源码文件和logs、xxx_temp目录分离呢?
已知解决方法:
维护两套配置,一套绝对,一套相对。->带来的问题是:每次修改配置文件需要维护两套配置,容易忘记修改其中某个 以上困惑,请大家指教。 --
以上困惑,请大家指教。