Introduktion

Nginx och Apache är de mest populära öppna källkodsservrarna som även används av webbplatser med stor trafik som genererar. I denna handledning illustrerar vi hur man använder båda webbservrarna men med olika funktioner. Apache-webbservern driver WordPress-webbplatsen bakom nginx-servern (med installerat SSL-certifikat) som fungerar som en omvänd proxy för apache-servern. I det här fallet tillämpas Nginx som omvänd proxy som hanterar alla SSL-anslutningar på uppdrag av Apache, medan Apache fortfarande är webbservern. Detta är en av de många användningarna av Nginx som en omvänd proxy.


Därför träffar alla URL-anslutningar från användares webbläsare först Nginx omvänd proxyserver och tvingas vara i HTTPS-protokollet med serverens installerade SSL-certifikat. Sedan vidarebefordrar Nginx alla förfrågningar till Apache-webbservern som kör WordPress-webbplatsen. Som ett resultat är det mycket viktigt att konfigurera båda servrarna för att lyssna på olika portar för att undvika konflikter.

>I den här tutorialen illustrerar vi hur man installerar SSL-certifikat i Nginx omvänd proxy för WordPress-webbplats som är värd på Apache webbserver.

Förutsättningar

Det antas att WordPress och Apache har installerats, konfigurerats och fungerar bra på en CentOS 7 Linux-server.

Installera & Konfigurera Nginx

Kör kommandona för att installera nginx-servern

$ sudo yum installera epel-release
$ sudo yum installera nginx

Redigera apache-konfigurationsfilen

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

Ändra lyssningsporten till en annan port (t.ex. 8080) genom att redigera raden enligt följande.

Lyssna 8080

Detta för att förhindra att nginx lyssnar på samma port som Apache, därför lyssnar nu nginx till port 80 medan apache lyssnar på port 8080.

Öppna porten 8080 i brandväggen:

$ sudo brandvägg-cmd – permanent – add-port = 8080 / tcp
$ sudo brandvägg-cmd – ladda

Starta om apache-tjänsten

$ sudo systemctl starta om httpd

Start & aktivera nginx

$ sudo systemctl start nginx
$ sudo systemctl aktivera nginx

Bekräfta att nginx fungerar bra genom att använda curl för att visa dess namn och version i HTTP-rubrikerna

$ curl – Jag http: // localhost

Konfigurera Nginx för SSL

Avmarkera hela avsnittet under https (ssl) serverdel, dvs.

# Inställningar för en TLS-aktiverad server

Generera SSL-certifikat

Gör först och främst nginx- och privata kataloger enligt följande

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

Generera sedan nycklar:

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

Särskild anmärkning: Se till att 443-porten är tillåten via brandväggen enligt följande:

$ sudo brandvägg-cmd – permanent – add-port = 443 / tcp
$ sudo brandvägg-cmd – ladda

Redigera Rhe nginx.conf Dile för att tillåta en omvänd proxy-pass till Apache

Under servern (http) – det första avsnittet: Byt ut platsavsnittet med följande.

plats / {
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 $ -schema;
proxy_set_header Host $ host;
proxy_pass http://127.0.0.1:8080;
}

plats ~ [^?] * / $ {
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;
}

plats ~ \ .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;
}

plats ~ / \. {
förneka allt;
access_log av;
log_not_found off;
}

Under servern (https) – det andra avsnittet: Byt ut platsavsnittet med följande.

plats / {
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 $ -schema;
proxy_set_header Host $ host;
proxy_pass http://127.0.0.1:8080;
}

plats ~ [^?] * / $ {
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;
}

plats ~ \ .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;
}

plats ~ / \. {
förneka allt;
access_log av;
log_not_found off;
}

Gå till Mozillas Wiki-webbplats för rekommenderade chiffersviter> och klistra in ciphersuitesna i chifferavsnittet i den andra servern (https).

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

Spara sedan filen:

Konfigurera WordPress

Redigera wp-config-fil för att tillåta omdirigering till https genom att lägga till koden nedan:

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

Spara filen

Ge behörigheter för httpd- och nginx-anslutningar via SELinux

$ sudo setsebool -P httpd_can_network_connect 1

Gå till webbplatsens wp-admin-instrumentpanel

inställningar > Allmänt, ändra sedan "http" till "https" för båda "WordPress-adress (URL)" och "Webbplatsadress (URL)"

Och spara ändringarna

Tvinga omdirigera all trafik till https

Redigera nginx.conf genom att lägga till raden under avsnittet http-server

returnera 301 https: // $ servernamn $ request_uri;

Starta om både nginx- och apache-tjänster

$ sudo systemctl starta om nginx httpd

Nu har vi en WordPress-webbplats med självsignerat SSL-certifikat som visas nedan:

https://35.225.251.235

Slutsats

Nu har du en fullt funktionell WordPress-webbplats med SSL-certifikat. Nginx-servern fungerar öppet och sömlöst med Apache webbserver, men fungerar som en omvänd proxy. Detta gör att det verkar som om förfrågningarna visas direkt till Apache-webbservern. Det är verkligen ett av de mest effektiva sätten att säkra din webbplats och minska sårbarheten mot hackare.

Om du stöter på problem, fråga din webbhotell supporttjänst om hjälp – de borde kunna hjälpa. Om de inte kan, kan HostaAdvice rekommendera de bästa VPS-webbhotellleverantörerna, de bästa WordPress-webbhotellleverantörerna och de bästa Linuxhotelltjänsterna (beroende på vad du letar efter). De bästa valen i varje kategori är kända för att ge enastående kundservice och support.

Kolla in de tre bästa WordPress-värdtjänsterna:

FastComet

Startpris:
$ 2.95


Pålitlighet
9,7


Prissättning
9,5


Användarvänlig
9,7


Stöd
9,7


Funktioner
9,6

Läs recensioner

Besök FastComet

Hostinger

Startpris:
$ 0.99


Pålitlighet
9,3


Prissättning
9,3


Användarvänlig
9,4


Stöd
9,4


Funktioner
9,2

Läs recensioner

Besök Hostinger

A2 Hosting

Startpris:
$ 3,92


Pålitlighet
9,3


Prissättning
9,0


Användarvänlig
9,3


Stöd
9,3


Funktioner
9,3

Läs recensioner

Besök A2 Hosting

Relaterade artiklar om hur man gör

  • Hur man konfigurerar Nginx som omvänd proxy för Apache på en Ubuntu 16.04 VPS eller dedikerad server
    expert-
  • Hur man ställer in Låt oss kryptera med Nginx på en Ubuntu 18.04 VPS eller dedikerad server
    mellanliggande
  • Hur man lägger till gratis SSL i WordPress med låt oss kryptera
    mellanliggande
  • Hur man installerar WordPress med Nginx & Redis
    nybörjare
  • Hur man installerar WordPress med Nginx & Återgå på en CentOS VPS eller dedikerad server
    mellanliggande
Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me