#!/bin/sh
#####################################################
# Name: create_nginx_conf.sh
# Version: V1.0
# Author: 运维菜鸟
# Description: 创建nginx相关配置文件
# Create Date: 2017-07-04
# Email:
#####################################################
#env.sh文件内容格式:10.10.2.6=basics-price-service;
#function_name:要调用的方法
function_name=$1
#ns_type:项目环境名称
ns_type=$2
#env_file:env.sh文件具体路径
env_file_path=$3
#判断env.sh是否存在
function check_env_file() {
if [ -f ${env_file_path} ];then
echo "the ${env_file_path} is exist."
echo -e "
"
else
echo "the ${env_file_path} is not exist."
exit 1
fi
}
#生成nginx的location段的配置文件
function create_location(){
for pool in `cat ${env_file_path} | cut -d "=" -f2 | cut -d ";" -f1 | sort | uniq`;do
echo -e "location /${pool} {
proxy_pass http://${ns_type}-${pool}/${pool};
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
break;
}"
done
}
#生成nginx的upstream配置文件
function create_upstream_conf() {
for pool in `cat ${env_file_path} | cut -d "=" -f2 | cut -d ";" -f1 | sort | uniq`;do
ip_list=`cat ${env_file_path} | egrep "${pool};" | cut -d "=" -f1 | sort |uniq`
#pool_port=`cat env.sh | egrep "${pool}=" | cut -d "=" -f3 | cut -d ";" -f1| sort | uniq`
echo -e "upstream ${ns_type}-${pool} {"
for ip in ${ip_list[*]};do
echo -e " server ${ip}:8080;"
done
echo "}"
done
}
if [ $# -eq 3 ];then
case $1 in
location)
check_env_file;
create_location;
;;
upstream)
check_env_file;
create_upstream_conf;
;;
*)
$"Usage: {sh create_nginx_conf.sh location hh-prod /data/env.sh|sh create_nginx_conf.sh upstream hh-prod /data/env.sh}"
exit 3
esac
else
echo "variables count not eq 5.please check the usage."
echo "Usage: {sh create_nginx_conf.sh location hh-prod /data/env.sh|sh create_nginx_conf.sh upstream hh-prod /data/env.sh}."
fi