Giriş

Nginx ve Apache, büyük trafik üreten web siteleri tarafından bile kullanılan en popüler açık kaynaklı web sunuculardır. Bu derste, her iki web sunucusunun da farklı işlevlerle nasıl kullanılacağını göstereceğiz. Apache web sunucusu, apache sunucusu için ters proxy görevi gören nginx sunucusunun arkasında (yüklü SSL sertifikası ile) WordPress web sitesini çalıştırır. Bu durumda, Apache adına tüm SSL Bağlantılarını işleyen Nginx, Ters Proxy olarak uygulanırken Apache hala web sunucusu olarak kalmaktadır. Bu, Nginx’in ters proxy olarak birçok kullanımından biridir..


Bu nedenle, kullanıcıların tarayıcılarından gelen tüm URL bağlantıları önce Nginx ters proxy sunucusuna çarpar ve sunucunun yüklü SSL sertifikasını kullanarak HTTPS protokolüne girmeye zorlanır. Ardından Nginx, tüm istekleri WordPress sitesini çalıştıran Apache web sunucusuna iletir. Sonuç olarak, çatışmayı önlemek için her iki sunucuyu farklı bağlantı noktalarını dinleyecek şekilde yapılandırmak çok önemlidir.

>Bu öğreticide, Apache web sunucusunda barındırılan WordPress web sitesi için Nginx ters proxy’sine SSL sertifikasının nasıl yükleneceğini göstereceğiz.

Ön koşul

WordPress ve Apache’nin bir CentOS 7 Linux Sunucusuna yüklenmiş, yapılandırılmış ve iyi çalıştığı varsayılmıştır.

Yüklemek & Nginx’i Yapılandır

Nginx sunucusunu kurmak için komutları çalıştırın

$ sudo yum install epel-sürümü
$ sudo yum install nginx

Apache yapılandırma dosyasını düzenleyin

$ sudo vim /etc/httpd/conf/httpd.conf

Hattı aşağıdaki gibi düzenleyerek dinleme bağlantı noktasını farklı bir bağlantı noktasına (örn. 8080) değiştirin.

Dinle 8080

Bu, nginx’in Apache ile aynı bağlantı noktasını dinlemesini önlemek içindir, bu nedenle nginx şimdi 8080 numaralı bağlantı noktasını dinlerken apache 8080 numaralı bağlantı noktasını dinler.

Güvenlik duvarında 8080 numaralı bağlantı noktasını açın:

$ sudo güvenlik duvarı-cmd – kalıcı – add-port = 8080 / tcp
$ sudo güvenlik duvarı-cmd –reload

Apache hizmetini yeniden başlat

$ sudo systemctl httpd’yi yeniden başlat

Başlat & nginx’i etkinleştir

$ sudo systemctl başlangıç ​​nginx
$ sudo systemctl nginx’i etkinleştir

HTTP üstbilgilerinde adını ve sürümünü göstermek için curl komutunu kullanarak nginx’in düzgün çalıştığını onaylayın

$ curl -I http: // localhost

SSL için Nginx’i Yapılandırma

