Invoering

Nginx en Apache zijn de meest populaire open source webservers die zelfs worden gebruikt door websites die veel verkeer genereren. In deze tutorial laten we zien hoe u beide webservers kunt gebruiken, maar met verschillende functionaliteiten. De Apache-webserver voert de WordPress-website uit achter de nginx-server (met geïnstalleerd SSL-certificaat) die fungeert als een reverse proxy voor een apache-server. In dit geval wordt Nginx toegepast als Reverse Proxy die alle SSL-verbindingen namens Apache afhandelt, terwijl Apache nog steeds de webserver blijft. Dit is een van de vele toepassingen van Nginx als reverse proxy.


Daarom raken alle URL-verbindingen van de browsers van gebruikers eerst de Nginx reverse proxy-server en worden ze gedwongen om in HTTPS-protocol te zijn met behulp van het door de server geïnstalleerde SSL-certificaat. Vervolgens stuurt Nginx alle verzoeken door naar de Apache-webserver met de WordPress-site. Daarom is het erg essentieel om beide servers te configureren om op verschillende poorten te luisteren om conflicten te voorkomen.

>In deze zelfstudie laten we zien hoe u een SSL-certificaat installeert in de Nginx reverse proxy voor de WordPress-website die wordt gehost op de Apache-webserver.

Vereisten

Er wordt aangenomen dat WordPress en Apache zijn geïnstalleerd, geconfigureerd en goed werken op een CentOS 7 Linux-server.

Installeren & Configureer Nginx

Voer de opdrachten uit om de nginx-server te installeren

$ sudo yum installeer epel-release
$ sudo yum installeer nginx

Bewerk het apache-configuratiebestand

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

Verander de luisterpoort naar een andere poort (bijv.8080) door de regel als volgt te bewerken.

Luister 8080

Dit is om te voorkomen dat nginx naar dezelfde poort luistert als Apache, daarom luistert nginx nu naar poort 80 terwijl apache luistert naar poort 8080.

Open poort 8080 in de firewall:

$ sudo firewall-cmd –permanent –add-port = 8080 / tcp
$ sudo firewall-cmd –reload

Start apache-service opnieuw

$ sudo systemctl herstart httpd

Begin & schakel nginx in

$ sudo systemctl start nginx
$ sudo systemctl schakelt nginx in

Bevestig dat nginx goed werkt door curl te gebruiken om de naam en versie ervan in de HTTP-headers weer te geven

$ curl -I http: // localhost

Configureer Nginx voor SSL

Maak een commentaar op de hele sectie onder het https (ssl) -servergedeelte, d.w.z..

# Instellingen voor een server met ingeschakelde TLS

Genereer SSL-certificaat

Maak eerst de nginx- en privé-mappen als volgt

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

Genereer vervolgens sleutels:

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

Speciale opmerking: zorg ervoor dat de 443-poort als volgt is toegestaan ​​via de firewall:

$ sudo firewall-cmd –permanent –add-port = 443 / tcp
$ sudo firewall-cmd –reload

Bewerk Rhe nginx.conf Dile om een ​​Reverse Proxy Pass naar Apache mogelijk te maken

Onder het server (http) gedeelte – het eerste gedeelte: Vervang het locatiegedeelte door het volgende.

plaats / {
try_files $ uri @apache;
}

locatie @apache {
proxy_set_header X-Real-IP $ remote_addr;
proxy_set_header X-Forwarded-For $ remote_addr;
proxy_set_header X-Forwarded-Proto $ -schema;
proxy_set_header Host $ host;
proxy_pass http://127.0.0.1:8080;
}

locatie ~ [^?] * / $ {
proxy_set_header X-Real-IP $ remote_addr;
proxy_set_header X-Forwarded-For $ remote_addr;
proxy_set_header X-Forwarded-Proto $ -schema;
proxy_set_header Host $ host;
proxy_pass http://127.0.0.1:8080;
}

locatie ~ \ .php $ {
proxy_set_header X-Real-IP $ remote_addr;
proxy_set_header X-Forwarded-For $ remote_addr;
proxy_set_header X-Forwarded-Proto $ -schema;
proxy_set_header Host $ host;
proxy_pass http://127.0.0.1:8080;
}

locatie ~ / \. {
alles ontkennen;
access_log uit;
log_not_found off;
}

Onder het server (https) gedeelte – het tweede gedeelte: Vervang het locatiegedeelte door het volgende.

plaats / {
try_files $ uri @apache;
}

locatie @apache {
proxy_set_header X-Real-IP $ remote_addr;
proxy_set_header X-Forwarded-For $ remote_addr;
proxy_set_header X-Forwarded-Proto $ -schema;
proxy_set_header Host $ host;
proxy_pass http://127.0.0.1:8080;
}

locatie ~ [^?] * / $ {
proxy_set_header X-Real-IP $ remote_addr;
proxy_set_header X-Forwarded-For $ remote_addr;
proxy_set_header X-Forwarded-Proto $ -schema;
proxy_set_header Host $ host;
proxy_pass http://127.0.0.1:8080;
}

