Uvod

Nginx in Apache sta najbolj priljubljena odprtokodna spletna strežnika, ki ju uporabljata celo velika spletna mesta, ki ustvarjajo velik promet. V tej vadnici prikazujemo, kako uporabljati oba spletna strežnika, vendar z različnimi funkcionalnostmi. Spletni strežnik Apache vodi spletno mesto WordPress za strežnikom nginx (z nameščenim SSL potrdilom), ki deluje kot povratni proxy za strežnik apache. V tem primeru se Nginx uporablja kot Reverse Proxy, ki v imenu Apache uporablja vse povezave SSL, medtem ko Apache še vedno ostaja spletni strežnik. To je ena od številnih uporab Nginx kot povratnega proxyja.


Zato vse povezave URL iz brskalnikov uporabnikov najprej posežejo po povratnem proxy strežniku Nginx in so prisiljene v protokol HTTPS z uporabo nameščenega SSL certifikata. Nato Nginx vse zahteve posreduje spletnemu strežniku Apache, na katerem je nameščeno spletno mesto WordPress. Zato je zelo pomembno, da nastavite oba strežnika na poslušanje v različnih vratih, da se izognete konfliktom.

>V tej vadnici prikazujemo, kako namestiti SSL potrdilo v Nginx reverse proxy za spletno mesto WordPress, ki ga gostite na spletnem strežniku Apache..

Predpogoji

Predvideva se, da sta WordPress in Apache nameščena, konfigurirana in dobro delujeta na strežniku CentOS 7 Linux.

Namestite & Konfigurirajte Nginx

Zaženite ukaze za namestitev nginx strežnika

$ sudo yum namestite epel-release
$ sudo yum namestite nginx

Uredi konfiguracijsko datoteko apache

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

Spremenite poslušalna vrata v drugačna vrata (npr. 8080) tako, da uredite vrstico na naslednji način.

Poslušaj 8080

To bo preprečilo, da bi nginx poslušal isto vrata kot Apache, zato zdaj nginx posluša vrata 80, medtem ko apache posluša vrata 8080.

Odprite vrata 8080 v požarnem zidu:

$ sudo požarni zid-cmd – stalni –add-port = 8080 / tcp
$ sudo požarni zid-cmd – naloži

Znova zaženite storitev apache

$ sudo systemctl znova zaženite httpd

Začni & omogoči nginx

$ sudo systemctl start nginx
$ sudo systemctl omogoči nginx

Preverite, da nginx deluje v redu z uporabo curl, da v glavah HTTP prikaže svoje ime in različico

$ curl -I http: // localhost

Konfigurirajte Nginx za SSL

Odkomentirajte celoten razdelek pod https (ssl) strežniškim delom, tj.

# Nastavitve za omogočen strežnik TLS

Ustvari SSL potrdilo

Najprej naredite nginx in zasebne imenike na naslednji način

$ sudo mkdir -p / itd / pki / nginx / zasebno

Nato ustvarite ključe:

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

Posebna opomba: Prepričajte se, da je vrata 443 dovoljena prek požarnega zidu na naslednji način:

$ sudo požarni zid-cmd – stalni –add-port = 443 / tcp
$ sudo požarni zid-cmd – naloži

Uredi Rhe nginx.conf Dile tako, da dovoli povratni proxy prehod v Apache

Pod delom strežnika (http) – prvi razdelek: Nadomestite razdelek lokacije z naslednjim.

lokacija / {
try_files $ uri @apache;
}

lokacija @apache {
proxy_set_header X-Real-IP $ remote_addr;
proxy_set_header X-Posredovano-za $ remote_addr;
proxy_set_header shema X-Forwarded-Proto $;
proxy_set_header Host $ host;
proxy_pass http://127.0.0.1:8080;
}

lokacija ~ [^?] * / $ {
proxy_set_header X-Real-IP $ remote_addr;
proxy_set_header X-Posredovano-za $ remote_addr;
proxy_set_header shema X-Forwarded-Proto $;
proxy_set_header Host $ host;
proxy_pass http://127.0.0.1:8080;
}

lokacija ~ \ .php $ {
proxy_set_header X-Real-IP $ remote_addr;
proxy_set_header X-Posredovano-za $ remote_addr;
proxy_set_header shema X-Forwarded-Proto $;
proxy_set_header Host $ host;
proxy_pass http://127.0.0.1:8080;
}

lokacija ~ / \. {
zanikati vse;
access_log izklopljen;
log_not_found off;
}

Pod strežniškim (https) delom – drugi razdelek: Nadomestite razdelek lokacije z naslednjim.

lokacija / {
try_files $ uri @apache;
}

