Azure Ortamında NGINX Servisli Linux Sanal Makine Kurulumu
Bu makalemizde Azure ortamında NGİNX hizmetinin çalıştığı Linux Sanal Makine oluşturma işlemlerini gerçekleştireceğiz.
İlk olarak gerçekleştireceğimiz adımlar nelerdir ? Onları sıralayalım :
- Linux Sanal Makinesi oluşturacağız .
- Oluşturmuş olduğumuz Sanal Makineye veri diski ekleyeceğiz.
- Sanal Makinemiz için ağımızı yapılandıracağız. Subnet , NIC , Public IP Address ve Network Security Group kuralları ekleyeceğiz.
- Bazı yapılandırmaları otomatikleştirebileceğimizi gösterebilmek için özel verileri kullanarak Nginx’i yükleyerek , Bir web sunucusu kuracağız.
- HTTP için Ağ güvenlik grubumuz ve bunu azure portalı kullanarak gerçekleştireceğiz.
İlk olarak Azure Portal ekranına geliriz. Arama çubuğuna ” Virtual Machines “ yazarak ” Services “ bölümü altında ” Virtual Machine “ seçeneğini seçeriz.

” Create “ seçeneğini seçerek ” Virtual Machine “ seçeneğini seçeriz.

Ve şimdi Sanal Makinemizi yapılandırmaya başlayabiliriz

İlk olarak ” Project Details “ bölümünde ” Subscription “ bizim için seçili durumdadır ve yapmamız gereken tek şey ortamımızda oluşturmuş olduğumuz ” Resource Group “ alanımızı ortamımızdaki ” RG_WestUs “ şeklinde seçeriz.

” İnstance Details “ bölümünde ise Sanal Makinemiz için ” Virtual Machine Name “ kutucuğuna Sanal Makinemize vermek istediğimiz ismi yazarız. ” Region “ kutucuğunda ise Sanal Makinemizin bulanacağı Bölgeyi seçebiliriz. ” Availability Options “ alanını varsayılan olarak bırakacağız. Availability options konusunda ilerleyen sayfalarımızda değiniyor olacağız. ” Image “ alanını ” Ubuntu Server 20.04 LTS “ olarak seçeriz. ” Size “ kısmını kurulum sağlayacağınız uygulamaya göre seçebilirsiniz.

” Administrator account “ bölümünde ” Authentication type “ alanından SSH Public ile ilerleyebiliriz. Bu Sanal Makineyi oluşturduktan sonra indireceğimiz eki veya bir ” Password “ yani şifre kullanabiliriz yani bir Username ve Password ile giriş yapabilirsiniz. Biz burada ” SSH Public Key “ seçeneği ile ilerleyeceğiz. ” Username “ alanında varsayılan olarak ” azureuser “ olarak bırakırız. ” SSH Public key source “ alanında ise ” Generate new key pair “ seçeneğini seçerek , yeni bir anahtar çifti oluşturacağız. ” Key pair name “ alanında ise bu SSH ortak anahtarını adlandırıyor olacağız.

Ağ Güvenlik Kurallarımızı konfigüre etmeye işlemlerini gerçekleştiriyor olacağız şimdi : Gelen bağlantı noktası kuralları sağlayabiliriz. Genele açık internetten trafiğe izin vereceğiz. ” Public inbound ports “ seçeneğini ” Allow selected ports “ seçeneğini seçeriz. ” Select inbound ports “ seçeneğinde Linux Makinemiz olduğu için ” SSH ( 22 ) ve HTTP ( 80 ) “ olarak seçeriz. ” Next : Disks > “ seçeneğini seçeriz.

Disk bölümüne geldiğimizde , ” Disk options “ bölümünde ” OS disk type “ alanında 3 seçenek olarak ” Standart HDD , Standart SSD ve Premium SSD “ seçenekleri çıkmaktadır. İşletim sistemi diskimiz için ” Premium SSD “ kullanmak en iyisidir. Bu yüzden İşletim sistemi disk seçeneğimizi varsayılan olarak bırakacağız. ” Encryption type “ alanında ise Şifreleme türümüzü default olarak bırakacağız.

