代碼部署規範

系統部署規範

1. OS

  • 系統基礎工具、服務javascript

  • 系統配置優化前端

2. 業務系統

2.1 業務系統說明文檔

  • 系統部署手冊java

    • 系統使用語言以及版本node

    • 系統使用擴展庫版本python

    • 系統使用中間件版本mysql

  • 系統維護手冊nginx

2.2 管理員

  • 每個業務系統,都有一個獨立的業務帳號,用來管理業務的代碼、腳本、以及服務的上線與更新web

  • 每個業務系統,都有惟一的運維人員使用業務帳號,對系統進行操做管理sql

    • 目前由產品團隊的技術人員負責,待運維體系創建後,移交由運維人員負責數據庫

  • 業務系統使用到數據庫服務的,請參照數據庫相關規範【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 ###
相關文章
相關標籤/搜索
本站公眾號
   歡迎關注本站公眾號,獲取更多信息