websocket proxy kurulumu: Revizyonlar arasındaki fark

VMTools Wiki sitesinden
Gezinti kısmına atla Arama kısmına atla
Değişiklik özeti yok
Değişiklik özeti yok
 
(Aynı kullanıcının aradaki diğer 37 değişikliği gösterilmiyor)
1. satır: 1. satır:
{{DISPLAYTITLE:Websocket Proxy Kurulumu}}
{{DISPLAYTITLE:Websocket Proxy Kurulumu}}


= Hazırlık =
Sadece adımları takip ederek modüllerimizdeki web konsol ve iso imajı işlevleri için proxy sunucusu kurabilirsiniz.




Sadece 5 adımı takip ederek modüllerimizdeki web konsol ve iso imajı işlevleri için proxy sunucusu kurabilirsiniz.<blockquote>Ubuntu 22.04 LTS (Minimal server)
= '''Hazırlık''' =
 
Webkonsol ve iso aktarım aracının proxy sunucusunda sağlıklı çalışabilmesi ve iso imajları için yeterli disk alanı bulunması için önerdiğimiz optimum sunucu özellikleri ve proxy alan adı bilgisi aşağıdaki gibidir.
<blockquote>Ubuntu 22.04 LTS (Minimal server)


4 Core İşlemci
4 Core İşlemci
10. satır: 13. satır:
8 GB RAM
8 GB RAM


250 GB Disk Alanı (Önerilen: SSD, NVMe)</blockquote>
250 GB Disk Alanı (Önerilen: SATA SSD yada NVMe SSD)
 
 


= Alan adı ve SSL kurulumu =
Alan adı dns yönetiminizden '''proxy.siteadresiniz.com''' "A" kaydı oluşturun ve bu dns kaydını ubuntu sanal sunucu ip adresine yönlendirin. Cloudflare kullanıyorsanız dns kaydı proxied ("truncu bulut simgesi") <u>olmamalıdır!</u></blockquote>Öncelikle aşağıdaki komutu çalıştırarak linux dağıtımınızı güncelleyin;
Proxy sunucusunda kullanmak üzere alan adınızın DNS yönetimi bölümünden proxy.siteadresiniz.com şeklinde bir '''"A"''' kaydı oluşturun, kurduğunuz ubuntu proxy sunucu ip adresine yönlendirin ve aşağıdaki komutları sırayla alan adını kendinize göre düzenleyerek çalıştırın.
  sudo apt-get update -y && sudo NEEDRESTART_MODE=a apt-get upgrade -y && sudo reboot
  apt-get update -y && apt-get upgrade -y && shutdown -r now


apt-get install nginx -y && apt install certbot python3-certbot-nginx -y && sudo certbot --nginx -d '''proxy.siteadresiniz.com''' --non-interactive --agree-tos --register-unsafely-without-email --redirect