locatie ~ \ .php $ {
proxy_set_header X-Real-IP $ remote_addr;
proxy_set_header X-Forwarded-For $ remote_addr;
proxy_set_header X-Forwarded-Proto $ -schema;
proxy_set_header Host $ host;
proxy_pass http://127.0.0.1:8080;
}

locatie ~ / \. {
alles ontkennen;
access_log uit;
log_not_found off;
}

Ga naar de Wiki-website van Mozilla voor de aanbevolen coderingssuites> en plak de ciphersuites in de cipher sectie in de tweede server (https) sectie.

ssl_ciphers ‘ECDHE-ECDSA-AES256-GCM-SHA384: ECDHE-RSA-AES256-GCM-SHA384: ECDHE-ECDSA-CHACHA20-POLY1305: ECDHE-RSA-CHACHA20-POLY1305: ECDHE-ECDSA-AES8-AES8 RSA-AES128-GCM-SHA256: ECDHE-ECDSA-AES256-SHA384: ECDHE-RSA-AES256-SHA384: ECDHE-ECDSA-AES128-SHA256: ECDHE-RSA-AES128-SHA256 ‘;

Sla vervolgens het bestand op:

Configureer WordPress

Bewerk wp-config-bestand om de omleiding naar https mogelijk te maken door de onderstaande code toe te voegen:

definiëren (‘FORCE_SSL_ADMIN’, waar);
if (strpos ($ _ SERVER [‘HTTP_X_FORWARDED_PROTO’], ‘https’)! == false)
$ _SERVER [‘HTTPS’] = ‘aan’;
$ sudo vim /var/www/html/wp-config.php

Bewaar het bestand

Geef toestemming voor httpd- en nginx-verbindingen via SELinux

$ sudo setsebool -P httpd_can_network_connect 1

Ga naar het wp-admin-dashboard van de site

Instellingen > Algemeen, verander dan de "http" naar "https" voor zowel de "WordPress-adres (URL)" en "Site-adres (URL)"

En sla de wijzigingen op

Forceer al het verkeer omleiden naar https

Bewerk nginx.conf door de regel onder de http-serversectie toe te voegen

retourneer 301 https: // $ servernaam $ request_uri;

Start zowel nginx- als apache-services opnieuw op

$ sudo systemctl herstart nginx httpd

Nu hebben we een WordPress-site met een zelfondertekend SSL-certificaat, zoals hieronder weergegeven:

https://35.225.251.235

Conclusie

Nu heb je een volledig functionele WordPress-website met SSL-certificaat. De nginx-server werkt, hoewel hij werkt als een reverse proxy, transparant en naadloos met de Apache-webserver. Hierdoor lijkt het alsof de verzoeken rechtstreeks aan de Apache-webserver worden aangeboden. Het is inderdaad een van de meest effectieve manieren om uw website te beveiligen en de kwetsbaarheid voor hackers te verminderen.

Als u problemen ondervindt, vraag dan de ondersteuningsdienst van uw webhost om hulp – zij zouden moeten kunnen helpen. Als dat niet het geval is, kan HostaAdvice de beste VPS-hostingproviders, de beste WordPress-hostingproviders en de beste Linux-hostingservices aanbevelen (afhankelijk van wat u zoekt). De topkeuzes in elke categorie staan ​​bekend om het bieden van uitstekende klantenservice en ondersteuning.

Bekijk deze top 3 WordPress-hostingservices:

FastComet

Beginprijs:
$ 2,95


Betrouwbaarheid
9.7


Prijzen
9.5


Gebruikersvriendelijk
9.7


Ondersteuning
9.7


Kenmerken
9.6

Lees recensies

Bezoek FastComet

Hostinger

Beginprijs:
$ 0,99


Betrouwbaarheid
9.3


Prijzen
9.3


Gebruikersvriendelijk
9.4


Ondersteuning
9.4


Kenmerken
9.2

Lees recensies

Bezoek Hostinger

A2-hosting

Beginprijs:
$ 3,92


Betrouwbaarheid
9.3


Prijzen
9.0


Gebruikersvriendelijk
9.3


Ondersteuning
9.3


Kenmerken
9.3

Lees recensies

Bezoek A2 Hosting

Gerelateerde How-To-artikelen

  • Hoe Nginx te configureren als reverse proxy voor Apache op een Ubuntu 16.04 VPS of dedicated server
    deskundige
  • Hoe te installeren Laten we versleutelen met Nginx op een Ubuntu 18.04 VPS of speciale server
    gemiddeld
  • Gratis SSL toevoegen in WordPress met Let’s Encrypt
    gemiddeld
  • Hoe WordPress te installeren met Nginx & Redis
    Nieuweling
  • Hoe WordPress te installeren met Nginx & Redis op een CentOS VPS of Dedicated Server
    gemiddeld
Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me