Drukowana wersja tematu

Kliknij tu, aby zobaczyć temat w orginalnym formacie

Forum PHP.pl _ Serwery WWW _ VPS vs DOCKER vs PROXY

Napisany przez: phpamator 4.12.2017, 11:13:50

Panowie/Panie, pomóżcie rozwizać problem.
Mam VPS'a a na nim zainstalowany i działajcy SSL, problem pojawił się kiedy odpaliłęm DOCKER w którym mam uruchomiony serwer do przetwarzania zdjęć,
resize, crop, fill według zadanych parametrów.
I nie powiem,działa bardzo dobrze ale tylko po http, nie mogę sobie poradzić a próbowałem już chyba wszystkiego. Przeczytałem trochę na temat PROXY, próbowałem poustawiać w/g
proponowanych wzorców ale to za diabła nie działa.
system: CentOS 7..., httpd 2.4 (Apache2.4), OpenSSL oczywiście i utknałem ....
nie rozumiem do końca jak działa Proxy w takim przypadku.
konfiguracja serwera VPS:

  1. <VirtualHost *:80>
  2. # Redirect any HTTP request to HTTPS
  3. RewriteEngine On
  4. RewriteCond %{HTTPS} off
  5. RewriteRule (.*) https://%{SERVER_NAME}/$1 [R,L]
  6.  
  7. ServerAdmin root@imgproxy.mojserver.net
  8. DocumentRoot /var/www/html/imgproxy
  9. ServerName imgproxy.mojserver.net
  10. </VirtualHost>
  11.  
  12. # Virtual Host 1
  13. <VirtualHost *:443>
  14. SSLEngine on
  15. SSLCertificateFile /etc/pki/tls/certs/ca.crt
  16. SSLCertificateKeyFile /etc/pki/tls/private/ca.key
  17. <Directory /var/www/html/imgproxy>
  18. AllowOverride All
  19. </Directory>
  20. ServerAdmin root@imgproxy.mojserver.net
  21. DocumentRoot /var/www/html/imgproxy
  22. ServerName imgproxy.mojserver.net
  23. </VirtualHost>
  24.  


jak dotad wszystko działa.

Poniżej to co ustawiłem dla proxy(osobny plik proxy.conf):

  1. # HTTP
  2. <VirtualHost *:80>
  3.  
  4. ServerName imgproxy.mojserver.net
  5. ServerAlias imgproxy.mojserver.net www.imgproxy.mojserver.net
  6.  
  7. # Redirect any HTTP request to HTTPS
  8. RewriteEngine On
  9. RewriteCond %{HTTPS} off
  10. RewriteRule (.*) https://%{SERVER_NAME}/$1 [R,L]
  11.  
  12. # Logging
  13. LogLevel warn
  14. ErrorLog imgproxy.mojserver.net-error_log
  15. CustomLog imgproxy.mojserver.net-access_log combined
  16.  
  17. </VirtualHost>
  18.  
  19. # HTTPS
  20. <VirtualHost *:443>
  21.  
  22. ServerName imgproxy.mojserver.net
  23.  
  24. # Logging
  25. LogLevel warn
  26. ErrorLog imgproxy.mojserver.net-error_log
  27. CustomLog imgproxy.mojserver.net-access_log combined
  28.  
  29. # SSL Configuration - uses strong cipher list - these might need to be downgraded if you need to support older browsers/devices
  30. SSLEngine on
  31. SSLCipherSuite EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH
  32. SSLProtocol All -SSLv2 -SSLv3
  33. # -TLSv1 -TLSv1.1
  34. SSLHonorCipherOrder On
  35. SSLCertificateFile /etc/pki/tls/certs/ca.crt
  36. SSLCertificateKeyFile /etc/pki/tls/private/ca.key
  37. #SSLCertificateChainFile /path/to/your/certificate/chainfile.crt
  38.  
  39. # HSTS (optional)
  40. Header always set Strict-Transport-Security "max-age=63072000; includeSubdomains;"
  41. # Remove this if you need to use frames or iframes
  42. # Header always set X-Frame-Options DENY
  43. # Prevent MIME based attacks
  44. Header set X-Content-Type-Options "nosniff"
  45.  
  46. # Reverse proxy configuration
  47. < Location / >
  48. ProxyPass imgproxy.mojserver.net/
  49. ProxyPassReverse imgproxy.mojserver.net:8080/
  50. < /Location >
  51.  
  52. </VirtualHost>


