Introduksjon

Nginx og Apache er de mest populære open source web-serverne som brukes til og med av genererende nettsteder med stor trafikk. I denne opplæringen illustrerer vi hvordan du bruker begge webservere, men med forskjellige funksjoner. Apache-webserveren kjører WordPress-nettstedet bak nginx-serveren (med installert SSL-sertifikat) som fungerer som en omvendt proxy for apache-server. I dette tilfellet blir Nginx brukt som Reverse Proxy som håndterer alle SSL-tilkoblinger på vegne av Apache, mens Apache fremdeles forblir webserveren. Dette er en av de mange bruksområdene av Nginx som omvendt proxy.


Derfor treffer alle URL-tilkoblinger fra brukernes nettlesere først Nginx reverse proxy-server og blir tvunget til å være i HTTPS-protokoll ved å bruke serverens installerte SSL-sertifikat. Deretter videresender Nginx alle forespørsler til Apache-webserveren som kjører WordPress-nettstedet. Som et resultat er det veldig viktig å konfigurere begge serverne til å lytte på forskjellige porter for å unngå konflikt.

>I denne opplæringen illustrerer vi hvordan du installerer SSL-sertifikat i Nginx reverse proxy for WordPress-nettsted som er vert på Apache webserver..

Forutsetninger

Det antas at WordPress og Apache er installert, konfigurert og fungerer fint på en CentOS 7 Linux Server.

Installere & Konfigurer Nginx

Kjør kommandoene for å installere nginx-serveren

$ sudo yum installer epel-release
$ sudo yum installer nginx

Rediger apache-konfigurasjonsfil

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

Endre lytteporten til en annen port (f.eks. 8080) ved å redigere linjen som følger.

Hør 8080

Dette for å forhindre at nginx hører på samme port som Apache, derfor lytter nå nginx til port 80 mens apache lytter til port 8080.

Åpne porten 8080 i brannmuren:

$ sudo brannmur-cmd – permanent – add-port = 8080 / tcp
$ sudo brannmur-cmd – last inn

Start apache-tjenesten på nytt

$ sudo systemctl omstart httpd

Start & aktiver nginx

$ sudo systemctl start nginx
$ sudo systemctl aktivere nginx

Bekreft at nginx fungerer bra ved å bruke krøll for å vise navnet og versjonen i HTTP-overskriftene

$ krøll -Jeg http: // localhost

Konfigurer Nginx for SSL

Fjern hele delen under https (ssl) serverdel i.e.

# Innstillinger for en TLS-aktivert server

Generer SSL-sertifikat

Først av alt, lag nginx og private kataloger som følger

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

Generer deretter nøkler:

$ sudo openssl req -x509 -noder -sha256-dager 365-nyhet rsa: 2048 -keyout /etc/pki/nginx/private/server.key -out /etc/pki/nginx/server.crt

Spesiell merknad: Forsikre deg om at 443-porten er tillatt via brannmuren som følger:

$ sudo brannmur-cmd – permanent – add-port = 443 / tcp
$ sudo brannmur-cmd – last inn

Rediger Rhe nginx.conf Dile for å tillate en omvendt proxy-pass til Apache

Under server (http) -delen – den første delen: Erstatt posisjonsdelen med følgende.

plassering / {
try_files $ uri @apache;
}

location @apache {
proxy_set_header X-Real-IP $ remote_addr;
proxy_set_header X-Forwarded-For $ remote_addr;
proxy_set_header X-Forwarded-Proto $ -skjema;
proxy_set_header Vert $ vert;
proxy_pass http://127.0.0.1:8080;
}

beliggenhet ~ [^?] * / $ {
proxy_set_header X-Real-IP $ remote_addr;
proxy_set_header X-Forwarded-For $ remote_addr;
proxy_set_header X-Forwarded-Proto $ -skjema;
proxy_set_header Vert $ vert;
proxy_pass http://127.0.0.1:8080;
}

beliggenhet ~ \ .php $ {
proxy_set_header X-Real-IP $ remote_addr;
proxy_set_header X-Forwarded-For $ remote_addr;
proxy_set_header X-Forwarded-Proto $ -skjema;
proxy_set_header Vert $ vert;
proxy_pass http://127.0.0.1:8080;
}

beliggenhet ~ / \. {
nekte alle;
tilgang_logg av;
log_not_found off;
}

Under server (https) -delen – den andre delen: Erstatt posisjonsdelen med følgende.

plassering / {
try_files $ uri @apache;
}

