VPS üzerinde çoklu Ngnix Proxy Reverse kullanmak istiyorum. Ön tarafta Ücretsiz CF bulunmakta ve CF nin aşılması durumunda öndeki VPS saldırıya uğrasın yada IP si görünsün.
Hedef domainler farklı IP lerde olabilir vs SSL ile yönlenmesini istiyorum. Birden fazla VPS e kuracağım için manual olması yerine bir shell script oluştudum fakat burada 1 domaine gidiyor ve bir türlü SSL aktifleştiremedim. Yardımcı olacak arkadaşlara şimdiden teşekkür ederim.
ARADIĞIM ÇÖZÜM : 7 domain tanımadıysam 7 domaine reverse yapamıyor ve SSL çalıştırmıyor!
Şimdiden teşekürler.
KURULUM
sudo chmod +x reverse_ssl.ssh
Konfig (domainler ve IP ler ayarlandıktan sonra=
sudo ./reverse_ssl.ssh
SHELL İÇERİĞİ
#!/bin/bash
echo "Updating the system"
#apt-get update -y && apt-get upgrade -y
apt-get install jq -y
apt-get install -q nginx -y
apt-get install ufw -y
apt-get install software-properties-common -y
add-apt-repository universe
add-apt-repository ppa:certbot/certbot
apt-get update -y
apt-get install certbot python-certbot-nginx -y
ufw allow 'Nginx Full'
ufw delete allow 'Nginx HTTP'
LIST=$(cat configuration.json | jq -c '.[]')
echo "Configuration loaded."
STRING=""
for row in $LIST; do
_jq() {
echo ${row} | jq -r ${1}
}
echo "server {
listen 80;
server_name $(_jq '.domain') www.$(_jq '.domain');
location / {
proxy_set_header Host \$host;
proxy_intercept_errors on;
proxy_pass http://$(_jq '.host')/;
}
}" >> /etc/nginx/sites-available/"$(_jq '.domain')"
ln -s /etc/nginx/sites-available/"$(_jq '.domain')" /etc/nginx/sites-enabled/"$(_jq '.domain')"
if [ "$(_jq '.ssl')" == "true" ]; then
STRING="${STRING} -d $(_jq '.domain') -d www.$(_jq '.domain')"
fi
done
nginx -t && nginx -s reload
if [ "${#STRING}" != "0" ]; then
certbot --agree-tos --nginx $STRING
fi
echo "Configuration Completed";configuration.json içeriği[
{
"domain" : "domain1.com",
"host" : "10.0.0.1",
"ssl" : "false"
},
{
"domain" : "domain2.com",
"host" : "10.0.0.1",
"ssl" : "false"
},
{
"domain" : "domain3.com",
"host" : "10.0.0.1",
"ssl" : "false"
},
{
"domain" : "domain4.com",
"host" : "10.0.0.1",
"ssl" : "false"
},
{
"domain" : "domain5.com",
"host" : "10.0.0.1",
"ssl" : "false"
},
{
"domain" : "domain6.com",
"host" : "10.0.0.1",
"ssl" : "false"
},
{
"domain" : "domain7.com",
"host" : "10.0.0.1",
"ssl" : "false"
}
]