Posts
前端常用正则表达式
不能包含字母 /^[^A-Za-z]*$/ 只包含中文和数字 /^((?:[\u3400-\u4DB5\u4E00-\u9FEA\uFA0E\uFA0F\uFA11\uFA13\uFA14\uFA1F\uFA21\uFA23\uFA24\uFA27-\uFA29]|[\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872\uD874-\uD879][\uDC00-\uDFFF]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0])|(\d))+$/ 中国邮政编码 /^(0[1-7]|1[0-356]|2[0-7]|3[0-6]|4[0-7]|5[1-7]|6[1-7]|7[0-5]|8[013-6])\d{4}$/ 微信号,6至20位,以字母开头,字母,数字,减号,下划线 /^[a-zA-Z][-_a-zA-Z0-9]{5,19}$/ 16进制颜色 /^#?([a-fA-F0-9]{6}|[a-fA-F0-9]{3})$/ ip-v6 /^((([0-9A-Fa-f]{1,4}:){7}[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){6}:[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){5}:([0-9A-Fa-f]{1,4}:)?[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){4}:([0-9A-Fa-f]{1,4}:){0,2}[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){3}:([0-9A-Fa-f]{1,4}:){0,3}[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){2}:([0-9A-Fa-f]{1,4}:){0,4}[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){6}((\b((25[0-5])|(1\d{2})|(2[0-4]\d)|(\d{1,2}))\b)\.){3}(\b((25[0-5])|(1\d{2})|(2[0-4]\d)|(\d{1,2}))\b))|(([0-9A-Fa-f]{1,4}:){0,5}:((\b((25[0-5])|(1\d{2})|(2[0-4]\d)|(\d{1,2}))\b)\.){3}(\b((25[0-5])|(1\d{2})|(2[0-4]\d)|(\d{1,2}))\b))|(::([0-9A-Fa-f]{1,4}:){0,5}((\b((25[0-5])|(1\d{2})|(2[0-4]\d)|(\d{1,2}))\b)\.){3}(\b((25[0-5])|(1\d{2})|(2[0-4]\d)|(\d{1,2}))\b))|([0-9A-Fa-f]{1,4}::([0-9A-Fa-f]{1,4}:){0,5}[0-9A-Fa-f]{1,4})|(::([0-9A-Fa-f]{1,4}:){0,6}[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){1,7}:))$/i ip-v4 /^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/ 用户名正则,4到16位(字母,数字,下划线,减号) /^[a-zA-Z0-9_-]{4,16}$/ 密码强度正则,最少6位,包括至少1个大写字母,1个小写字母,1个数字,1个特殊字符 /^.*(?=.{6,})(?=.*\d)(?=.*[A-Z])(?=.*[a-z])(?=.*[!@#$%^&*? ]).*$/ 纯大写英文字母 /^[A-Z]+$/ 纯小写英文字母组成 /^[a-z]+$/ 纯英文字母 /^[a-zA-Z]+$/ 是否由数字和字母组成 /^[A-Za-z0-9]+$/ 是否qq号格式正确 /^[1-9][0-9]{4,10}$/ 是否html标签(宽松匹配) /<(.*)>.*<\/\1>|<(.*) \/>/ 纯数字 /^\d{1,}$/ 固定电话 /^0\d{2,3}-\d{7,8}$/ 是否小数 /^\d+\.\d+$/ 纯中文/汉字 /^(?:[\u3400-\u4DB5\u4E00-\u9FEA\uFA0E\uFA0F\uFA11\uFA13\uFA14\uFA1F\uFA21\uFA23\uFA24\uFA27-\uFA29]|[\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872\uD874-\uD879][\uDC00-\uDFFF]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0])+$/ 帐号是否合法(字母开头,允许5-16字节,允许字母数字下划线组合 /^[a-zA-Z][a-zA-Z0-9_]{4,15}$/ 护照(包含香港、澳门) /(^[EeKkGgDdSsPpHh]\d{8}$)|(^(([Ee][a-fA-F])|([DdSsPp][Ee])|([Kk][Jj])|([Mm][Aa])|(1[45]))\d{7}$)/ 身份证号, 支持1/2代(15位/18位数字) /(^\d{8}(0\d|10|11|12)([0-2]\d|30|31)\d{3}$)|(^\d{6}(18|19|20)\d{2}(0\d|10|11|12)([0-2]\d|30|31)\d{3}(\d|X|x)$)/ 二代身份证号(18位数字),最后一位是校验位,可能为数字或字符X /^\d{6}(18|19|20)\d{2}(0\d|10|11|12)([0-2]\d|30|31)\d{3}(\d|X|x)$/ 一代身份证号(15位数字) /^\d{8}(0\d|10|11|12)([0-2]\d|30|31)\d{3}$/ 国内座机电话,如: 0553-5533111 /\d{3}-\d{8}|\d{4}-\d{7}/ 邮箱地址 /^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/ 日期 /^\d{4}(-)(1[0-2]|0?\d)\1([0-2]\d|\d|30|31)$/ 中国手机号(最宽松), 只要是1开头即可, 如果你的手机号是用来接收短信, 优先建议选择这一条 /^(?:(?:\+|00)86)?1\d{10}$/ 中国手机号(宽松), 只要是13,14,15,16,17,18,19开头即可 /^(?:(?:\+|00)86)?1[3-9]\d{9}$/ 中国手机号(严谨), 根据工信部2019年最新公布的手机号段 /^(?:(?:\+|00)86)?1(?:(?:3[\d])|(?:4[5-7|9])|(?:5[0-3|5-9])|(?:6[5-7])|(?:7[0-8])|(?:8[\d])|(?:9[1|8|9]))\d{8}$/ 车牌号(新能源+非新能源) /^(?
Posts
Geoserver搭建及集群服务配置
环境要求: 操作系统 IP地址 节点情况 部署方式 ubuntu16.04_x64 192.168.5.100 Master tomcat部署war包 ubuntu16.04_x64 192.168.5.101 Node1 sh方式部署 ubuntu16.04_x64 192.168.5.102 Node2 sh方式部署 Master、Node节点需先配置好Java1.8的环境
配置好Master上的nfs文件系统给Node调用,nfs文件系统中存储的是Geroserver的工作文件目录,即GEOSERVER_DATA_DIR变量
Master配置tomcat、ActiveMq、jms等 安装tomcat时不要用su权限去安装 配置tomcat环境
sudo nano tomcat/bin/startup.sh export JAVA_HOME=/home/ubuntu/jdk1.8 export JRE_HOME=${JAVA_HOME}/jre export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib export PATH=.:${JAVA_HOME}/bin:$PATH export TOMCAT_HOME=/home/ubuntu/tomcat sudo nano tomcat/bin/catalina.sh UMASK改为0 配置geoserver的工作目录 nano tomcat/webapps/geoserver/WEB-INF/web.xml 添加GEOSERVER_DATA_DIR配置项为设置好的nfs文件共享目录 ActiveMq配置消息,用于同步Master中的配置到Node中 下载activemqBroker-2.
Posts
Postgresql的postgis、citus集群搭建
安装环境: 操作系统:ubuntu16.04_x64 软件版本:postgresql10、postgis3、citus 节点情况: 操作系统 IP地址 节点情况 ubuntu16.04_x64 192.168.5.100 Master ubuntu16.04_x64 192.168.5.101 Salver1 ubuntu16.04_x64 192.168.5.102 Salver2 安装命令: 三台服务器都执行以下命令,安装好postgresql10+postgis3+citus
sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt xenial-pgdg main" >> /etc/apt/sources.list' wget --quiet -O - http://apt.postgresql.org/pub/repos/apt/ACCC4CF8.asc | sudo apt-key add - sudo apt update sudo apt install postgresql-10 postgresql-10-postgis-3-scripts postgis postgresql-10-citus 三台服务器都要修改数据库密码和postgres用户密码 修改数据库密码
sudo -u postgres psql ALTER USER postgres WITH PASSWORD '123456'; \q 修改ubuntu操作系统的postgres用户的密码(密码要与数据库用户postgres的密码相同)
Posts
Ubuntu安装nfs文件共享系统及开机自动挂载
一、服务端安装nfs文件系统 安装服务端软件 sudo apt-get update sudo apt-get install -y nfs-kernel-server 设置共享文件夹 mkdir /home/ubuntu/nfs_share nano /etc/exports 添加以下代码用于配置共享 /home/ubuntu/nfs_share *(rw,sync,no_root_squash,no_subtree_check) 重启服务 sudo /etc/init.d/rpcbind restart sudo /etc/init.d/nfs-kernel-server restart 二、客户端挂载文件系统 安装客户端软件 apt-get install -y nfs-common 本地需新建一个用于接收服务端的文件夹 mkdir /home/ubuntu/nfs_share sudo mount 192.168.1.111:/home/ubuntu/nfs_share /home/ubuntu/nfs_share 意思是将192.168.1.111 ip地址下的/home/ubuntu/nfs_share目录挂载到本机的/home/ubuntu/nfs_share目录下
设计开机自动挂载 sudo nano /etc/fstab XXX.XXX.XXX.XXX:/home/ubuntu/nfs_share /home/ubuntu/nfs_share nfs rw 即可实现服务端开机自动挂载服务端共享的目录
Posts
Nginx负载均衡
主要将转发的代理设置为多个装有相同服务的主机即可 http{ upstream gs1 { server 192.168.1.100:8080 weight=1; server 192.168.1.102:8080 weight=2; server 192.168.1.101:8080 backup; #热备,平时不启动 server 192.168.1.101:8080 down; #不参与负载均衡 } server { listen 80; server_name https://blog.gghosts.com; location / { proxy_pass http://gs1/; index index.html index.htm; } } } 相应参数解释 down:表示当前的server暂时不参与负载均衡。 backup:预留的备份机器。当其他所有的非backup机器出现故障或者忙的时候,才会请求backup机器,因此这台机器的压力最轻。 max_fails:允许请求失败的次数,默认为1。当超过最大次数时,返回proxy_next_upstream 模块定义的错误。 fail_timeout:在经历了max_fails次失败后,暂停服务的时间。max_fails可以和fail_timeout一起使用。
Posts
使用Docker方式安装各种数据库
Postgresql /var/lib/postgresql/data为Postgresql的存储目录,映射到本地的/home/ubuntu/postgresData目录下 54321为从Docker映射出来的端口给外部使用的
docker run --name postgres -e POSTGRES_PASSWORD=123456 -p 54321:5432 -v /home/ubuntu/postgresData:/var/lib/postgresql/data -d postgres --restart=always docker exec -it postgres /bin/bash 进入Bash
Redis /data为Redis的存储目录,映射到本地的/home/ubuntu/redisData目录下 63791为从Docker映射出来的端口给外部使用的
docker run -d -p 63791:6379 -v /home/ubuntu/redisData:/data --name redis redis redis-server --appendonly yes --restart=always docker exec -it redis redis-cli 进入Redis的命令
Mysql /var/lib/mysql为Mysql的存储目录,映射到本地的/home/ubuntu/mysqlData目录下 33061为从Docker映射出来的端口给外部使用的
docker run --name mysql --restart=always -p 33061:3306 -v /home/ubuntu/mysqlData:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql 进入Mysql系统,Mysql 8.