Upload files to "/"
This commit is contained in:
parent
d4a4bcc185
commit
546df7dcf0
1 changed files with 64 additions and 28 deletions
92
autonginx
92
autonginx
|
|
@ -6,43 +6,79 @@ URL: url à laquelle le service sera accessible (exemple.urlab.be)
|
|||
IP: adresse ip locale du service (127.0.0.1 si sur cette machine, 172.23.100.X sinon)
|
||||
PORT: port utilisé par le service (entre 1 et 65535; certains ports sont déjà utilisés)"
|
||||
|
||||
error(){
|
||||
echo "$USAGE"
|
||||
error() {
|
||||
echo "$@"
|
||||
exit 1
|
||||
}
|
||||
|
||||
sanitize()
|
||||
{
|
||||
sanitize() {
|
||||
if ! [ "$PORT" -eq "$PORT" ] 2> /dev/null; then
|
||||
error
|
||||
error "$USAGE"
|
||||
fi
|
||||
if 1 "<" PORT ">" 65535 ; then
|
||||
error
|
||||
if [ "$PORT" -lt 1 ] || [ "$PORT" -gt 65535 ]; then
|
||||
error "$USAGE"
|
||||
fi
|
||||
case "$URL" in
|
||||
*.urlab.be) SUBDOMAIN=${URL%.urlab.be} ;;
|
||||
*) error "$USAGE";;
|
||||
esac
|
||||
if [ "$SUBDOMAIN" = "" ]; then
|
||||
error "$USAGE"
|
||||
fi
|
||||
if [ "$(expr "$SUBDOMAIN" : '[A-Za-z0-9][A-Za-z0-9\-]\{0,61\}[A-Za-z0-9]\{0,1\}')" != "${#SUBDOMAIN}" ]; then
|
||||
error "$USAGE"
|
||||
fi
|
||||
if [ "$IP" != "127.0.0.1" ]; then
|
||||
case "$IP" in
|
||||
127.0.0.1) ;;
|
||||
172.23.100.[0-9]*)
|
||||
LAST=${IP#172.23.100.}
|
||||
if [ "$LAST" -lt 2 ] || [ "$LAST" -gt 254 ]; then
|
||||
error "$USAGE"
|
||||
fi ;;
|
||||
*) error "$USAGE";;
|
||||
esac
|
||||
fi
|
||||
echo "looks good"
|
||||
}
|
||||
|
||||
if [ $# != 3 ]; then
|
||||
error
|
||||
fi
|
||||
verify() {
|
||||
if ! ping -c 1 -W 1 "$IP" >/dev/null 2>/dev/null ; then
|
||||
error "Error : Cannot reach host $IP"
|
||||
fi
|
||||
if ! timeout 1 sh -c "(echo > /dev/tcp/$IP/$PORT) >/dev/null 2>&1"; then
|
||||
error "Error : Port $PORT isn't open"
|
||||
fi
|
||||
echo "is good"
|
||||
}
|
||||
|
||||
URL="$1"
|
||||
IP="$2"
|
||||
PORT="$3"
|
||||
main() {
|
||||
if [ $# != 3 ]; then
|
||||
error "$USAGE"
|
||||
fi
|
||||
|
||||
sanitize
|
||||
URL="$1"
|
||||
IP="$2"
|
||||
PORT="$3"
|
||||
NGINX="server {
|
||||
listen 80;
|
||||
listen [::]:80;
|
||||
|
||||
echo "$URL"
|
||||
echo "$IP"
|
||||
echo "$PORT"
|
||||
# sanitize input
|
||||
# port entre 1 et 65535
|
||||
# url de la forme *.urlab.be
|
||||
# ip soit 127.0.0.1 soit 172.23.100.X, X entre 2 et 254
|
||||
# verifier input
|
||||
# ping ip
|
||||
# check si port utilisé
|
||||
#
|
||||
#
|
||||
# generate config, put it in right location
|
||||
# generate ssl certificate
|
||||
server_name $URL;
|
||||
|
||||
location / {
|
||||
proxy_pass http://$IP:$PORT/;
|
||||
include proxy_params;
|
||||
}
|
||||
}"
|
||||
|
||||
sanitize
|
||||
verify
|
||||
echo "$NGINX"
|
||||
# generate config, put it in right location
|
||||
# verify nginx config (nginx -t)
|
||||
# generate ssl certificate
|
||||
}
|
||||
|
||||
main "$@"
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue