系统部署规范
1. OS
系统基础工具、服务
系统配置优化
2. 业务系统
2.1 业务系统说明文档
-
系统部署手册
系统使用语言以及版本
系统使用扩展库版本
系统使用中间件版本
系统维护手册
2.2 管理员
每一个业务系统,都有一个独立的业务账号,用来管理业务的代码、脚本、以及服务的上线与更新
-
每一个业务系统,都有唯一的运维人员使用业务账号,对系统进行操作管理
目前由产品团队的技术人员负责,待运维体系建立后,移交由运维人员负责
业务系统使用到数据库服务的,请参照数据库相关规范【link】
2.3 代码目录
系统代码要求部署在非系统分区
代码目录结构说明
# 代码目录结构
# /cnicg/[group]/[project]/
# web/
# www/
# script/
# conf.d/
# other/
cnicg : 单位项目统一目录,位于非系统分区,通过软连接(ln -s /path /cnicg)到cnicg目录
其目录权限为: 755 cnicg:cnicg
group : 小组名称,不同的业务小组命名不同
其目录权限为: 700 group:group
project : 小组业务下的项目目录
web: 项目下的后端代码目录
www: 项目下的前端代码目录
script: 项目下的工具脚本
conf.d : 项目配置文档,或者位于web迷路下
other: 其他,待补充
2.4 日志
日志目录要求位于非系统目录
日志结构说明
# 日志目录说明
# #1. 业务系统日志
# /var/log/cnicg/[group]/[project]/port/
# /service.log
# /error.log
# #2. nginx日志
# /var/log/cnicg/[group]/[project]/nginx/
# /access.log
# /error.log
# #3. other日志
# ### 3.1 mysql
# ### 3.2 mongo
# ### 3.3 rabbitmq
2.5 nginx
nginx版本 (v1.10.0: 支持stream功能)
openssl 版本
nginx配置使用nginx默认的配置文件管理策略
-
运维人员根据需求,可以修改/etc/nginx/nginx.conf 配置文档
通用基本配置
修改参数时,要明白知道修改的意义,以及带来的影响
各项目配置文件位于代码目录中,并通过软连接,连接到/etc/nginx/conf.d 中,比如ln -s /cnicg/iot/示例项目/conf.d/示例项目.conf
-
nginx相关配置
proxy.conf
mime.types
conf.d/*.conf
-
favicon.ico
服务图标,对于web服务,默认要求明确配置
-
robots.txt
默认要求明确配置
资讯类服务,允许特定爬虫爬取特定目录
业务类服务,禁止所有爬虫爬取
-
log
日志格式
日志目录 nginx 模块
3. 附录
3.1 nginx.conf
# sudo adduser --system --no-create-home --disabled-password --group web
user nginx nginx;
# 根据业务需求开启不同的工作进程
worker_processes 4;
worker_rlimit_nofile 20480;
error_log /var/log/nginx/error.log;
pid /var/run/nginx.pid;
events {
use epoll;
worker_connections 20480;
}
http {
include /etc/nginx/mime.types;
# custom define proxy configuration
include /etc/nginx/proxy.conf;
default_type application/octet-stream;
# 日志格式
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log /var/log/nginx/access.log main;
client_header_timeout 3m;
client_body_timeout 3m;
send_timeout 3m;
client_header_buffer_size 1k;
large_client_header_buffers 4 4k;
gzip on;
gzip_disable "msie6";
gzip_min_length 1100;
gzip_buffers 4 8k;
gzip_types text/plain text/ccs application/json application/x-javascript text/xml application/xml text/javascript;
output_buffers 1 32k;
postpone_output 1460;
sendfile on;
tcp_nopush on;
tcp_nodelay on;
send_lowat 12000;
keepalive_timeout 75;
include /etc/nginx/conf.d/*.conf;
}
3.2 proxy.conf
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header Port $server_port;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
client_max_body_size 10m;
client_body_buffer_size 128k;
proxy_connect_timeout 90;
proxy_send_timeout 90;
proxy_read_timeout 90;
proxy_buffers 32 4k;
proxy_buffer_size 4k;
proxy_busy_buffers_size 64k;
proxy_temp_file_write_size 64k;
3.3 robots.txt
### BEGIN FILE ###
#
# allow baidu bing google spider
User-agent: Baiduspider
Disallow: /action/
Disallow: /admin/
Disallow: /my/
Disallow: /code/download_src
Disallow: /widgets/
User-agent: Googlebot
Disallow: /action/
Disallow: /admin/
Disallow: /my/
Disallow: /code/download_src
Disallow: /widgets/
User-agent: MSNBot
Disallow: /action/
Disallow: /admin/
Disallow: /my/
Disallow: /code/download_src
Disallow: /widgets/
# robots file disallow any robots access this site
User-Agent: *
Disallow: /
### END FILE ###
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。