lokacija @apache {
proxy_set_header X-Real-IP $ remote_addr;
proxy_set_header X-Posredovano-za $ remote_addr;
proxy_set_header shema X-Forwarded-Proto $;
proxy_set_header Host $ host;
proxy_pass http://127.0.0.1:8080;
}

lokacija ~ [^?] * / $ {
proxy_set_header X-Real-IP $ remote_addr;
proxy_set_header X-Posredovano-za $ remote_addr;
proxy_set_header shema X-Forwarded-Proto $;
proxy_set_header Host $ host;
proxy_pass http://127.0.0.1:8080;
}

lokacija ~ \ .php $ {
proxy_set_header X-Real-IP $ remote_addr;
proxy_set_header X-Posredovano-za $ remote_addr;
proxy_set_header shema X-Forwarded-Proto $;
proxy_set_header Host $ host;
proxy_pass http://127.0.0.1:8080;
}

lokacija ~ / \. {
zanikati vse;
access_log izklopljen;
log_not_found off;
}

Za priporočene šifrirane pakete pojdite na Wikilovo spletno mesto Mozilla> in prilepite šifranse v šifro v drugem delu strežnika (https).

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

Nato shranite datoteko:

Konfigurirajte WordPress

Uredite wp-config datoteko, da omogočite preusmeritev na https tako, da dodate spodnjo kodo:

define (‘FORCE_SSL_ADMIN’, res);
if (strpos ($ _ SERVER [‘HTTP_X_FORWARDED_PROTO’], ‘https’)! == napačno)
$ _SERVER [‘HTTPS’] = ‘vklopljen’;
$ sudo vim /var/www/html/wp-config.php

Shranite datoteko

Dajte dovoljenja za povezave httpd in nginx prek SELinuxa

$ sudo setsebool -P httpd_can_network_connect 1

Pojdite na nadzorno ploščo wp-admin spletnega mesta

Nastavitve > Splošno, nato pa spremenite "http" do "https" za oba "Naslov WordPress (URL)" in "Naslov spletnega mesta (URL)"

In shranite spremembe

Prisilite preusmeriti ves promet na https

Uredite nginx.conf tako, da dodate vrstico pod razdelek http strežnik

vrne 301 https: // $ server_name $ request_uri;

Znova zaženite storitve nginx in apache

$ sudo systemctl znova zaženite nginx httpd

Zdaj imamo WordPress spletno mesto s samopodpisanim SSL certifikatom, kot je prikazano spodaj:

https://35.225.251.235

Zaključek

Zdaj imate popolnoma funkcionalno WordPress spletno mesto s SSL certifikatom. Čeprav strežnik nginx deluje pregledno in brezhibno, deluje pregledno in brezhibno s spletnim strežnikom Apache. Tako se zdi, kot da se zahteve vložijo neposredno spletnemu strežniku Apache. Dejansko je eden najučinkovitejših načinov za zaščito svojega spletnega mesta in zmanjšanje ranljivosti pred hekerji.

Če naletite na težave, za pomoč poiščite službo za podporo spletnega gostitelja – ti bi jim morali pomagati. Če ne morejo, lahko HostaAdvice priporoči najboljše ponudnike gostovanja VPS, najboljše ponudnike gostovanja WordPress in najboljše storitve gostovanja v Linuxu (odvisno od tega, kaj iščete). Najboljši kraji v vsaki kategoriji so znani po zagotavljanju izjemne storitve za stranke in podpore.

Oglejte si te 3 najboljše storitve gostovanja WordPress:

FastComet

Izklicna cena:
2,95 dolarja


Zanesljivost
9.7


Cenitev
9.5


Uporabniku prijazno
9.7


Podpora
9.7


Lastnosti
9.6

Preberite recenzije

Obiščite FastComet

Gostovanje

Izklicna cena:
0,99 USD


Zanesljivost
9.3


Cenitev
9.3


Uporabniku prijazno
9.4


Podpora
9.4


Lastnosti
9.2

Preberite recenzije

Obiščite Hostinger

A2 gostovanje

Izklicna cena:
3,92 dolarja


Zanesljivost
9.3


Cenitev
9,0


Uporabniku prijazno
9.3


Podpora
9.3


Lastnosti
9.3

Preberite recenzije

Obiščite A2 gostovanje

Sorodni članki z navodili

  • Kako konfigurirati Nginx kot povratni proxy za Apache na Ubuntu 16.04 VPS ali namenskem strežniku
    strokovnjak
  • Kako nastaviti, naj šifriramo z Nginxom na Ubuntu 18.04 VPS ali namenskem strežniku
    vmesni
  • Kako dodati brezplačen SSL v WordPress z uporabo Let’s Šifriraj
    vmesni
  • Kako namestiti WordPress z Nginxom & Redis
    novinec
  • Kako namestiti WordPress z Nginxom & Redis na CentOS VPS ali namenskem strežniku
    vmesni
Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me