Co źle zrobiłem, może mi to ktoś objaśnić i wskazać jak powinienem to zrobić ,żeby kontenery także były "secure"?

Czy może trzeba zainstalować certyfikat również na kontenerze ?
Jeśli tak to jak się do tego zabrać ?
Doker niby temat nie nowy ale dla mnie .... bardzo.

Pozdrawiam
phpamator

Napisany przez: by_ikar 4.12.2017, 13:28:35

Nie musisz mieć proxy, wystarczy że do swojego apache dorzucisz certyfikat, i zbindujesz nie tylko port 80 ale i 443. Jak potrzebujesz proxy to polecam: https://github.com/docker/dockercloud-haproxy ale tutaj również będziesz musiał podpiąć certyfikat, lub zbudować obraz z certyfikatem. Podpiąć certyfikat możesz via volumeny.

Napisany przez: phpamator 4.12.2017, 13:42:16

Kolega widze zorientowany w temacie, super, dzięki za podpowiedz, jednak w dalszym ciagu nie wiele mi to powiedziało.
Może rozszerze nieco o co mi chodzi na wszelki wypadek, to że VPS i Docker a w nim kontener to już wiesz. Serwer imgproxy działa na porcie 8080
i nie wiem jak właśnie spowodować żeby ten odpalony na porcie 8080 był secure.
Piszac "podpiać certyfikat do Apacha" co masz na myśli, już jeden certyfikat na apachu smiga i jest https i w przeglądarce widzę "Secure" ale tylko jak dobieram się do httpd po HTTPS (port 443) albo przekierowuję zapytania HTTP (port 80) na HTTPS.
Nie kumam co mam zrobić z tym kontenerem.
I jak mam doczepić kolejny certyfikat do Apacha ? (Centos httpd (apache 2.4))
Jak zbindować port 8080 z kontenera żeby mi go Apache/httpd widział jako "Secure" ?

Ten imgproxy to gotowy obraz pociągnięty z github'a. Osobnik który go przygotował (DarthSim) przygotował go do odpalenia bez podawania jakichkolwiek szczegółów dotyczących konfiguracji https niestety, stąd problem i moje pytanie.

Napisany przez: Pyton_000 4.12.2017, 13:43:52

Ustawiasz w Apache HTTPS na adres tego img parsera.

Robisz proxy_pass do dockera na port http (bez cert).

i tyle.

Napisany przez: phpamator 4.12.2017, 13:46:50