Https (ssl) sunucu bölümünün altındaki bölümün tamamını kaldırın (ör..

# TLS Etkin Sunucu için Ayarlar

SSL sertifikası oluştur

Her şeyden önce, nginx ve özel dizinleri aşağıdaki gibi yapın

$ sudo mkdir -p / etc / pki / nginx / private

Ardından anahtarlar oluşturun:

$ sudo openssl req -x509 -nodes -sha256 -gün 365 -newkey rsa: 2048 -keyout /etc/pki/nginx/private/server.key -out /etc/pki/nginx/server.crt

Özel Not: 443 bağlantı noktasına güvenlik duvarı üzerinden aşağıdaki şekilde izin verildiğinden emin olun:

$ sudo güvenlik duvarı-cmd – kalıcı – add-port = 443 / tcp
$ sudo güvenlik duvarı-cmd –reload

Apache’ye Ters Proxy Geçişine İzin Vermek için Rhe nginx.conf Dile’ı Düzenleyin

Sunucu (http) bölümünün altında – ilk bölüm: Konum bölümünü aşağıdaki ile değiştirin.

yer / {
try_files $ uri @apache;
}

location @apache {
proxy_set_header X-Gerçek-IP $ remote_addr;
proxy_set_header X-Forwarded-$ $ remote_addr için;
proxy_set_header X-Forwarded-Proto $ düzeni;
proxy_set_header Ana Bilgisayar $ ana bilgisayar;
proxy_pass http://127.0.0.1:8080;
}

konum ~ [^?] * / $ {
proxy_set_header X-Gerçek-IP $ remote_addr;
proxy_set_header X-Forwarded-$ $ remote_addr için;
proxy_set_header X-Forwarded-Proto $ düzeni;
proxy_set_header Ana Bilgisayar $ ana bilgisayar;
proxy_pass http://127.0.0.1:8080;
}

konum ~ \ .php $ {
proxy_set_header X-Gerçek-IP $ remote_addr;
proxy_set_header X-Forwarded-$ $ remote_addr için;
proxy_set_header X-Forwarded-Proto $ düzeni;
proxy_set_header Ana Bilgisayar $ ana bilgisayar;
proxy_pass http://127.0.0.1:8080;
}

konum ~ / \. {
Hepsini inkar etmek;
access_log kapalı;
log_not_found kapalı;
}

Sunucu (https) bölümünün altında – ikinci bölüm: Konum bölümünü aşağıdaki ile değiştirin.

yer / {
try_files $ uri @apache;
}

location @apache {
proxy_set_header X-Gerçek-IP $ remote_addr;
proxy_set_header X-Forwarded-$ $ remote_addr için;
proxy_set_header X-Forwarded-Proto $ düzeni;
proxy_set_header Ana Bilgisayar $ ana bilgisayar;
proxy_pass http://127.0.0.1:8080;
}

konum ~ [^?] * / $ {
proxy_set_header X-Gerçek-IP $ remote_addr;
proxy_set_header X-Forwarded-$ $ remote_addr için;
proxy_set_header X-Forwarded-Proto $ düzeni;
proxy_set_header Ana Bilgisayar $ ana bilgisayar;
proxy_pass http://127.0.0.1:8080;
}

konum ~ \ .php $ {
proxy_set_header X-Gerçek-IP $ remote_addr;
proxy_set_header X-Forwarded-$ $ remote_addr için;
proxy_set_header X-Forwarded-Proto $ düzeni;
proxy_set_header Ana Bilgisayar $ ana bilgisayar;
proxy_pass http://127.0.0.1:8080;
}

konum ~ / \. {
Hepsini inkar etmek;
access_log kapalı;
log_not_found kapalı;
}

Önerilen şifre paketleri için Mozilla’nın Wiki Web sitesine gidin> ve şifreli takımları ikinci sunucu (https) bölümündeki şifre bölümüne yapıştırın.

ssl_ciphers ‘ECDHE-ECDSA-AES256-GCM-SHA384: ECDHE-RSA-AES256-GCM-SHA384: ECDHE-ECDSA-CHACHA20-POLY1305: ECDHE-RSA-CHACHA20-POLY1305: ECDHE-SH-E-A-A RSA-AES128-GCM-SHA256: ECDHE-ECDSA-AES256-SHA384: ECDHE-RSA-AES256-SHA384: ECDHE-ECDSA-AES128-SHA256: ECDHE-RSA-AES128-SHA256 ‘;

Sonra dosyayı kaydedin:

WordPress’i Yapılandırma

Aşağıdaki kodu ekleyerek wp-config dosyasını https’ye yönlendirmeye izin vermek için düzenleyin:

define (‘FORCE_SSL_ADMIN’, doğru);
if (strpos ($ _ SERVER [‘HTTP_X_FORWARDED_PROTO’], ‘https’)! == yanlış)
$ _SERVER [ ‘HTTPS’] = ‘açık’;
$ sudo vim /var/www/html/wp-config.php

Dosya ‘yı kaydet

SELinux üzerinden httpd ve nginx bağlantıları için izinler verin

$ sudo setsebool -P httpd_can_network_connect 1

Sitenin wp-admin kontrol paneline gidin

Ayarlar > Genel, ardından "http" için "https" her ikisi için "WordPress Adresi (URL)" ve "Site Adresi (URL)"

Ve değişiklikleri kaydedin

Tüm trafiği https’ye yönlendirmeye zorla

Http sunucusu bölümünün altına satır ekleyerek nginx.conf dosyasını düzenleyin

dönüş 301 https: // $ sunucu_adı $ request_uri;

Hem nginx hem de apache hizmetlerini yeniden başlatın

$ sudo systemctl yeniden başlatma nginx httpd

Şimdi aşağıda gösterildiği gibi kendinden imzalı SSL sertifikasına sahip bir WordPress sitemiz var:

https://35.225.251.235

Sonuç

Artık SSL sertifikasına sahip tamamen işlevsel bir WordPress web siteniz var. Nginx sunucusu, ters proxy olarak çalışmasına rağmen Apache web sunucusuyla şeffaf ve sorunsuz çalışır. Bu, isteklerin doğrudan Apache web sunucusuna sunuluyormuş gibi görünmesini sağlar. Gerçekten de, web sitenizi güvence altına almanın ve bilgisayar korsanlarına karşı savunmasızlığı azaltmanın en etkili yollarından biridir.

Sorun yaşarsanız, web barındırıcınızın destek hizmetinden yardım isteyin – yardımcı olabilirler. Yapamazlarsa, HostaAdvice en iyi VPS barındırma sağlayıcılarını, en iyi WordPress barındırma sağlayıcılarını ve en iyi Linux barındırma hizmetlerini (aradığınıza bağlı olarak) önerebilir. Her kategorideki en iyi seçimler, üstün müşteri hizmeti ve desteği sağladığı bilinmektedir..

Bu en iyi 3 WordPress barındırma hizmetine göz atın:

FastComet

Başlangıç ​​fiyatı:
$ 2.95


Güvenilirlik
9.7


Fiyatlandırma
9.5


Kullanıcı dostu
9.7


Destek
9.7


Özellikleri
9.6

Yorumları oku

FastComet’i ziyaret edin

Hostinger

Başlangıç ​​fiyatı:
$ 0.99


Güvenilirlik
9.3


Fiyatlandırma
9.3


Kullanıcı dostu
9.4


Destek
9.4


Özellikleri
9.2

Yorumları oku

Hostinger’ı ziyaret edin

A2 Hosting

Başlangıç ​​fiyatı:
$ 3,92


Güvenilirlik
9.3


Fiyatlandırma
9.0


Kullanıcı dostu
9.3


Destek
9.3


Özellikleri
9.3

Yorumları oku

A2 Hosting’i ziyaret edin

İlgili Nasıl Yapılır Makaleleri

  • Ubuntu 16.04 VPS veya Özel Sunucuda Nginx’i Apache için Ters Proxy Olarak Yapılandırma
    uzman
  • Nasıl Kurulur Bir Ubuntu 18.04 VPS veya Adanmış Sunucuda Nginx ile Şifreleyelim
    orta düzey
  • Let’s Encrypt Kullanarak WordPress’e Ücretsiz SSL Ekleme
    orta düzey
  • Nginx ile WordPress Kurulumu & Redis
    acemi
  • Nginx ile WordPress Kurulumu & CentOS VPS veya Adanmış Sunucuda Yeniden Reddetme
    orta düzey
Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me