用户中心

用户中心私有化部署

本文档用于说明用户中心私有化部署过程,包括镜像打包、服务启动注意事项、sql脚本、自定义配置等等。

用户中心私有化部署目前共有4个模块,分别是 account-web-service(用户中心),account-admin-web(管理后台),ent-account-service(企业账号),account-static-service(前端静态),需要分别部署。

私有化部署流程,共有如下几步:获取镜像、导入sql脚本、修改私有化自定义配置项、启动服务、配置nginx。本文以步骤为导向分步说明。

获取镜像

如需私有化部署用户中心,请联系用户中心团队获取镜像文件。

sql脚本导入

数据库初始化:

创建5个数据库:enterprise_account、paas_account_v2、account_admin、colibri、pass_colibri,分别执行各自的sql脚本初始化数据结构和基础数据;

其中,初始化管理员账号:admin,密码:admin123456

管理后台登陆账号为初始化账号的mobile(account_user数据表),如需修改,请在初始化数据时直接修改即可;默认为:11210449300。

各个数据库表及数据如下:'

paas_account_v2:

paas_account_v2-202109.sql下载

注意:
1.由于该表中有初始化数据,设计初始账户密码,如需设置,请在该sql文件中修改后再导入数据库。
2.该数据库中涉及用户中心、企业账号、管理后台三个应用的appKey,appSecret,请在该sql文件中修改为您自己的key和secret。详情参见该sql中app_details数据表的初始化数据

enterprise_account:

enterprise_account-202109.sql下载

account_admin:

account_admin-202109.sql下载

colibri:

colibri-202109.sql下载

pass_colibri:

paas_colibri-202109.sql下载

自定义配置说明

所有配置文件名称统一固定为:application-private-deploy.yml

account-web-service:

account配置文件yml下载

account-admin-web:

account-admin配置文件yml下载

ent-account-service

enterprise-account配置文件yml下载

nginx配置

由于部分服务接口需要nginx转发,所以nginx也有单独的配置部分。

# 本示例nginx如下
$ ls /etc/nginx/
conf.d          koi-win     nginx.conf      scgi_params  server.key
fastcgi_params  mime.types  uwsgi_params	koi-utf		modules     
server.crt   	win-utf

$ ls /etc/nginx/conf.d
account_location.conf  paas_account.conf  paas_static.conf

详情见下述配置示例:

account-web-service:

conf.d/paas_account.conf

upstream account {
    ip_hash;
    server 127.0.0.1:8080 max_fails=3 fail_timeout=30s;
   
}
upstream account_api {
    ip_hash;
    server 127.0.0.1:8080 max_fails=3 fail_timeout=3000000s;
   
}

server {
	listen 80;
	server_name account-dev.hsifue.cn;
	access_log  /var/log/nginx/nginx_account_access.log main;

	location / {
		rewrite ^(.*)$  http://$host$1 break;
	}
 
  
}
server {
	listen 443 ssl;
	server_name account-dev.hsifue.cn;
	access_log  /var/log/nginx/nginx_account_access.log main;

	ssl on;
	ssl_certificate /etc/nginx/server.crt;
	ssl_certificate_key /etc/nginx/server.key;

	ssl_protocols SSLv3 TLSv1 TLSv1.1 TLSv1.2;
	ssl_ciphers RC4:HIGH:!aNULL:!MD5;
	ssl_prefer_server_ciphers on;

	location / {
		rewrite ^/(.*)$ /$1 break;
		proxy_pass http://account;
		include conf.d/account_location.conf;
	}

	location /account {
		rewrite ^/(.*)$ /$1 break;
		proxy_pass http://account;
		include conf.d/account_location.conf;
	}

	location /signup{
		rewrite ^/(.*)$ /$1 break;
		proxy_pass http://account;
		include conf.d/account_location.conf;
	}
	location /oauth2/token {
		rewrite ^/(.*)$ /$1 break;
		proxy_pass http://account_api;
		include conf.d/account_location.conf;
	}
	 
	location /oauth2/check_token {
		rewrite ^/(.*)$ /$1 break;
		proxy_pass http://account_api;
		include conf.d/account_location.conf;
	}         
	location /cas/serviceValidate {
		rewrite ^/(.*)$ /$1 break;
		proxy_pass http://account_api;
		include conf.d/account_location.conf;
	}
     

	location /v3/api {
		rewrite ^/(.*)$ /$1 break;
		proxy_pass http://account_api;
		proxy_set_header version v3;
		client_max_body_size 100m;
		include conf.d/account_location.conf;
	}

	location /v3/api/oauth2{
		rewrite ^/v3/api/(.*)$ /v3/$1 break;
		proxy_pass http://account_api;
		proxy_set_header version v3;
		include conf.d/account_location.conf;
	}

	location /v3/api/cas{
		rewrite ^/v3/api/(.*)$ /v3/$1 break;
		proxy_pass http://account_api;
		proxy_set_header version v3;
		include conf.d/account_location.conf;
	}
}

conf.d/account_location.conf

