系统部署规范
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 webuser 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 spiderUser-agent: BaiduspiderDisallow: /action/Disallow: /admin/Disallow: /my/Disallow: /code/download_srcDisallow: /widgets/User-agent: GooglebotDisallow: /action/Disallow: /admin/Disallow: /my/Disallow: /code/download_srcDisallow: /widgets/User-agent: MSNBotDisallow: /action/Disallow: /admin/Disallow: /my/Disallow: /code/download_srcDisallow: /widgets/# robots file disallow any robots access this siteUser-Agent: *Disallow: /### END FILE ###