No właśnie Pytonku tak zrobiłem
zobacz:

  1. # HTTP
  2. <VirtualHost *:80>
  3.  
  4. ServerName imgproxy.mojserver.net
  5. ServerAlias imgproxy.mojserver.net www.imgproxy.mojserver.net
  6.  
  7. # Redirect any HTTP request to HTTPS
  8. RewriteEngine On
  9. RewriteCond %{HTTPS} off
  10. RewriteRule (.*) https://%{SERVER_NAME}/$1 [R,L]
  11.  
  12. # Logging
  13. LogLevel warn
  14. ErrorLog imgproxy.mojserver.net-error_log
  15. CustomLog imgproxy.mojserver.net-access_log combined
  16.  
  17. </VirtualHost>
  18.  
  19. # HTTPS
  20. <VirtualHost *:443>
  21.  
  22. ServerName imgproxy.mojserver.net
  23.  
  24. # Logging
  25. LogLevel warn
  26. ErrorLog imgproxy.mojserver.net-error_log
  27. CustomLog imgproxy.mojserver.net-access_log combined
  28.  
  29. # SSL Configuration - uses strong cipher list - these might need to be downgraded if you need to support older browsers/devices
  30. SSLEngine on
  31. SSLCipherSuite EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH
  32. SSLProtocol All -SSLv2 -SSLv3
  33. # -TLSv1 -TLSv1.1
  34. SSLHonorCipherOrder On
  35. SSLCertificateFile /etc/pki/tls/certs/ca.crt
  36. SSLCertificateKeyFile /etc/pki/tls/private/ca.key
  37. #SSLCertificateChainFile /path/to/your/certificate/chainfile.crt
  38.  
  39. # HSTS (optional)
  40. Header always set Strict-Transport-Security "max-age=63072000; includeSubdomains;"
  41. # Remove this if you need to use frames or iframes
  42. # Header always set X-Frame-Options DENY
  43. # Prevent MIME based attacks
  44. Header set X-Content-Type-Options "nosniff"
  45.  
  46. # Reverse proxy configuration
  47. < Location / >
  48. ProxyPass imgproxy.mojserver.net/
  49. ProxyPassReverse imgproxy.mojserver.net:8080/
  50. < /Location >
  51.  
  52. </VirtualHost>


ale wyraźnie źle smile.gif

bo nie wiem jak to powinienem zrobić

Napisany przez: Pyton_000 4.12.2017, 13:49:43

No i to jest ok. A przynajmniej tak mi się wydaje smile.gif (Ja bardziej Nginxowy jestem)

I teraz co dalej Ci nie działa?

Napisany przez: phpamator 4.12.2017, 13:50:57

