说明

由于企信多数应用实现了前后端分离,即界面层与业务逻辑层分离。
业务逻辑层应用程序需使用tomcat、jar等方式运行,静态页面则使用nginx代理访问。

且nginx可配置缓存访问量大的静态资源(如用户头像),提高系统响应速度。

安装

请根据以下链接部署

- 代理软件nginx部署

 

代理静态资源
- 配置代理静态资源
# 将静态资源放于/data/eim/www目录下
ll /data/eim/www/plist/eim.plist

# nginx配置代理/data/eim/www目录下的静态资源 vim /etc/nginx/conf.d/default.conf # 配置运行端口 listen 80; # 静态页面路径,将文件放于该目录下,即可被浏览器访问 location / { root /data/eim/www; # 错误页面路径 location = /50x.html { root /data/eim/www; :wq!
- haproxy代理
        acl nginx-server path_beg -i /plist
        use_backend nginx-server if nginx-server

backend nginx-server
        mode http
        option forwardfor
        server wget 10.10.10.100:80 check inter 10s

浏览器访问静态资源 http://haproxy_ip:port/plist/eim.plist
 

缓存用户头像
- nginx代理文件预览服务配置

编辑/etc/nginx/conf.d/default.conf

worker_processes  4;

events {
    worker_connections  4096; use epoll; } http { upstream cloudfs-server { # cloudfs地址 server 10.111.12.34:8082 max_fails=3 fail_timeout=30s; server 10.111.34.44:8082 max_fails=3 fail_timeout=30s; } # 需要提前创建缓存文件存放的目录/data/eim/nginx_cloudfs_image_cache,可使用的空间至少比配置的max_size=30g 大 proxy_cache_path /data/eim/nginx_cloudfs_image_cache levels=1:2 keys_zone=cloudfs_image_cache:200m max_size=30g inactive=15d; # 如果有强制升级客户端,造成并发下载客户端压力过大可按如下配置缓存客户端文件 # proxy_cache_path /data/eim/nginx_upgrade_cache levels=1:2 keys_zone=upgrade_cache:100m max_size=10g inactive=30d; rewrite_log on; server { listen 8088; server_tokens off; # 缓存文件 location ~ ^(/api/fs/view/|/cloudfs/api/fs/view/) { if ($uri ~* /api/fs/view/) { rewrite ^/api/fs/view/(.*)$ /cloudfs/api/fs/view/$1 break; } proxy_cache cloudfs_image_cache; proxy_cache_valid 200 15d; # 缓存404 proxy_cache_valid 404 1d; proxy_cache_key $uri$args; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $host; add_header Nginx-Cache $upstream_cache_status; proxy_pass http://cloudfs-server; break; } # 缓存升级客户端文件 # location ~ ^/upgrade/api/fs/download/internal/ { # # rewrite ^/upgrade/api/fs/download/internal/(.*)$ /cloudfs/api/fs/download/internal/$1 break; # # proxy_cache upgrade_cache; # proxy_cache_valid 200 30d; # proxy_cache_key $uri$args; # proxy_set_header X-Real-IP $remote_addr; # proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; # proxy_set_header Host $host; # add_header Nginx-Cache $upstream_cache_status; # proxy_pass http://cloudfs-server; # break; # } } }
- haproxy将相关路径转发给nginx代理
# 此段配置需要在cloudfs的acl之前
acl nginx-server path_beg -i /api/fs/view/ /cloudfs/api/fs/view/ # 缓存客户端文件 # acl nginx-server path_beg -i /upgrade/api/fs/download/internal/ use_backend nginx-server if nginx-server backend nginx-server mode http option forwardfor # 通过访问某个文件做健康检查,如某个应用的图标 option httpchk GET /cloudfs/api/fs/view/Z3JvdXAyL00wMC8wMy81RC9Dc0tzTEZZZmNKS0ljRTZ5QUFBR3R0X3MzU2dBQUI2cVFQXzNIa0FBQWJPNjIwOTI2Ng== server nginx-247 127.0.0.1:8088 weight 1 check inter 10s server nginx-248 10.100.100.8:8088 weight 2 check inter 10s