Puncte:1

Redirecționează domeniul securizat către altul prin CNAME și un container Nginx Docker

drapel jp

Actualizați: Am atașat o a doua încercare în partea de jos a acestei postări. Este „funcționează”, dar aș dori ca ideea mea originală să funcționeze.

Încerc să redirecționez o solicitare https pentru un domeniu către altul printr-un server de redirecționare.

voi folosi https://website.com, https://website2.com, și https://myredirectserver.com de exemplu.

Am un certificat SSL achiziționat pentru website.com, iar DNS-ul său este CNAMED la www la myredirectserver.com. Există, de asemenea, un certificat SSL pentru site-ul meu2.com, iar în prezent se află pe un server. Totul este bine ca domeniu independent.

myredirectserver.com are două înregistrări A de gestionare a traficului (disponibilitate ridicată) care indică două adrese IP.

Aceste două adrese IP sunt NAT într-un firewall către un server proxy.

Pe acel server proxy, există un Docker Container, care rulează Alpine/Nginx.

Fișierul Docker pentru container:

DE LA nginx:1.17.7-alpin    
RUN apk add --no-cache tzdata    
ENV TZ America/Chicago    
RUN rm /etc/nginx/conf.d/default.conf    
COPIEAZĂ myredirectserver.com.conf /etc/nginx/conf.d/myredirectserver.com.conf
RUN rm /etc/nginx/nginx.conf    
COPIEAZĂ nginx.conf /etc/nginx/nginx.conf    
COPIEAZĂ myredirectserver.com.crt /etc/nginx/ssl/myredirectserver.com.crt    
COPIEAZĂ myredirectserver.com.key /etc/nginx/ssl/myredirectserver.com.key    
COPIAȚI proxy_params /etc/nginx/proxy_params

The docker run porțiune pentru a-l porni (există volume montate pentru crearea unui fișier de configurare dinamic prin codul backend):

rulare docker --name=myredirectserver --restart always --log-opt max-size=50m --log-opt max-file=5 -d -v /etc/nginx/myredirectserverBuild:/etc/nginx/myredirectserverBuild -v /etc/nginx/myredirectserverSSL:/etc/nginx/myredirectserverSSL -p 8224:443 -p 8223:80 myredirectserver