No własnie nie ;(
Dlatego pytam

Napisany przez: Pyton_000 4.12.2017, 13:51:46

No ale co nie działa konkretnie.

Napisany przez: phpamator 4.12.2017, 14:02:23

Konkretnie to nie działa ....... imgproxy smile.gif
Jak zaglądam do kodu żródłowego strony widzę wygenerowane linki ale nie wyświetla mi obrazów a jak skopiuje te linki do przeglądarki dostaję 404
albo This site can’t provide a secure connection

imgproxy.mojserver.net sent an invalid response.
Try running Windows Network Diagnostics.
ERR_SSL_PROTOCOL_ERROR
aha i spodziewałem się, jak już odpaliłem proxy, że url się zmieni i nie będzie mi zwracał .....:8080 tylko https://imgproxy.mojserver.net/...i tu nazwa/url obrazka

https://imgproxy.mojserver.net:8080/obqevbu8bTcBNi3nkBux6AtNcYbOEcqflcgiriuigl0/fit/235/187/no/0/aHR0cHM6Ly9lZHBhLWRldi5zaXRlL3N0YWdlL2Jzci9tZWRpYS9jYXRhbG9nL3Byb2R1Y3QvL20vdS9tdW5jaGtpbl9taWNyb3dhdmVfc3RlcmlsaXNlcl9iYWdzLmpwZw.png

a przecież jak https no to nie :8080 ?
poza tym jak proxy to adres chyba powinien wyglądać inaczej ?

Napisany przez: Pyton_000 4.12.2017, 14:32:59

ustaw

ProxyPassReverse imgproxy.mojserver.net/

[Edited]
Albo

ProxyPass / imgproxy.mojserver.net:8080/
ProxyPassReverse / imgproxy.mojserver.net:8080/

Napisany przez: phpamator 4.12.2017, 14:44:51

Nie pomaga ale chyba coś źle mam skonfigurowane jeśli chodzi o VS'y.
W sumie też nie wiem czy powinienem skonfigurować kontener jako VS ?
Nadać mu jakąś nazwę ... kontener.imgproxy.mojserver.net ?
..... ale coś się dzieje bo już nie wywala mi błędów, zamiast tego wygenerowany url po wklejeniu do przeglądarki pokazuje .... "not found" smile.gif
i ....
# apachectl configtest
AH00526: Syntax error on line 48 of /etc/httpd/conf.d/imager.conf:
ProxyPass|ProxyPassMatch can not have a path when defined in a location.

Napisany przez: Pyton_000 4.12.2017, 14:50:54

A to nie masz? Ok. No to zamień tą "domenę" w PP na 127.0.0.1:8080

Napisany przez: phpamator 4.12.2017, 15:00:40

Zacznijmy jeszcze raz smile.gif

Pokażę ci może httpd.conf -> imgproxy.conf (ten chyba ważniejszy bo "główny" VS jest tutaj)

  1.  
  2. <VirtualHost *:80>
  3.  
  4. # Redirect any HTTP request to HTTPS
  5. RewriteEngine On
  6. RewriteCond %{HTTPS} off
  7. RewriteRule (.*) https://%{SERVER_NAME}/$1 [R,L]
  8.  
  9. ServerAdmin root@imgproxy.mojserver.net
  10. DocumentRoot /var/www/html/imgproxy
  11. ServerName imgproxy.mojserver.net
  12. </VirtualHost>
  13.  
  14. <VirtualHost imgproxy.mojserver.net:443>
  15. SSLEngine on
  16. SSLCertificateFile /etc/pki/tls/certs/ca.crt
  17. SSLCertificateKeyFile /etc/pki/tls/private/ca.key
  18. <Directory /var/www/html/imgproxy>
  19. AllowOverride All
  20. </Directory>
  21. ServerAdmin root@imgproxy.mojserver.net
  22. DocumentRoot /var/www/html/imgproxy
  23. ServerName imgproxy.mojserver.net
  24. </VirtualHost>


może od samego początku coś skopałem - chociaż działało tongue.gif

a tu coś co miało być związane z kontenerem:

  1. # HTTP
  2. <VirtualHost *:80>
  3.  
  4. ServerName imgproxy.mojserver.net
  5. ServerAlias imgproxy.mojserver.net www.imgproxy.mojserver.net
  6.  
  7. # Redirect any HTTP request to HTTPS
  8. RewriteEngine On
  9. RewriteCond %{HTTPS} off
  10. RewriteRule (.*) https://%{SERVER_NAME}/$1 [R,L]
  11.  
  12. # Logging
  13. LogLevel warn
  14. ErrorLog imgproxy.mojserver.net-error_log
  15. CustomLog imgproxy.mojserver.net-access_log combined
  16.  
  17. </VirtualHost>
  18.  
  19. # HTTPS
  20. <VirtualHost *:443>
  21.  
  22. ServerName imgproxy.mojserver.net
  23.  
  24. # Logging
  25. LogLevel warn
  26. ErrorLog imgproxy.mojserver.net-error_log
  27. CustomLog imgproxy.mojserver.net-access_log combined
  28.  
  29. # SSL Configuration - uses strong cipher list - these might need to be downgraded if you need to support older browsers/devices
  30. SSLEngine on
  31. SSLCipherSuite EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH
  32. SSLProtocol All -SSLv2 -SSLv3
  33. # -TLSv1 -TLSv1.1
  34. SSLHonorCipherOrder On
  35. SSLCertificateFile /etc/pki/tls/certs/ca.crt
  36. SSLCertificateKeyFile /etc/pki/tls/private/ca.key
  37. #SSLCertificateChainFile /path/to/your/certificate/chainfile.crt
  38.  
  39. # HSTS (optional)
  40. Header always set Strict-Transport-Security "max-age=63072000; includeSubdomains;"
  41. # Remove this if you need to use frames or iframes
  42. # Header always set X-Frame-Options DENY
  43. # Prevent MIME based attacks
  44. Header set X-Content-Type-Options "nosniff"
  45.  
  46. # Reverse proxy configuration
  47. <Location />
  48. ProxyPass http://127.0.0.1:8080/
  49. ProxyPassReverse 127.0.0.1:8080/
  50. </Location>
  51.  
  52. </VirtualHost>


I tu pewnie umrzesz/umrzecie ze śmiechu ...... co za bzdury porobiłem ?

Napisany przez: Pyton_000 4.12.2017, 15:11:04

To ja może inaczej biggrin.gif

Aplikacje w Docker odpalasz sobie na port 80 czyli po "http"
Odpalasz apkę i robisz mapowanie portów 80->8080
Na serwerze robisz vhost już normalnie z 80 i 443 z czego 443 robi proxyPass na 127.0.0.1:8080

Czyli w Docker nie potrzebnie masz mapowanie 443. tam dajesz bez certa.

Jeśli w Dockerze aplikacja ma wiedzieć czy to https czy nie to do ProxyPass dodajesz:

Kod
RequestHeader set X-Forwarded-Proto "https"
RequestHeader set X-Forwarded-Port "443"


Rozumisz ? smile.gif

Napisany przez: phpamator 4.12.2017, 15:18:56

Czekaj czekaj, w dockerze nie mam 443 wogóle niemam nic tylko apkę którą odpalam na 8080
Wszystko co robię robię na VPS'ie nie na dockerze/kontenerze


....
chyba coś mi zaczyna świtać .... chociaż nie do końca


Napisany przez: Pyton_000 4.12.2017, 15:25:21

Tak dokładnie. W dockerze masz tylko apkę po :80.
https załatwiasz po stronie Klient -> LoadBalancer (W twoim przypadku Apache z ProxyPass)

Napisany przez: phpamator 4.12.2017, 15:28:40

OK, to już krok bliżej, jednak kiedy odpalam/próbuję na porcie 80 dostaję coś takiego:
"docker run -e IMGPROXY_KEY=943b2c86009268de4e532ba2ee2eab8247c6da0881 -e IMGPROXY_SALT=520f986b99f3c1203f22de2374a3d53cb7a7fe9fea309c5 -p 80:80 -t imgproxy
/usr/bin/docker-current: Error response from daemon: driver failed programming external connectivity on endpoint goofy_shockley (0e2fd1184210aff6cf464663b595a8351f8415ab9ac3da8712b293807b43f310): Error starting userland proxy: listen tcp 0.0.0.0:80: bind: address already in use."

Napisany przez: nospor 4.12.2017, 15:32:38

probujesz odpalic kontener na porcie 80 ale ten port jest juz zajety przez nginx/apache hosta.

Skoro na porcie 80 chodzi ci teraz proxy, to kontener odpal na inny porcie i w proxy przekierowuj na ten inny port

Napisany przez: Pyton_000 4.12.2017, 15:50:08

Napisałem że port 80 z kontenera masz przekierować na 8080 na Host
czyli:

Kod
docker run -e IMGPROXY_KEY=943b2c86009268de4e532ba2ee2eab8247c6da0881 -e IMGPROXY_SALT=520f986b99f3c1203f22de2374a3d53cb7a7fe9fea309c5 -p 80:8080 -t imgproxy


albo odwrotnie

Napisany przez: phpamator 4.12.2017, 16:13:27

  1. ###########################################
  2. ## V I R T U A L S E R V E R 1 ##
  3. ###########################################
  4. # HTTP
  5. <VirtualHost *:80>
  6.  
  7. # Redirect any HTTP request to HTTPS
  8.  
  9. RewriteEngine On
  10.  
  11. RewriteCond %{HTTPS} off
  12.  
  13. RewriteRule (.*) https://%{SERVER_NAME}/$1 [R,L]
  14.  
  15. ServerAdmin root@imgproxy.mojserver.net
  16.  
  17. DocumentRoot /var/www/html/imgproxy
  18.  
  19. ServerName imgproxy.mojserver.net
  20.  
  21. </VirtualHost>
  22.  
  23. # HTTPS
  24. <VirtualHost imgproxy.mojserver.net:443>
  25. SSLEngine on
  26. SSLCertificateFile /etc/pki/tls/certs/ca.crt
  27. SSLCertificateKeyFile /etc/pki/tls/private/ca.key
  28. <Directory /var/www/html/imgproxy>
  29. AllowOverride All
  30. </Directory>
  31. ServerAdmin root@imgproxy.mojserver.net
  32. DocumentRoot /var/www/html/imgproxy
  33. ServerName imgproxy.mojserver.net
  34. </VirtualHost>
  35.  
  36. ###########################################
  37. ## V I R T U A L S E R V E R 2 ##
  38. ###########################################
  39.  
  40. # HTTPS
  41. <VirtualHost *:443>
  42. <Location />
  43. ProxyPass h t t p ://127.0.0.1:8080/
  44. ProxyPassReverse 127.0.0.1:8080/
  45. </Location>
  46. </VirtualHost>


nie wiem, nie rozumiem ... ;(
próbowałem docker run -e IMGPROXY_KEY=943b2c86009268de4e532ba2ee2eab8247c6da0881 -e IMGPROXY_SALT=520f986b99f3c1203f22de2374a3d53cb7a7fe9fea309c5 -p 8080:80 -t imgproxy
w drugą stronę nie idzie -p 8080:80

Ponieważ ma służyć wyłącznie do tego jednego celu, może poprostu wykopać wszystko, zostawić jedynie proxy. Tylko jak powinien wyglądać w tej sytuacji konfig VS?
Może niepotrzebnie kombinuję i komplikuję (jak zwykle) sprawę.

To może z innej strony, istnieje jeszcze opcja uruchomienia imgproxy ale bezpośrednio na hoscie. Zainstalowałem wszystkie wymagane elementy w tym vips ale przy próbie uruchomienia imgproxy wywala mi komunikat że vips nie jest zainstalowany albo żeby dopisać ścieżkę.
Przekopałem pliki ale nie znalazłem miejsca gdzie mógłbym to zrobić.
Z pewnością ta droga była by łatwiejszą ale ... jak widać nie dane mi jest chyba ..... uruchomić imgproxy.

W międzyczasie miotając się na prawo i lewo próbując odbryźć sobie ucho ze złości, tak namieszałem, że dostałem taki komunikat:
Proxy Error

The proxy server received an invalid response from an upstream server.
The proxy server could not handle the request GET /.

Reason: Error reading from remote server
Czyli coś nowego smile.gif

Napisany przez: Pyton_000 4.12.2017, 17:13:08

Tu masz VHost który masz wpakować DO kontenera:

Kod
## VirtualHost dla Imageproxy w kontenerze
<VirtualHost *:80>
    <Directory /var/www/html/imgproxy>
        AllowOverride All
    </Directory>
    ServerAdmin root@imgproxy.mojserver.net
    DocumentRoot /var/www/html/imgproxy
    ServerName imgproxy.mojserver.net
</VirtualHost>


A tu masz do Apache który będzie robił za proxy
Kod
# HTTP
<VirtualHost *:80>

    ServerName imgproxy.mojserver.net
    ServerAlias imgproxy.mojserver.net www.imgproxy.mojserver.net

# Redirect any HTTP request to HTTPS
    RewriteEngine On
    RewriteCond %{HTTPS} off
    RewriteRule (.*) https://%{SERVER_NAME}/$1 [R,L]

# Logging
    LogLevel warn
    ErrorLog imgproxy.mojserver.net-error_log
    CustomLog imgproxy.mojserver.net-access_log combined

</VirtualHost>

# HTTPS
<VirtualHost *:443>

    ServerName imgproxy.mojserver.net

# Logging
LogLevel warn
    ErrorLog imgproxy.mojserver.net-error_log
    CustomLog imgproxy.mojserver.net-access_log combined

# SSL Configuration - uses strong cipher list - these might need to be downgraded if you need to support older browsers/devices
    SSLEngine on
    SSLCipherSuite EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH
    SSLProtocol All -SSLv2 -SSLv3
#   -TLSv1 -TLSv1.1
    SSLHonorCipherOrder On
    SSLCertificateFile /etc/pki/tls/certs/ca.crt
    SSLCertificateKeyFile /etc/pki/tls/private/ca.key
#SSLCertificateChainFile /path/to/your/certificate/chainfile.crt

# HSTS (optional)
    Header always set Strict-Transport-Security "max-age=63072000; includeSubdomains;"
# Remove this if you need to use frames or iframes
#   Header always set X-Frame-Options DENY
# Prevent MIME based attacks
    Header set X-Content-Type-Options "nosniff"

# Reverse proxy configuration
    <Location />
        ProxyPass / 127.0.0.1:8080/
        ProxyPassReverse / 127.0.0.1:8080/
    </Location>

</VirtualHost>


Teraz wystarczy odpalić kontener z mapowanie 80(docker) -> 8080(host) czyli tak jak ww. działająca komenda. i powinno latać.

Napisany przez: phpamator 4.12.2017, 17:48:23

Jeszcze tylko nie wiem jak się dobrać do kontenera, wcześniej używałem "portainera" ale po tym zamieszaniu nic już nie działa smile.gif
więc nie wiem jeszcze jak to zrobić smile.gif

Aaaa i jeszcze jedno, nie działa, wywala błąd w lini xxx którejś tam, zmieniłem na :
<Proxy *>
Allow from localhost
</Proxy>
# Reverse proxy configuration
# <Location />
ProxyPass / http://127.0.0.1:8080/
ProxyPassReverse / 127.0.0.1:8080/
# </Location>

</VirtualHost>
i przestało smile.gif

Pisząc "DO" kontenera masz na myśli w kontenerze musi być także odpalony apache ?
Chol...y docker, w tym kontenerze niema niczego, ani yum'a ani rpm'a, dobrze, że wget jest tongue.gif

Napisany przez: Pyton_000 4.12.2017, 18:23:53

tak, w kontenerze masz mieć odpalonego apache/nginx co tam sobie chcesz. możesz nawet odpalić php -S na porcie 80

Napisany przez: by_ikar 4.12.2017, 19:34:42

Cytat
Jeszcze tylko nie wiem jak się dobrać do kontenera, wcześniej używałem "portainera" ale po tym zamieszaniu nic już nie działa


dobrać ale do czego? Plików? Od tego są volumeny. W kontenerze możesz mieć apache itp, ale pliki które apache będzie używać "linkujesz" za pomocą volumenów. Na linuksie działa to jakbyś zrobił symlinka, ten kontener to nie jest jakaś maszyna wirtualna, tylko odpalony proces któremu nadane są odpowiednie uprawnienia (cgroups) dzięki czemu programowi się wydaje że działa na osobnym systemie, dzięki czemu możesz takich programów odpalić kilka, w różnych wersjach, bez konfliktów.

Napisany przez: phpamator 5.12.2017, 09:49:12

Miałem na myśli, jak zainstalować brakujące rzeczy, np apacha albo ngixa jak sugerował Pyton, odpaliłem konsole a tam nic, ani yum'a ani rpm'a nijak nie wiem jak się za to zabrać.
Czyli jak zmusić go do zainstalowania tych właśnie elementów. próbowałem wgetem ściągnąć rpmy ale potem się okazało, że niema rpm'a i du..a.
Muszę znaleźć jakieś łopatologiczne wyjaśnienie jak to się robi. To co miało być tak proste okazało się okropnie zamotane.

Edyta:

Narazie jeszcze nie zrobiłem apacha w kontenerze ale dzisiaj postaram się to uzupełnić. Póki co mam:

"Proxy Error
The proxy server received an invalid response from an upstream server.
The proxy server could not handle the request GET /.
Reason: Error reading from remote server"

Czyli wygląda że już proxuje ale nie znajduje celu. To chyba dobrze ? wink.gif


Czyli co, jak mówisz każdy kontener to nie "Maszyna Wirtualna" tylko proces, więc mogę dodać image z Apachem i już ?
Nie do końca rozumiem jak to działa, każdy kontener ma własne IP, więc jak to się będzie "widziało" ?
Możesz cos więcej na temat napisać ?

Sprawa druga to czy lepiej Apache czy Ngix ? jeśli Ngix to nowocześniejszy/przyszłościowy serwer to może powinienem użyć Ngixa ?
Czy ponieważ na hoście już jest Apache/httpd to może poprostu Apache'a?

Zeby nie komplikować niepotrzebnie .....

Napisany przez: Pyton_000 5.12.2017, 11:13:39

Inaczej... Jakiego obrazu dockera używasz?

Jeśli dobrze kombinuje to ten: https://github.com/DarthSim/imgproxy

jeśli tak to odpal kontener z mapowaniem `-p 8080:8080` i dodaj tylko vhosty które pokazałem ale dla Hosta. Ten dla Dockera olej.

Napisany przez: phpamator 5.12.2017, 11:31:13

Hej Pyton_ooo,
Aaaaa właściwie to chyba tak właśnie jest w tej chwili
poczekaj, nie uciekaj, sprawdzam.....aaaaaaaaaaaaa hurrrrraaaaaaaaa
działa smile.gif
Dziękuję Pytonnnnnoooo


Napisany przez: Pyton_000 5.12.2017, 11:31:51

Gites majonez wink.gif

Napisany przez: phpamator 5.12.2017, 11:32:19

Dzięki dzięki dzięki
A idąc tą drogą, mam jeszcze jeden "proces" kontener z programem do zarządzania kontenerami "portainer" który lata na porcie 9000.
Nie mam do niego dostępu teraz po domenie (działa po IP).
Co muszę zrobić żeby działało po DNSie ?
Dodać kolejny VirtualServer tylko z proxy na 9000 ?

Napisany przez: by_ikar 5.12.2017, 12:42:39

Cytat(phpamator @ 5.12.2017, 11:32:19 ) *
Dzięki dzięki dzięki
A idąc tą drogą, mam jeszcze jeden "proces" kontener z programem do zarządzania kontenerami "portainer" który lata na porcie 9000.
Nie mam do niego dostępu teraz po domenie (działa po IP).
Co muszę zrobić żeby działało po DNSie ?
Dodać kolejny VirtualServer tylko z proxy na 9000 ?


dokładnie to samo co zrobiłeś z przekierowaniem ruchu na apache bez https'a.

Nie instaluj z palca rzeczy w kontenerze, zawsze twórz obraz z już potrzebnymi tobie rzeczami i później używaj już tego obrazu. Cała idea dockera jest w jego przenośności, jak coś zainstalujesz z palca, to jak będziesz chciał to gdzieś indziej odpalić, to znów będziesz musiał to zainstalować. Stwórz sobie obraz który podczas budowania będzie instalować niezbędne rzeczy, kopiować niezbędną konfigurację, którą zawsze później i tak możesz podmienić poprzez zmontowanie wolumenu.

Napisany przez: phpamator 5.12.2017, 12:52:11

Ok, spróbuję wink.gif
To całkiem fajne rozwiązanie, bardzo elastyczne, przynajmniej na takie wygląda okiem "laika"
no dobra, może nie "laika" ale mimo tego , że idea "dockera" jest dość stara nie miałem z nim do tej pory kontaktu.

Będę się bawił, najważniejsze że powoli zaczynam rozumieć o co kaman.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)