= '''Websocket Proxy ve ISO Transfer Agent Kurulum Aracı''' =
Aşağıdaki komutu çalıştırarak vmtools iso transfer aracını proxy sunucusuna interaktif olarak kurabilir ve servisi aktif hale getirebilirsiniz;
bash <(curl -fsSL <nowiki>https://cdn.vmtools.io/storage/install.sh</nowiki>)
<blockquote>Kurulum sırasında interaktif olarak "'''proxy.siteadresiniz.com"''' istenecek ve '''proxy erişim anahtarınız''' teslim edilecektir.</blockquote>


= Nginx yapılandırması =
Aşağıdaki komutu çalıştırmadan önce iki alanı kendinize göre düzenleyin;


* DOMAIN = proxy.siteadresiniz.com (Proxy sunucusunun alan adı olmalıdır. '''https:// ön eki koymayınız!''')
= '''Admin Modül Ayarları''' =
* PANEL_ORIGIN = <nowiki>https://panel.siteadresiniz.com</nowiki> (İsteklerin gönderileceği alan adı olmalıdır.  Buraya Hosting Otomasyon Yazılımınızın kurulu olduğu alan adı veya kurulum alt alan adına yapılmışsa o yazılmalıdır. '''https:// ile başlamak zorundadır''')
VMTools Admin Module > Genel Ayarlar bölümünde aşağıdaki alanları doldurup kaydedin;
<blockquote>Önemli Not:


* DOMAIN ile PANEL_ORIGIN aynı şey değildir.
* '''Proxy Alan Adı:''' proxy.siteadresiniz.com
* DOMAIN proxy sunucusunun alan adıdır.
* '''Proxy Erişim Anahtarı:''' Proxy sunucunuz ssh'ı üzerinden interaktif olarak tarafınıza iletilen '''Erişim Anahtarı''' girilmelidir.<br />
* PANEL_ORIGIN ise yalnızca sizin hosting otomasyon panelinizden gelen isteklerin kabul edildiği alan adınızdır.
<blockquote>
* Yani başka bir alan adından aynı istekler gönderilirse kabul edilmeyecektir.
* <u>Proxy sunucusu hali hazırda vcenter ve esxi sunucularınıza yerelde olsa erişebiliyor olmalıdır!</u></blockquote>
</blockquote>


Aşağıdaki komutta geçen alanları kendinize göre düzenleyip çalıştırın:
DOMAIN="'''proxy.siteadresiniz.com'''" PANEL_ORIGIN="'''<nowiki>https://panel.siteadresiniz.com</nowiki>'''" && sudo bash -c 'printf "map $arg_hostname $ng_hostname {\n default $arg_hostname;\n}\n\nmap $arg_port $ng_port {\n default $arg_port;\n}\n\nmap $arg_ticket $ng_ticket {\n default $arg_ticket;\n}\n\nserver {\n listen 443 ssl;\n server_name '"$DOMAIN"';\n\n ssl_certificate /etc/letsencrypt/live/'"$DOMAIN"'/fullchain.pem;\n ssl_certificate_key /etc/letsencrypt/live/'"$DOMAIN"'/privkey.pem;\n\n ssl_protocols TLSv1.2 TLSv1.3;\n ssl_prefer_server_ciphers on;\n\n location /ticket {\n if ($ng_hostname = "") { return 400; }\n if ($ng_port = "") { return 400; }\n if ($ng_ticket = "") { return 400; }\n\n proxy_pass <nowiki>https://$ng_hostname:$ng_port$ng_ticket;\n</nowiki> proxy_http_version 1.1;\n proxy_set_header Upgrade $http_upgrade;\n proxy_set_header Connection "upgrade";\n proxy_set_header Host $host;\n proxy_set_header X-Forwarded-For $remote_addr;\n proxy_set_header X-Forwarded-Proto $scheme;\n proxy_read_timeout 86400;\n proxy_ssl_verify off;\n proxy_ssl_verify_depth 0;\n proxy_ssl_server_name on;\n }\n\n location /iso-agent/ {\n if ($request_method = OPTIONS) {\n add_header Access-Control-Allow-Origin '"$PANEL_ORIGIN"' always;\n add_header Access-Control-Allow-Methods "GET, POST, PUT, PATCH, DELETE, OPTIONS" always;\n add_header Access-Control-Allow-Headers "Authorization, Content-Type, X-Chunk-Index, X-Chunk-Size, X-Chunk-Checksum, X-Upload-Length" always;\n add_header Access-Control-Max-Age 86400 always;\n add_header Content-Length 0;\n add_header Content-Type text/plain;\n return 204;\n }\n\n add_header Access-Control-Allow-Origin '"$PANEL_ORIGIN"' always;\n add_header Access-Control-Allow-Methods "GET, POST, PUT, PATCH, DELETE, OPTIONS" always;\n add_header Access-Control-Allow-Headers "Authorization, Content-Type, X-Chunk-Index, X-Chunk-Size, X-Chunk-Checksum, X-Upload-Length" always;\n\n proxy_pass <nowiki>http://localhost:9480/;\n</nowiki> proxy_http_version 1.1;\n proxy_set_header Host $host;\n proxy_set_header X-Real-IP $remote_addr;\n proxy_set_header X-Forwarded-For $remote_addr;\n proxy_set_header X-Forwarded-Proto $scheme;\n proxy_read_timeout 86400;\n proxy_send_timeout 86400;\n proxy_request_buffering off;\n proxy_buffering off;\n client_max_body_size 64m;\n }\n}\n" | tee /etc/nginx/sites-available/default > /dev/null' && nginx -t && systemctl restart nginx
= ISO aktarım desteği için klasörleri ve güvenlik anahtarını oluşturma =
Aynı proxy sunucusunda ISO aktarımı için gerekli klasörleri oluşturun ve modül ile proxy arasında kullanılacak Gizli Güvenlik Anahtarı değerini üretin.
PROXY_SHARED_SECRET="$(openssl rand -hex 32)" && sudo mkdir -p /opt/vmtools-transfer-agent/{data,tmp,logs} && echo "PROXY_SHARED_SECRET=$PROXY_SHARED_SECRET" | sudo tee /opt/vmtools-transfer-agent/agent.env > /dev/null && echo "$PROXY_SHARED_SECRET"
<blockquote>Not:
* Komut çıktısında görünen değer VMTools Admin modülü sayfasında genel ayarlar menüsünden '''Proxy Erişim Anahtarı''' alanına girilecektir.
* Bu değeri kaybetmeyiniz ve 3. şahıslarla paylaşmayınız!
Ne işe yarar?
* Bu gizli anahtar, modül ile proxy sunucusunun birbirini tanıması için kullanılır.
* Böylece sadece sizin sitenizden gelen istekler proxy sunucusu tarafından kabul edilir.
* Websocket proxy ve ISO aktarım desteği aynı güvenlik yapısını kullanır.
</blockquote>
= Modül ayarları =
VMTools Module > Genel Ayarlar bölümünde aşağıdaki alanları doldurup kaydedin:
* '''Websocket Proxy Hostname/IP Adresi'''  Proxy için oluşturduğunuz alan adını başında '''http://''' ve '''www.''' olmadan girin.  Örnek: proxy.siteadresiniz.com
* '''Proxy ISO Transfer URL'''  Aynı proxy alan adı üzerinden aşağıdaki şekilde, başında '''https://''' olacak şekilde girin.  Örnek: <nowiki>https://proxy.siteadresiniz.com/iso-agent</nowiki>
* '''Proxy Erişim Anahtarı'''  3. adımda oluşturulan proxy erişim anahtarını girin.
<blockquote><u>Önemli Not:</u>
* Proxy sunucusu hali hazırda vcenter'ınıza ve esxi sunucularınıza erişebiliyor olmalıdır!
* Websocket proxy ve ISO aktarım desteği aynı proxy sunucusunda ve aynı alan adı üzerinde çalışır.
* Bu kurulumda yeni bir proxy sunucusu gerekmez.
* Bu kurulumda ikinci bir proxy alan adı gerekmez.
</blockquote>
Kurulum tamamlandıktan sonra aşağıdaki kontrolleri yapabilirsiniz:


= '''Kurulum Sonrası Test''' =
<blockquote>
* Web konsol bağlantısı açılabiliyor olmalıdır.
* Web konsol bağlantısı açılabiliyor olmalıdır.
* ISO İmajları admin modülünden ve müşteri panelinden yüklenebiliyor olmalıdır.
* ISO İmajları admin modülünden ve müşteri panelinden yüklenebiliyor olmalıdır.
* Proxy alan adınız tarayıcıdan düzgün açılıyor olmalı ve ssl görülmelidir.
* Proxy alan adınız tarayıcıdan düzgün açılıyor olmalı ve ssl sertifikası geçerli görünmelidir.
</blockquote>

22.01, 8 Nisan 2026 itibarı ile sayfanın şu anki hâli


Sadece adımları takip ederek modüllerimizdeki web konsol ve iso imajı işlevleri için proxy sunucusu kurabilirsiniz.


Hazırlık

Webkonsol ve iso aktarım aracının proxy sunucusunda sağlıklı çalışabilmesi ve iso imajları için yeterli disk alanı bulunması için önerdiğimiz optimum sunucu özellikleri ve proxy alan adı bilgisi aşağıdaki gibidir.

Ubuntu 22.04 LTS (Minimal server)

4 Core İşlemci

8 GB RAM

250 GB Disk Alanı (Önerilen: SATA SSD yada NVMe SSD)

Alan adı dns yönetiminizden proxy.siteadresiniz.com "A" kaydı oluşturun ve bu dns kaydını ubuntu sanal sunucu ip adresine yönlendirin. Cloudflare kullanıyorsanız dns kaydı proxied ("truncu bulut simgesi") olmamalıdır!

Öncelikle aşağıdaki komutu çalıştırarak linux dağıtımınızı güncelleyin;

sudo apt-get update -y && sudo NEEDRESTART_MODE=a apt-get upgrade -y && sudo reboot


Websocket Proxy ve ISO Transfer Agent Kurulum Aracı

Aşağıdaki komutu çalıştırarak vmtools iso transfer aracını proxy sunucusuna interaktif olarak kurabilir ve servisi aktif hale getirebilirsiniz;

bash <(curl -fsSL https://cdn.vmtools.io/storage/install.sh)

Kurulum sırasında interaktif olarak "proxy.siteadresiniz.com" istenecek ve proxy erişim anahtarınız teslim edilecektir.


Admin Modül Ayarları

VMTools Admin Module > Genel Ayarlar bölümünde aşağıdaki alanları doldurup kaydedin;

  • Proxy Alan Adı: proxy.siteadresiniz.com
  • Proxy Erişim Anahtarı: Proxy sunucunuz ssh'ı üzerinden interaktif olarak tarafınıza iletilen Erişim Anahtarı girilmelidir.
  • Proxy sunucusu hali hazırda vcenter ve esxi sunucularınıza yerelde olsa erişebiliyor olmalıdır!


Kurulum Sonrası Test

  • Web konsol bağlantısı açılabiliyor olmalıdır.
  • ISO İmajları admin modülünden ve müşteri panelinden yüklenebiliyor olmalıdır.
  • Proxy alan adınız tarayıcıdan düzgün açılıyor olmalı ve ssl sertifikası geçerli görünmelidir.