Delete nginx config
This commit is contained in:
@@ -1,215 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Цвета для вывода
|
||||
GREEN='\033[0;32m'
|
||||
BLUE='\033[0;34m'
|
||||
RED='\033[0;31m'
|
||||
NC='\033[0m' # No Color
|
||||
|
||||
echo -e "${BLUE}Nginx Installation and Setup Script by izzzzzi${NC}"
|
||||
echo "----------------------------------------"
|
||||
|
||||
# Проверка root прав
|
||||
if [[ $EUID -ne 0 ]]; then
|
||||
echo -e "${RED}This script must be run as root${NC}"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Запрос данных у пользователя
|
||||
read -p "Enter your domain name: " DOMAIN
|
||||
read -p "Enter HTTP port (default: 80): " HTTP_PORT
|
||||
read -p "Enter proxy pass port (default: 3001): " PROXY_PORT
|
||||
|
||||
# Использование значений по умолчанию
|
||||
HTTP_PORT=${HTTP_PORT:-80}
|
||||
PROXY_PORT=${PROXY_PORT:-3001}
|
||||
|
||||
# Проверка занятости портов
|
||||
check_port() {
|
||||
if lsof -Pi :$1 -sTCP:LISTEN -t >/dev/null ; then
|
||||
echo -e "${RED}Port $1 is already in use!${NC}"
|
||||
exit 1
|
||||
fi
|
||||
}
|
||||
|
||||
echo -e "${GREEN}Checking ports availability...${NC}"
|
||||
check_port $HTTP_PORT
|
||||
|
||||
# Установка необходимых пакетов
|
||||
echo -e "${GREEN}Installing required packages...${NC}"
|
||||
apt-get update
|
||||
apt-get install nginx certbot python3-certbot-nginx wget openssl -y
|
||||
|
||||
# Создание директории для статического сайта и валидации сертификата
|
||||
echo -e "${GREEN}Creating directories...${NC}"
|
||||
mkdir -p /var/www/certbot
|
||||
mkdir -p /var/www/mywebsite
|
||||
|
||||
# Создание HTTP-конфигурации для Nginx
|
||||
echo -e "${GREEN}Creating initial Nginx configuration...${NC}"
|
||||
cat > /etc/nginx/sites-available/$DOMAIN << EOF
|
||||
server {
|
||||
listen $HTTP_PORT;
|
||||
server_name $DOMAIN;
|
||||
|
||||
location / {
|
||||
return 301 https://\$host\$request_uri;
|
||||
}
|
||||
|
||||
location /.well-known/acme-challenge/ {
|
||||
root /var/www/certbot;
|
||||
}
|
||||
}
|
||||
EOF
|
||||
|
||||
ln -sf /etc/nginx/sites-available/$DOMAIN /etc/nginx/sites-enabled/
|
||||
rm -f /etc/nginx/sites-enabled/default
|
||||
|
||||
# Проверка конфигурации и перезапуск Nginx
|
||||
echo -e "${GREEN}Testing Nginx configuration...${NC}"
|
||||
nginx -t
|
||||
if [ $? -ne 0 ]; then
|
||||
echo -e "${RED}Error in Nginx configuration. Please check the logs.${NC}"
|
||||
exit 1
|
||||
fi
|
||||
systemctl reload nginx
|
||||
|
||||
# Получение сертификата
|
||||
echo -e "${GREEN}Obtaining SSL certificate...${NC}"
|
||||
certbot certonly --webroot --webroot-path /var/www/certbot -d $DOMAIN --agree-tos --no-eff-email --register-unsafely-without-email
|
||||
if [ $? -ne 0 ]; then
|
||||
echo -e "${RED}Failed to obtain SSL certificate. Please check certbot logs.${NC}"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Установка недостающих файлов для SSL
|
||||
echo -e "${GREEN}Ensuring required SSL files exist...${NC}"
|
||||
if [ ! -f /etc/letsencrypt/options-ssl-nginx.conf ]; then
|
||||
wget -O /etc/letsencrypt/options-ssl-nginx.conf https://raw.githubusercontent.com/certbot/certbot/main/certbot_nginx/certbot_nginx/options-ssl-nginx.conf
|
||||
fi
|
||||
if [ ! -f /etc/letsencrypt/ssl-dhparams.pem ]; then
|
||||
openssl dhparam -out /etc/letsencrypt/ssl-dhparams.pem 2048
|
||||
fi
|
||||
|
||||
# Обновление конфигурации для HTTPS
|
||||
echo -e "${GREEN}Creating HTTPS configuration...${NC}"
|
||||
cat > /etc/nginx/sites-available/$DOMAIN << EOF
|
||||
server {
|
||||
listen $HTTP_PORT;
|
||||
server_name $DOMAIN;
|
||||
|
||||
location / {
|
||||
return 301 https://\$host\$request_uri;
|
||||
}
|
||||
|
||||
location /.well-known/acme-challenge/ {
|
||||
root /var/www/certbot;
|
||||
}
|
||||
}
|
||||
|
||||
server {
|
||||
listen 443 ssl;
|
||||
server_name $DOMAIN;
|
||||
|
||||
ssl_certificate /etc/letsencrypt/live/$DOMAIN/fullchain.pem;
|
||||
ssl_certificate_key /etc/letsencrypt/live/$DOMAIN/privkey.pem;
|
||||
include /etc/letsencrypt/options-ssl-nginx.conf;
|
||||
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem;
|
||||
|
||||
root /var/www/mywebsite;
|
||||
index index.html;
|
||||
|
||||
location / {
|
||||
try_files \$uri \$uri/ =404;
|
||||
}
|
||||
|
||||
location /webhook {
|
||||
proxy_pass http://localhost:$PROXY_PORT/webhook;
|
||||
proxy_set_header Host \$host;
|
||||
proxy_set_header X-Real-IP \$remote_addr;
|
||||
proxy_set_header X-Forwarded-For \$proxy_add_x_forwarded_for;
|
||||
proxy_set_header X-Forwarded-Proto \$scheme;
|
||||
}
|
||||
|
||||
location /sub/ {
|
||||
proxy_pass http://localhost:$PROXY_PORT;
|
||||
proxy_set_header Host \$host;
|
||||
proxy_set_header X-Real-IP \$remote_addr;
|
||||
proxy_set_header X-Forwarded-For \$proxy_add_x_forwarded_for;
|
||||
proxy_set_header X-Forwarded-Proto \$scheme;
|
||||
add_header Content-Type text/plain;
|
||||
add_header Content-Disposition inline;
|
||||
add_header Cache-Control no-store;
|
||||
add_header Pragma no-cache;
|
||||
}
|
||||
|
||||
location /yookassa/webhook {
|
||||
proxy_pass http://localhost:$PROXY_PORT/yookassa/webhook;
|
||||
proxy_set_header Host \$host;
|
||||
proxy_set_header X-Real-IP \$remote_addr;
|
||||
proxy_set_header X-Forwarded-For \$proxy_add_x_forwarded_for;
|
||||
proxy_set_header X-Forwarded-Proto \$scheme;
|
||||
|
||||
proxy_connect_timeout 60s;
|
||||
proxy_send_timeout 60s;
|
||||
proxy_read_timeout 60s;
|
||||
}
|
||||
|
||||
location /freekassa/webhook {
|
||||
proxy_pass http://localhost:$PROXY_PORT/freekassa/webhook;
|
||||
proxy_set_header Host \$host;
|
||||
proxy_set_header X-Real-IP \$remote_addr;
|
||||
proxy_set_header X-Forwarded-For \$proxy_add_x_forwarded_for;
|
||||
proxy_set_header X-Forwarded-Proto \$scheme;
|
||||
|
||||
proxy_connect_timeout 60s;
|
||||
proxy_send_timeout 60s;
|
||||
proxy_read_timeout 60s;
|
||||
}
|
||||
|
||||
location /cryptobot/webhook {
|
||||
proxy_pass http://localhost:$PROXY_PORT/cryptobot/webhook;
|
||||
proxy_set_header Host \$host;
|
||||
proxy_set_header X-Real-IP \$remote_addr;
|
||||
proxy_set_header X-Forwarded-For \$proxy_add_x_forwarded_for;
|
||||
proxy_set_header X-Forwarded-Proto \$scheme;
|
||||
|
||||
proxy_connect_timeout 60s;
|
||||
proxy_send_timeout 60s;
|
||||
proxy_read_timeout 60s;
|
||||
}
|
||||
|
||||
location /robokassa/webhook {
|
||||
proxy_pass http://localhost:$PROXY_PORT/robokassa/webhook;
|
||||
proxy_set_header Host \$host;
|
||||
proxy_set_header X-Real-IP \$remote_addr;
|
||||
proxy_set_header X-Forwarded-For \$proxy_add_x_forwarded_for;
|
||||
proxy_set_header X-Forwarded-Proto \$scheme;
|
||||
|
||||
proxy_connect_timeout 60s;
|
||||
proxy_send_timeout 60s;
|
||||
proxy_read_timeout 60s;
|
||||
}
|
||||
}
|
||||
EOF
|
||||
|
||||
# Проверка конфигурации и перезапуск Nginx
|
||||
echo -e "${GREEN}Testing Nginx configuration...${NC}"
|
||||
nginx -t
|
||||
if [ $? -ne 0 ]; then
|
||||
echo -e "${RED}Error in updated Nginx configuration. Please check the logs.${NC}"
|
||||
exit 1
|
||||
fi
|
||||
systemctl reload nginx
|
||||
|
||||
# Настройка автообновления сертификата
|
||||
echo -e "${GREEN}Setting up certificate auto-renewal...${NC}"
|
||||
(crontab -l 2>/dev/null; echo "0 12 * * * /usr/bin/certbot renew --quiet && systemctl reload nginx") | crontab -
|
||||
|
||||
# Завершение
|
||||
echo -e "${GREEN}Setup completed!${NC}"
|
||||
echo -e "${BLUE}Domain: ${DOMAIN}${NC}"
|
||||
echo -e "${BLUE}HTTP port: ${HTTP_PORT}${NC}"
|
||||
echo -e "${BLUE}Proxy pass port: ${PROXY_PORT}${NC}"
|
||||
echo
|
||||
echo -e "${RED}Important: Ensure DNS points to this server's IP!${NC}"
|
||||
Reference in New Issue
Block a user