În acel container Docker, fișierul de configurare Nginx se află în /etc/nginx/conf.d/myredirectserver.com.conf:

 #NU STIU DACA ASTA ESTE CORECT PENTRU CE AM NEVOIE
    Server {
                asculta 443 ssl;
    
                nume_server myredirectserver.com www.myredirectserver.com;
                certificat_ssl /etc/nginx/ssl/myredirectserver.com.crt;
                ssl_certificate_key /etc/nginx/ssl/myredirectserver.com.key;
            }
            Server {
                asculta 80;
                nume_server myredirectserver.com www.myredirectserver.com;
                returnează 301 https://www.myredirectserver.com$request_uri;
            }
    
    includ /etc/nginx/myredirectserverBuild/*.conf;

Fișierul include de la sfârșit conține fișierul original domeniul solicitat, site-ul meu.com.conf:

 ## www.mywebsite.com gazdă virtuală
        Server {
            asculta 443 ssl;

            server_name mywebsite.com www.mywebsite.com;
            ssl_certificate /etc/nginx/myredirectwebsiteSSL/mywebsite.com.crt;
            ssl_certificate_key /etc/nginx/myredirectwebsiteSSL/mywebsite.com.key;               
        }
        Server {
            asculta 80;
            server_name mywebsite.com www.mywebsite.com;
            return 301 https://www.mywebsite2.com$request_uri; <--- Redirecționarea
        }
        

The website2.com domeniul este pe serverul gazdă și îl pot solicita la fel de normal. Pur și simplu nu pot să-mi dau seama unde am greșit. Simt că se află în configurația(ele) mea Nginx, dar sintaxa mea Nginx nu este cea mai bună. De ce este al meu întoarce 301 nu funcționează și mă redirecționează către domeniu?

Câteva note în timpul depanării:

wget 0.0.0.0:8223 se intoarce:

  --2021-07-26 23:44:19-- http://0.0.0.0:8223/
Se conectează la 0.0.0.0:8223... conectat.
Solicitare HTTP trimisă, așteaptă răspuns... 301 Mutat permanent
Locație: https://www.mywebsite2.com/ [urmează]
--2021-07-25 23:44:19-- https://www.mywebsite2.com/
Se rezolvă www.mywebsite2.com (www.mywebsite2.com)... XX.XXX.XXX.XXX
Se conectează la www.mywebsite2.com (www.mywebsite2.com)|XX.XXX.XXX.XXX|:443... conectat.
Solicitare HTTP trimisă, se așteaptă răspuns... 200 OK
Lungime: nespecificată [text/html]
Se salvează în: âindex.htmlâ

index.html [ <=> ] 37,56K 231KB/s în 0,2s    

25-07-2021 23:44:20 (231 KB/s) - âindex.htmlâ salvat [38461]

curl --resolve www.myredirectserver.com:8223:0.0.0.0 http://www.myredirectserver.com/ returnează un timeout, la fel ca și browserul.

În timp ce sunteți în rețeaua locală, introduceți IP-ul containerului Docker în bara de adrese (192.168.69.140:8223) mă duce la https://www.website2.com.

Intrând https://192.168.69.140:8224 mă duce la o pagină de avertizare de securitate. Clic continua, și îmi oferă o 404.

Sunt în pierdere pentru că nu știu cum să gestionez cererea când ajunge la IP-ul CNAME myredirectserver.com. Cum îi pot spune lui Nginx să se uite la domeniul solicitat inițial website.com?

Actualizare (a doua încercare):

Am oprit containerul Docker și l-am schimbat CNAME la www nivel în DNS pentru a indica un IP de înaltă disponibilitate deja existent. Îl voi suna destinationserver.net. Deci practic:

`site-ul meu.com`
|
|---> CNAME „destinationserver.net”

`destinationserver.net`
|
|----> A XX.XXX.XXX.XXX --> Firewall --> Proxy

|----> A XX.XXX.XXX.XXX --> Firewall --> Proxy

Pe destinationserver.net server, am următoarele în configurația Nginx pentru website.com:

# ## www.mywebsite.com gazdă virtuală
        Server {
            asculta 8222 ssl;

            server_name mywebsite.com www.mywebsite.com;
            certificat_ssl /etc/nginx/ssl/mywebsite.com.crt;
            ssl_certificate_key /etc/nginx/ssl/mywebsite.com.key;
            return 301 http://www.mywebsite2.com$request_uri;
        }
        Server {
            asculta 8221;
            server_name mywebsite.com www.mywebsite.com;
            returnează 301 https://www.mywebsite2$request_uri;
        } 

După cum am afirmat în „Actualizare” de pe prima linie a întrebării, aceasta este „funcționează”, dar ar fi bine să gestionăm aceste redirecționări într-un spațiu separat, de unde ideea containerului Docker.

Puncte:0
drapel jp

Am renunțat la ideea serverului de redirecționare și am luat în schimb două lucruri:

Am adăugat un ANAME (Alias) la domeniul rădăcină, deci www solicitările vor ajunge la aceeași locație a managerului de trafic foarte disponibil ca șiwww cereri. Apoi, în Nginx config, am adăugat următoarele pentru a redirecționa solicitările:

# ## www.mywebsite.com gazdă virtuală
        Server {
            asculta 8222 ssl;

            server_name mywebsite.com www.mywebsite.com;
            certificat_ssl /etc/nginx/ssl/mywebsite.com.crt;
            ssl_certificate_key /etc/nginx/ssl/mywebsite.com.key;
            return 301 https://www.mywebsite2.com$request_uri;
        }
        Server {
            asculta 8221;
            server_name mywebsite.com www.mywebsite.com;
            returnează 301 https://www.mywebsite2$request_uri;
        } 

Acest lucru funcționează pentru ceea ce trebuie să fac, așa că dacă nu intervine cineva cu o metodă mai bună, o voi lăsa așa cum este.

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.