” Data disks ” alanında Sanal Makineniz için ek veri diskleri oluşturabilirsiniz. Bu Sanal Makinemiz için kalıcıdır. Var olan diski ekleyebilir veya yeni bir disk ekleyebiliriz. Ek yeni bir disk oluşturmak için ” Create and attach a new disk “ seçeneğini seçeriz.

” Name, Source Type , Size , Encryption type , Enable share disk “ alanlarının hepsini varsayılan halde bırakarak ” OK “ seçeneğini seçeriz.

Sanal Makinemiz için Ek veri Diskimiz oluştuğunu görürüz . ” Next : Networking > “ seçeneğini seçerek devam ederiz.

Sanal Makinemiz için Ağ Konfigürasyonlarını yapılandırdığımız yerdir. ” Virtual Network , Subnet , Public IP , NIC network Security Group , Public İnbound ports , select inbound port “ seçeneklerini varsayılan olarak bırakırız. ” Next : Management > “ seçeneğini seçerek devam ederiz.

” Management “ bölümündeki tüm konfigürasyonları yine aynı şekilde Default olarak bırakacağız. Ardından ” Next : Advanced > “ seçeneğini seçerek devam ederiz.

Bu ekranda ise Konfigürasyonda bir çeşit otomasyon Sanal Makinemizi sağlayan uzantılar yani ” Extension “ adımına geçeriz.
Ayrıca ; Özel verileri veya bulut tabanlı komut dosyalarını da kullanabilirsiniz. Sanal makinenizde bazı özel verileri sağlamak için kullanılmaktadır.
” Custom data “ kısmına nginix’i kurmak için kullanabilirsiniz. Ardından aşağıdaki kodu kopyalarak ” Custom data “ kutucuğuna kopyalarız. Ardından ” Next : tags > “ seçeneğini seçerek devam ederiz.
#cloud-config
package_upgrade: true
packages:
– nginx
– nodejs
– npm
write_files:
– owner: www-data:www-data
path: /etc/nginx/sites-available/default
content: |
server {
listen 80;
location / {
proxy_pass http://localhost:3000;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection keep-alive;
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
}
}
– owner: azureuser:azureuser
path: /home/azureuser/myapp/index.js
content: |
var express = require(‘express’)
var app = express()
var os = require(‘os’);
app.get(‘/’, function (req, res) {
res.send(‘Hello World from host ‘ + os.hostname() + ‘!’)
})
app.listen(3000, function () {
console.log(‘Hello world app listening on port 3000!’)
})
runcmd:
– service nginx restart
– cd “/home/azureuser/myapp”
– npm init
– npm install express -y
– nodejs index.js

Azure Monitor üzerinde bu kaynağı takip etmek için Sanal Makineyi etiketleme gerçekleştiririz. Herhangi bir etiketleme yapmıyoruz. ” Review + create “ seçeneğini seçerek devam ederiz.

İlgili Sanal Makine konfigürasyonlarında herhangi bir problem bulunmadığının bilgisini vermiştir. ” Create “ seçeneğini seçerek , Oluşturma işlemlerine başlarız.

Ve bizden Özel Anahtarı indirmemizi istemektedir. Bunun için ” Download private key and create resource “ seçeneğini seçeriz.

İşlemler devam etmektedir.

Deployment işlemleri başlamıştır.

Özel anahtarımız indirilmiştir.

Dağıtım başlamıştır.

Sanal Makinemizin dağıtımları tamamlandı. ” Go to resource “ seçeneğini seçeriz.

Sanal Makinemiz ile alakalı durum , Region , IP Adres , Subscription , Operating System ve benzeri bilgileri görürüz. Sanal makinemizi Bağlanabiliriz , Restart , Stop , Delete , Open Mobile , CLI / PS işlemlerini sağlayabiliriz .

Web sunucumuzun çalışıp çalışmadığını kontrol etmek için ” Public IP address “ bilgisini kopyalayarak ” Web Browser “ adres alanına yapıştırırız.

Web Sayfamızın erişiminde ve nginx uygulamasına erişimde herhangi bir problem bulunmadığını görmüş oluruz.

Web sitemizin devreye alındığını görmüş oluruz.

Makalemi zaman ayırıp okuduğunuz için çok teşekkür ederim. Diğer makalelerimde görüşmek üzere.
Faydalı olması Dileğiyle.
Eline sağlık.
Teşekkür ederim Hakan Hocam.