Ubuntu 20.04 sisteminde bir Nginx web sunucusu kurmak ve kurmak için tam adım adım kılavuz
Nginx, birden fazla platformda kullanılabilen açık kaynaklı ve popüler bir ters proxy web sunucusudur. Yazılım tarafından geliştirildi İgor Sisoev C10K sorununa bir çözüm olarak ve ilk olarak 2004 yılında piyasaya sürüldü. C10K sorunu, 2000'li yılların başında pek kolay olmayan on bin istemciyi aynı anda ele alma sorunudur.
Bu eğitimde, Ubuntu 20.04 LTS'de Nginx'in nasıl kurulacağına ve kurulacağına bakacağız.
Önkoşullar
Ubuntu 20.04 kurulu bir sistem ve bir sudo
kullanıcı. Ayrıca, 80 veya 443 numaralı bağlantı noktasında çalışan Apache gibi başka bir web sunucunuz olması gerekmez.
Nginx'i yükleme
Nginx, Ubuntu 20.04 deposunda mevcuttur ve uygun
Paket yöneticisi yüklemek için kullanılabilir. Bu nedenle, Nginx'i kurmak için terminali kullanarak açın. ctrl+alt+t
ve koş:
sudo apt güncelleme && sudo apt nginx kurulumu
Kurulum yakında tamamlanacak ve Nginx arka plan programı otomatik olarak arka planda başlayacaktır. Bu nedenle, Nginx'in durumunu kontrol etmek için şunu çalıştırın:
sudo systemctl durumu nginx
Yukarıdaki komutu çalıştırdıktan sonra Nginx durumunu şu şekilde almalısınız: aktif(çalışıyor)
aşağıda görüldüğü gibi yeşil renktedir.
Ubuntu Güvenlik Duvarını (UFW) Yapılandırma
Varsayılan olarak, giden bağlantı noktaları HTTP (80) ve HTTPS (443) Ubuntu 20.04'te kapalıdır. Ayrıca, varsayılan güvenlik duvarı arka plan programı ufw
tüm bağlantı noktaları kapalı olduğundan devre dışı bırakılır.
Bu nedenle, Nginx sunucusuna diğer sistemlerden erişmek için aşağıdakileri etkinleştirmeniz gerekir. ufw
ve bağlantı noktasında trafiğe izin vermek için doğru şekilde ayarlayın 80
ve 443
. Etkinleştirmeden önce ufw
, Nginx'i uzak bir sunucuya kuruyorsanız, önce şunu güncelleyin: ufw
izin verme kuralları ssh
koşarak:
sudo ufw ssh'ye izin ver
Yukarıdaki komut, ssh
izin vermeden uzak sunucuya erişim ssh
uzak sunucudan kilitleneceksiniz.
etkinleştirdikten sonra ssh
erişim, etkinleştirebilirsiniz ufw
güvenlik duvarı arka plan programı çalıştırarak:
sudo ufw etkinleştir
Şimdi, Nginx'in web trafiği sunabilmesi için güvenlik duvarı kurallarını HTTP ve HTTPS bağlantı noktalarına izin verecek şekilde değiştirmeniz gerekiyor. Kuralları değiştirmek için şunu çalıştırın:
sudo ufw 'Nginx Full'e izin veriyor
Nginx Dolu
tüm IP adreslerinden gelen ve giden trafik için hem HTTP hem de HTTPS bağlantı noktalarına izin verir.
Bundan sonra, kuralların uygun şekilde eklenip eklenmediğini doğrulayın. ufw
komutu çalıştırarak güvenlik duvarı:
sudo ufw durumu
Yukarıdaki komut, eklediğimiz kuralların çıktısını verecektir. ufw
güvenlik duvarı arka plan programı.
Nginx Sunucusuna Bağlanmak
Artık Nginx'i kurduk ve yapılandırdık ufw
gelen HTTP ve HTTPS web trafiğine izin vermek için, sunucunun IP adresini kullanarak Nginx sunucusuna erişebilmelisiniz.
Sunucunun IP adresini bilmiyorsanız, kolayca almak için aşağıdaki komutu kullanın.
ip adresi eth0'ı göster | grep giriş | awk '{ 2 $ yazdır; }' | sed 's/\/.*$//'
IP adresini aldıktan sonra, tarayıcınıza yapıştırın ve enter tuşuna basın.
//sunucu-ip'iniz
Her şey doğru yapılandırıldıysa, 'nginx'e Hoş Geldiniz!' web sayfasını görebilmeniz gerekir.
Nginx Dosyaları ve Dizinleri
Artık sunucunuzda Nginx kurulu ve çalışıyor. Web sitenizi/web uygulamanızı yapılandırmak için kullanmanız gereken bazı önemli Nginx dosyalarına ve dizinlerine bir göz atalım.
Web sunucusu İçeriği
Sunucu bloğunuz için kök dizininiz olmasını istediğiniz herhangi bir konumu yapılandırabilirsiniz. Nginx'in varsayılan HTML'si doğrudan /var/www/html
, daha önce eriştiğimiz 'hoş geldiniz' sayfasının bulunduğu yerdir.
Genellikle alan adları için kök dizin olarak kullanılan diğer konumlar şunları içerir:
/ev//
/var/www/html/
/seç/
Nginx Yapılandırma Dosyaları
Tüm Nginx yapılandırma dosyaları şurada bulunur: /etc/nginx
dizin. Temel bir etki alanı oluşturmak için ihtiyacımız olan bazı önemli dosyalara bakalım.
/etc/nginx/nginx.conf
: Bu dosya, Nginx'i çalıştırmak için gereken tüm yapılandırmayı içerir./etc/nginx/siteler kullanılabilir/
: Bu dizin, etki alanlarının tüm sunucu bloğu yapılandırmasına sahiptir, ancak şu anda etkinleştirilmemiştir/dağıtılmamıştır ve bu nedenle istemciler tarafından erişilebilir değildir./etc/nginx/siteler etkin/
: Bu dizin, istemciler tarafından erişilebilen şu anda etkin/etkin etki alanlarını tutar. Bir etki alanını etkinleştirmek için etki alanı yapılandırma dosyasını şu adresten bağlamamız gerekir:siteler-mevcut
içinsiteler etkin
dizin./etc/nginx/snippet'ler
/: Bu dizinde, potansiyel olarak yeniden kullanılabilir konfigürasyon segmentlerini saklayabiliriz. Yapılandırma segmentlerini/bloklarını yeniden kullanılabilir hale getirebilmesi nedeniyle üretim ortamında çok zaman kazandırır.
Sunucu Günlükleri
Nginx, olayları/etkinlikleri günlüğe kaydeder ve bunları günlük dosyalarında depolar. /var/log/nginx
dizin. Nginx, şu dosyalardaki etkinlikleri günlüğe kaydeder:
/var/log/nginx/access.log
: Bu dosya, Nginx sunucusuna erişen istemcileri günlüğe kaydeder. Ayrıntılar, istemcinin IP adresini, saat ve tarihi, sunucuya ve işletim sistemine erişmek için kullanılan tarayıcıyı içerir./var/log/nginx/error.log
: Bu dosya, çalışırken Nginx sunucusunun karşılaştığı hataları günlüğe kaydeder.
Bu bölümde, başlamak için yeterli olan bazı önemli Nginx dosyalarına ve dizinlerine kısaca baktık.
Sunucu Bloklarını Ayarlama
Artık Nginx dosyaları ve sunucusu hakkında bazı temel bilgilere sahip olduğumuza göre, kendi sunucu bloğumuzu kurmaya hazırız. Sunucu blokları, Apache sanal ana bilgisayarlarına benzer.
Bir sunucu bloğunun nasıl oluşturulacağına bakacağız ve kullanacağımızı göstereceğiz. örnek.com
oluşturma sürecinde etki alanı olarak.
💡 Değiştir örnek.com
alan adınızla.
Sunucu Bloklarını yapılandırmaya başlamadan önce, web sitesi içeriği için kök dizin görevi görecek bir dizin oluşturmamız gerekiyor. yaratalım /var/www/example.com/html
kullanan etki alanı için dizin mkdir
emretmek.
sudo mkdir -p /var/www/example.com/html
bu -P
seçenek, gereken tüm üst dizinleri yaratacaktır. Yani oluşturacak örnek.com
için bir üst dizin html
eğer mevcut değilse.
Dizinin sahipliğini şununla değiştirin: $USER
Çevre değişkeni:
sudo chown -R $USER:$USER /var/www/example.com/html
Ardından, basit bir index.html
yapılandırılmakta olan etki alanını ziyaret ettiğinizde erişilecek dosya. Bu sadece açıklama amaçlıdır.
nano /var/www/example.com/html/index.html
Aşağıdaki içeriği az önce sunucuda oluşturduğumuz dosyaya yapıştırın.
example.com'a hoş geldiniz! Hey! example.com'a erişilebilir!
basmak ctrl+o
yazmak ve kaydetmek için index.html
dosyaya basın ve ardından ctrl+x
çıkışa doğru nano
editör.
Şimdi nihayet bir sunucu bloğu oluşturmaya geçebiliriz, böylece Nginx index.html
bazı kullanıcı gittiğinde örnek.com
. Bu yüzden bir sunucu bloğu oluşturmak için adında bir yapılandırma dosyası yapmamız gerekiyor. örnek.com
içinde siteler-mevcut
dizin. Bunu yapmak için nano kullanıyoruz ve şunu çalıştırıyoruz:
sudo nano /etc/nginx/sites-available/example.com
Ardından, aşağıdaki yapılandırmayı yazın veya kopyalayın/yapıştırın. sonra basın ctrl+o
ve yazmak ve kaydetmek için girin. Benzer şekilde, basın ctrl+x
nano düzenleyiciyi kapatmak için
sunucu { dinle 80; dinle [::]:80; sunucu_adı example.com www.example.com; kök /var/www/example-domain.com/html; dizin indeksi.html; konum / { try_files $uri $uri/ =404; } }
Yukarıdaki yapılandırma, varsayılan sunucu bloğu yapılandırmasına benzer, değiştirdik kök
yeni kök dizinimize işaret edecek ve sunucu adı
alan adımıza. iken yer{}
deyimi, dosyalar bulunamazsa hata yakalama ifadesi olarak işlev görür ve istemciye 404 hatası görüntüler.
Ardından, Nginx'in hizmet vermesi için sunucu bloğumuzu etkinleştirebiliriz örnek.com
internet sayfaları. Sunucu bloğumuzu etkinleştirmek için bir sembolik bağlantı oluşturmamız gerekiyor. örnek.com
dosyadan siteler-mevcut
ile siteler etkin
dizin. Bunu yapmak için şunu çalıştırın:
sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled
içinde bir bağlantı oluşturulacak site etkin
dizin ve şimdi örnek.com
etkinleştirilmelidir. Şimdi Nginx sunucumuzda, isteğe bağlı olarak yanıt verecek iki sunucu bloğumuz var. dinlemek
ve sever_name
kayıtlı direktifler örnek.com
sunucu bloğu yapılandırması.
Tüm yapılandırma dosyalarının doğru olup olmadığını ve sözdizimi hatasının olup olmadığını kontrol etmek için şunu çalıştırın:
sudo nginx -t
Şimdi, son olarak aşağıdaki komutu çalıştırarak değişiklikleri uygulamak için Nginx'i yeniden başlatın:
sudo systemctl nginx'i yeniden başlat
Nginx şimdi sunucu bloğunuza hizmet vermeye başlayacak, şuraya gidebilirsiniz: //alan-adınız
ve web sayfanızı canlı olarak görün.
Not: Yukarıdaki bölümün çalışması için kendi etki alanınızı oluşturmanız ve örnek.com
kendi alan adınızla. Ayrıca, alan adınız için DNS'yi Nginx sunucunuzun IP adresini gösterecek şekilde yapılandırmanız gerekir.
Sonuç olarak, Nginx'in nasıl kurulacağına, yapılandırılacağına baktık. ufw
Nginx sunucusuna uzaktan erişim sağlamak için, Nginx'e uzaktan bağlı, bazı temel Nginx dosyalarına ve dizinlerine aşina oldu ve bir sunucu bloğunun nasıl kurulacağını öğrendi.
Nginx hakkında daha fazla bilgi edinmek ve öğrenmek için Nginx wiki'yi görmek isteyebilirsiniz.