location @apache {
proxy_set_header X-Real-IP $ remote_addr;
proxy_set_header X-Forwarded-For $ remote_addr;
proxy_set_header X-Forwarded-Proto $ -skjema;
proxy_set_header Vert $ vert;
proxy_pass http://127.0.0.1:8080;
}

beliggenhet ~ [^?] * / $ {
proxy_set_header X-Real-IP $ remote_addr;
proxy_set_header X-Forwarded-For $ remote_addr;
proxy_set_header X-Forwarded-Proto $ -skjema;
proxy_set_header Vert $ vert;
proxy_pass http://127.0.0.1:8080;
}

beliggenhet ~ \ .php $ {
proxy_set_header X-Real-IP $ remote_addr;
proxy_set_header X-Forwarded-For $ remote_addr;
proxy_set_header X-Forwarded-Proto $ -skjema;
proxy_set_header Vert $ vert;
proxy_pass http://127.0.0.1:8080;
}

beliggenhet ~ / \. {
nekte alle;
tilgang_logg av;
log_not_found off;
}

Gå til Mozillas Wiki-nettsted for anbefalte chiffer-suiter> og lim inn chifersuites i chiffer-delen i den andre server (https) -delen.

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

Lagre deretter filen:

Konfigurer WordPress

Rediger wp-config-fil for å tillate omdirigering til https ved å legge til koden nedenfor:

definere (‘FORCE_SSL_ADMIN’, sant);
if (strpos ($ _ SERVER [‘HTTP_X_FORWARDED_PROTO’], ‘https’! == falsk)
$ _SERVER [ ‘HTTPS’] = ‘på’;
$ sudo vim /var/www/html/wp-config.php

Lagre filen

Gi tillatelser for httpd- og nginx-tilkoblinger via SELinux

$ sudo setsebool -P httpd_can_network_connect 1

Gå til nettstedets wp-admin-oversikt

innstillinger > Generelt, deretter endre "http" til "https" for begge "WordPress-adresse (URL)" og "Nettstedsadresse (URL)"

Og lagre endringene

Tving Omdirigere all trafikk til https

Rediger nginx.conf ved å legge til linjen under http-serverdelen

retur 301 https: // $ servernavn $ request_uri;

Start både nginx- og apache-tjenester på nytt

$ sudo systemctl omstart nginx httpd

Nå har vi et WordPress-nettsted med selvsignert SSL-sertifikat som vist nedenfor:

https://35.225.251.235

Konklusjon

Nå har du et fullt funksjonelt WordPress-nettsted med SSL-sertifikat. Selv om nginx-serveren fungerer som en omvendt proxy, fungerer det transparent og sømløst med Apache-webserveren. Dette får det til å virke som om forespørslene blir servert direkte til Apache-webserveren. Det er faktisk en av de mest effektive måtene å sikre nettstedet ditt og redusere sårbarheten mot hackere.

Hvis du får problemer, kan du be webhotellens supporttjeneste om hjelp – de skal kunne hjelpe. Hvis de ikke kan, kan HostaAdvice anbefale de beste leverandørene av VPS-hosting, de beste WordPress-hostingleverandørene og de beste Linux-hosting-tjenestene (avhengig av hva du leter etter). Toppvalgene i hver kategori er kjent for å tilby fremragende kundeservice og support.

Sjekk ut disse topp 3 WordPress hosting-tjenestene:

FastComet

Startpris:
$ 2.95


Pålitelighet
9.7


Priser
9.5


Brukervennlig
9.7


Brukerstøtte
9.7


Funksjoner
9.6

Les anmeldelser

Besøk FastComet

Hostinger

Startpris:
$ 0.99


Pålitelighet
9.3


Priser
9.3


Brukervennlig
9.4


Brukerstøtte
9.4


Funksjoner
9.2

Les anmeldelser

Besøk Hostinger

A2 Hosting

Startpris:
$ 3.92


Pålitelighet
9.3


Priser
9.0


Brukervennlig
9.3


Brukerstøtte
9.3


Funksjoner
9.3

Les anmeldelser

Besøk A2 Hosting

Relaterte artikler for hvordan du gjør det

  • Hvordan konfigurere Nginx som omvendt proxy for Apache på en Ubuntu 16.04 VPS eller dedikert server
    Ekspert
  • Slik konfigurerer vi La oss kryptere med Nginx på en Ubuntu 18.04 VPS eller dedikert server
    mellomliggende
  • Hvordan legge til gratis SSL i WordPress ved hjelp av Let’s Encrypt
    mellomliggende
  • Hvordan installere WordPress med Nginx & Redis
    nybegynner
  • Hvordan installere WordPress med Nginx & Gjenoppdater på en CentOS VPS eller dedikert server
    mellomliggende
Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me