proxy_redirect http://account-dev.hsifue.cn/account http://account-dev.hsifue.cn;
            proxy_cookie_path /account /;
            proxy_set_header Host account-dev.hsifue.cn;
            proxy_set_header X-Forwarded-Proto http;
            #proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

account-static-service:

本示例前端文件dist位于/home/baijd/docker/account-static/,前端部署域名为 static2.hsifue.cn。

conf.d/paas_static.conf

server {
	listen 80;
	server_name static2.hsifue.cn;
	location ~* account/v\d*/h5/(\S*)/built/app.js {
        add_header Access-Control-Allow-Origin *;
        alias  /home/baijd/docker/account-static/dist/main/webapp/h5/$1/package.js;
    }

    location ~* account/v\d*/(\S*) {
        add_header Access-Control-Allow-Origin *;
        alias  /home/baijd/docker/account-static/dist/main/webapp/$1;
    }
    location ~* account/latest/(\S*) {
        add_header Access-Control-Allow-Origin *;
        alias  /home/baijd/docker/account-static/dist/main/webapp/$1;
    }
    location /account {
        add_header Access-Control-Allow-Origin *;
        alias  /home/baijd/docker/account-static/dist/main/webapp;
    }   
}

server {

	listen       443 ssl;
	server_name static2.hsifue.cn;

	ssl_certificate server.crt;
	ssl_certificate_key server.key;

	ssl_protocols SSLv3 TLSv1 TLSv1.1 TLSv1.2;
	ssl_ciphers RC4:HIGH:!aNULL:!MD5;
	ssl_prefer_server_ciphers on;

       
	location ~* account/v\d*/h5/(\S*)/built/app.js {
        add_header Access-Control-Allow-Origin *;
        alias  /home/baijd/docker/account-static/dist/main/webapp/h5/$1/package.js;
    }

    location ~* account/v\d*/(\S*) {
        add_header Access-Control-Allow-Origin *;
        alias  /home/baijd/docker/account-static/dist/main/webapp/$1;
    }
    location ~* account/latest/(\S*) {
        add_header Access-Control-Allow-Origin *;
        alias  /home/baijd/docker/account-static/dist/main/webapp/$1;
    }
    location /account {
        add_header Access-Control-Allow-Origin *;
        alias  /home/baijd/docker/account-static/dist\main/webapp;
    }   
}

配置完成以后,重启nginx。

服务启动

上述自定义配置修改完,并且启动nginx后,就可以启动服务了。示例以docker方式启动服务。

注意,由于服务内Dockerfile启动jar时已经指定了配置文件(/data/config/application-private-deploy.yml),所以请将对应服务的配置文件挂载到容器内/data/config位置。

account-web-service:

# 启动运行(将包含自定义配置的目录挂载到容器指定目录 /data/config)
$ docker run --name=account-web-service-container -dit -p 8080:8080 -v /home/baijd/docker/account:/data/config registry.cn-beijing.aliyuncs.com/uc/account-web-service:private202111
# 查看启动日志,确认正常启动
$ docker logs -f account-web-service-container

启动以后访问用户中心私有化部署域名,此处以 account-dev.hsifue.cn 为例,访问 http://account-dev.hsifue.cn可以正常展示登录页。

输入初始账号密码(初始管理员账号:admin,密码:admin123456)登录,验证无误。

ent-account-service:

# 启动运行(将包含自定义配置的目录挂载到容器指定目录 /data/config)
$ docker run --name=ent-account-service-container --add-host=account-dev.hsifue.cn:10.2.21.170 -dit -p 8070:8080 -v /home/baijd/docker/enterprise-account:/data/config registry.cn-beijing.aliyuncs.com/uc/ent-account-service:private202111
# 查看启动日志,确认正常启动
$ docker logs -f ent-account-service-container

account-admin-web:

# 启动运行(将包含自定义配置的目录挂载到容器指定目录 /data/config)
$ docker run --name=account-admin-web-container --add-host=account-dev.hsifue.cn:10.2.21.170 -dit -p 8090:8080 -v /home/baijd/docker/account-admin:/data/config registry.cn-beijing.aliyuncs.com/uc/account-admin-web:private202111
# 查看启动日志,确认正常启动
$ docker logs -f account-admin-web-container

启动以后访问用户中心私有化部署域名,此处以 account-admin-dev.hsifue.cn 为例,访问 http://account-admin-dev.hsifue.cn:8090/可以正常展示登录页。(此处我以8090端口为本地示例,请以自己的域名为准)

输入初始账号(初始管理员账号:11210449300,密码:admin)登录,验证无误。

account-static-service:

# 前端私有化部署,可以直接部署打包好的前端文件 dist,然后配置nginx转发。
# 本示例前端dist存放路径
$ ls /home/baijd/docker/account-static/dist
main

注意事项

1.请确认使用自己配制的前端静态(本示例中的static2.hsifue.cn换成自己的前端静态域名),如果使用用户中心本身的静态地址,后续用户中心自身升级,会对私有化部署造成影响。

2.由于nginx部分有转发,所以需要先配置并启动nginx后才能登陆用户中心,否则可能会出现登陆失败等问题。