Closed westfood closed 7 years ago
OK, ono oboje facha, jenom na tom jednom serveru to nenacte static files css atp. Django v debug mode servuje i ty staticke soubory. Ale na production je potreba to nastavit aby to bezelo pres nginx primo. To je kvuli performance a security.
Musis tedy nastavit static podobne jako je to tady: https://github.com/WebarchivCZ/Seeder/blob/master/installation_templates/template.nginx.conf
hele, ten 10.3.0.60 je nastavený správně, servíruje statickej obsah.. reverzní proxy by mělo stačit jen odkázat na ten nginx ne?
server {
listen 80;
listen 443 ssl;
ssl_certificate /etc/nginx/nginx-10.3.0.60.crt;
ssl_certificate_key /etc/nginx/nginx-10.3.0.60.key;
server_name 10.3.0.60;
location / {
uwsgi_pass unix:///opt/Seeder/seeder.sock;
include uwsgi_params;
}
location /media {
root /opt/Seeder/Seeder;
}
location /robots.txt {
alias /usr/share/nginx/html/robots.txt;
}
location /static {
alias /opt/Seeder/Seeder/static_root;
}
}
rudolf@m2117 ~ curl -vL 10.3.0.60
* Rebuilt URL to: 10.3.0.60/
* Trying 10.3.0.60...
* TCP_NODELAY set
* Connected to 10.3.0.60 (10.3.0.60) port 80 (#0)
> GET / HTTP/1.1
> Host: 10.3.0.60
> User-Agent: curl/7.54.0
> Accept: */*
>
< HTTP/1.1 302 Found
< Server: nginx/1.10.2
< Date: Mon, 14 Aug 2017 09:45:07 GMT
< Content-Type: text/html; charset=utf-8
< Transfer-Encoding: chunked
< Connection: keep-alive
< Vary: Cookie
< X-Frame-Options: SAMEORIGIN
< Location: /en/
<
* Ignoring the response-body
* Connection #0 to host 10.3.0.60 left intact
* Issue another request to this URL: 'http://10.3.0.60/en/'
* Found bundle for host 10.3.0.60: 0x7fde5040bc40 [can pipeline]
* Re-using existing connection! (#0) with host 10.3.0.60
* Connected to 10.3.0.60 (10.3.0.60) port 80 (#0)
> GET /en/ HTTP/1.1
> Host: 10.3.0.60
> User-Agent: curl/7.54.0
> Accept: */*
>
< HTTP/1.1 200 OK
< Server: nginx/1.10.2
< Date: Mon, 14 Aug 2017 09:45:07 GMT
< Content-Type: text/html; charset=utf-8
< Transfer-Encoding: chunked
< Connection: keep-alive
< Content-Language: en
< X-Frame-Options: SAMEORIGIN
<
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="author" content="Webarchiv">
<title>The Museum of Czech web | Webarchiv.cz</title>
...
versus:
rudolf@m2117 ~ curl -vL seeder.webarchiv.cz
* Rebuilt URL to: seeder.webarchiv.cz/
* Trying 195.113.132.93...
* TCP_NODELAY set
* Connected to seeder.webarchiv.cz (195.113.132.93) port 80 (#0)
> GET / HTTP/1.1
> Host: seeder.webarchiv.cz
> User-Agent: curl/7.54.0
> Accept: */*
>
< HTTP/1.1 302 Found
< Date: Mon, 14 Aug 2017 09:46:15 GMT
< Server: nginx/1.10.2
< Content-Type: text/html; charset=utf-8
< Vary: Accept-Language,Cookie
< Content-Language: en
< X-Frame-Options: SAMEORIGIN
< Location: /auth/login/?next=/seeder/
< Content-Length: 0
< X-Pad: avoid browser bug
<
* Connection #0 to host seeder.webarchiv.cz left intact
* Issue another request to this URL: 'http://seeder.webarchiv.cz/auth/login/?next=/seeder/'
* Found bundle for host seeder.webarchiv.cz: 0x7fa7d17010b0 [can pipeline]
* Re-using existing connection! (#0) with host seeder.webarchiv.cz
* Connected to seeder.webarchiv.cz (195.113.132.93) port 80 (#0)
> GET /auth/login/?next=/seeder/ HTTP/1.1
> Host: seeder.webarchiv.cz
> User-Agent: curl/7.54.0
> Accept: */*
>
< HTTP/1.1 404 Not Found
< Date: Mon, 14 Aug 2017 09:46:15 GMT
< Server: nginx/1.10.2
< Content-Type: text/html; charset=utf-8
< Content-Language: en
< X-Frame-Options: SAMEORIGIN
< Vary: Accept-Language,Cookie
< Transfer-Encoding: chunked
<
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="author" content="Webarchiv">
<title>404: Page not found | Webarchiv.cz</title>
:( V tom se moc nevyznam.
Ale nebude treba chyba v server_name?
server_name 10.3.0.60;
Tam by imho mela byt domena. Taky je dulezite aby z te reverse proxy chodili ty requests s originalni hlavickou - aby meli stejnou domenu
asi už na to přicházím:
apache si říká o: /seeder/auth/login/?next=/seeder/ ale měl by si říkat o: /auth/login/?next=/seeder/ proto háže NGINX apachovi 404..
tj.. jestli chápu tu appku správně..
požádám ji o seeder.nekde.cz/seeder/
a ona mě přesměruje na seeder.nekde.cz/auth/login/?next=/seeder/
takže bych měl upravit apache tak, aby ořezával další dotazy o ten seeder?
hele, radši bych třeba www a seeder provozoval na jiných portech..
Hmm hele ja to vidim takhle: to co to potrebujete je aby k admnistraci (seederu) byl pristup z virtualni site, right? Separace sluzeb pres url asi funguje, ale nemam s tim uplne zkusenosti, lepsi je to delat podle subdomeny.
Ja bych tam dal dve sluzby do nginxu:
location
configurator zakazal url "/admin" a "/seeder". Mám seeder.webarchiv.cz a seeder-dev.webarchiv.cz pro seeder rozhraní
webarchiv.cz a www-dev.webarchiv.cz pro www.
tj. Produkční i vývojové rozhraní je oddělené. Vše běží ve své subdoméně. A vše pod veřejnou IP, vše bude https. Teď na apache, poté nginx.
Co je trabl, že servíruješ www pod / a seeder pod /seeder, ale jen přesměrováním. Tj, reverzní proxy je 1:1 vůči /, ale tím jak /seeder přesměruje na /auth, tak reverzní proxy nemá šanci vědět URL na který má směřovat požadavky, ty budou končit na www rozhraní a né v seederu.
Tj. na backendovém serveru bude ideální, když jedna služba bude v nginxu 10.3.0.60:80 a druhá třeba 10.3.0.60:81. Reverzní proxy na frontě dnu pak ví, že má hodit www na 80 a seeder na 81.. Případně přes location /www,/seeder.. Namíchat / pro www a /seeder pro seeder imho nepůjde.
po 14. 8. 2017 v 19:57 odesílatel Visgean Skeloru notifications@github.com napsal:
Hmm hele ja to vidim takhle: to co to potrebujete je aby k admnistraci (seederu) byl pristup z virtualni site, right? Separace sluzeb pres url asi funguje, ale nemam s tim uplne zkusenosti, lepsi je to delat podle subdomeny.
Ja bych tam dal dve sluzby do nginxu:
- Jedna by servovala obsah pro verejne navstevniky, tam by jsi v nginxu pres location configurator zakazal url "/admin" a "/seeder".
- Druha by byla pristupna pouze z site, to bych udelal tak ze by servername bylo neco jako "seeder.webarchiv.cz" a tam povolit jenom vase ip. Nebo neco takoveho.
— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/WebarchivCZ/Seeder/issues/424#issuecomment-322261978, or mute the thread https://github.com/notifications/unsubscribe-auth/AATQLC32_dn4T3p6NKXZG-sDofAFrWRkks5sYIqagaJpZM4O1HOT .
No ja bych rozhodne nemichal lokace. Ja moc nerozumim ceho chces docilit. Dulezite je aby se z www nedalo dostat do administrace. To co ty resis je aby z jedne sudomeny slo pristupovat rovnou k obsahu co je na /seeder/? To imho nepujde bez meho zasahu, imho to ale dost zeslozituje pak ten projekt.
jj, o to mi šlo:
aby seeder.webarchiv.cz byl jen seeder a webarchiv.cz byla jen www prezentace.
teď je takové čudné..
celej seeder běží pod /seeder, ale jen během autentifkace běží pod: /auth/login/?next=/seeder/ namísto z /seeder/auth/login/?next=/seeder/ .. Kdyby i autentifikace byla pod /seeder - tak je to celý konzistentní.. a můžu to snadno volat z reverní proxy a mít to na oddělených poddoménách..
Hmm ok. To asi muzu zaridit.
On Tue, 15 Aug 2017, 01:17 Rudolf, notifications@github.com wrote:
jj, o to mi šlo:
aby seeder.webarchiv.cz byl jen seeder a webarchiv.cz byla jen www prezentace.
teď je takové čudné..
celej seeder běží pod /seeder, ale jen během autentifkace běží pod: /auth/login/?next=/seeder/ namísto z /seeder/auth/login/?next=/seeder/ .. Kdyby i autentifikace byla pod /seeder - tak je to celý konzistentní.. a můžu to snadno volat z reverní proxy a mít to na oddělených poddoménách..
— You are receiving this because you were assigned.
Reply to this email directly, view it on GitHub https://github.com/WebarchivCZ/Seeder/issues/424#issuecomment-322335604, or mute the thread https://github.com/notifications/unsubscribe-auth/AAL1KM2nMiFdbeFdSoY3-eLOlf06VjmKks5sYNWggaJpZM4O1HOT .
díkes!
Hele, ještě jeden trabl.. Myslím, že je to prostě čudné, není to za žádnou proxy, ale nginx prostě nenaservíruje /seeder/ a hodí 404:
tyhle url jsou v pohodě: http://10.3.0.60/seeder/blacklists/ ale /seeder nepošle nic, takže nefunguje po přihlášení dashboard..
viz.
rudolf@kim ~/Movies/Vuze Downloads curl -I 10.3.0.60/seeder/
HTTP/1.1 404 Not Found
Server: nginx/1.10.2
Date: Wed, 13 Sep 2017 13:38:13 GMT
Content-Type: text/html; charset=utf-8
Connection: keep-alive
X-Frame-Options: SAMEORIGIN
Content-Language: en
Vary: Accept-Language, Cookie
rudolf@kim ~/Movies/Vuze Downloads curl -I 10.3.0.60/seeder
HTTP/1.1 404 Not Found
Server: nginx/1.10.2
Date: Wed, 13 Sep 2017 13:38:16 GMT
Content-Type: text/html; charset=utf-8
Connection: keep-alive
X-Frame-Options: SAMEORIGIN
Content-Language: en
Vary: Accept-Language, Cookie
ať nginx nastavím takhle:
server {
listen 80;
server_name localhost 127.0.0.1 10.3.0.60 seeder.webarchiv.cz www.webarchiv.cz webarchiv.cz app.webarchiv.cz;
location / {
uwsgi_pass unix:///opt/Seeder/seeder.sock;
include uwsgi_params;
}
location /media {
root /opt/Seeder/Seeder;
}
location /robots.txt {
alias /usr/share/nginx/html/robots.txt;
}
location /static {
alias /opt/Seeder/Seeder/static_root;
}
}
nebo třeba podle template:
server {
listen 80;
server_name localhost 127.0.0.1 10.3.0.60 seeder.webarchiv.cz www.webarchiv.cz webarchiv.cz;
return 301 http://app.webarchiv.cz$request_uri;
}
server {
listen 80;
server_name app.webarchiv.cz;
location / {
uwsgi_pass unix:///opt/Seeder/seeder.sock;
include uwsgi_params;
}
...
z venku uvidíš tohle a to fachá https://app.webarchiv.cz/seeder/blacklists/
ale tohle neběží vůbec: https://app.webarchiv.cz/seeder/
na backendu se objeví tohle, ale měl by imho najet dashboard:
10.5.1.133 - - [13/Sep/2017:15:50:31 +0200] "GET /seeder/ HTTP/1.0" 404 5899 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/603.3.8 (KHTML, like Gecko) Version/10.1.2 Safari/603.3.8" "195.113.132.25"
Ok ted jsem pushnul fix
hele, furt to vrací 404:
rudolf@kim ~/Movies/Vuze Downloads curl -I 10.3.0.60/seeder
HTTP/1.1 404 Not Found
Server: nginx/1.10.2
Date: Wed, 13 Sep 2017 15:33:29 GMT
Content-Type: text/html; charset=utf-8
Connection: keep-alive
Vary: Accept-Language, Cookie
Content-Language: en
X-Frame-Options: SAMEORIGIN
rudolf@kim ~/Movies/Vuze Downloads curl -I 10.3.0.60/seeder/
HTTP/1.1 404 Not Found
Server: nginx/1.10.2
Date: Wed, 13 Sep 2017 15:33:31 GMT
Content-Type: text/html; charset=utf-8
Connection: keep-alive
Vary: Accept-Language, Cookie
Content-Language: en
X-Frame-Options: SAMEORIGIN
tak to musi byt chyba v nginx konfiguraci nebo tak neco.
seš si jistej?
když použiji uwsgi jako http server, tak stejnej výsledek:
[root@wa-app00]~# curl -I 127.0.0.1:10000/seeder/
HTTP/1.1 404 Not Found
Content-Type: text/html; charset=utf-8
X-Frame-Options: SAMEORIGIN
Content-Language: en
Vary: Accept-Language, Cookie
[root@wa-app00]~# curl -I 127.0.0.1:10000/seeder
HTTP/1.1 404 Not Found
Content-Type: text/html; charset=utf-8
X-Frame-Options: SAMEORIGIN
Content-Language: en
Vary: Accept-Language, Cookie
[root@wa-app00]~#
[uwsgi]
virtualenv = /opt/virtualenv/seeder
pythonpath = /opt/Seeder/Seeder
plugins = python3
master = 1
pidfile = /opt/Seeder/seeder.pid
touch-reload = /opt/Seeder/reload.touch
http-socket = 0.0.0.0:10000
chmod-socket = 777
cheaper-algo = spare
cheaper = 2
cheaper-initial = 2
cheaper-step = 1
processes = 6
vacuum = 1
harakiri = 60
wsgi-file = /opt/Seeder/Seeder/wsgi.py
env = PATH=/opt/rh/rh-python35/root/usr/bin:/sbin:/bin:/usr/sbin:/usr/bin
env = LD_LIBRARY_PATH=/opt/rh/rh-python35/root/usr/lib64
env = XDG_DATA_DIRS=/opt/rh/rh-python35/root/usr/share:/usr/local/share:/usr/share
env = PKG_CONFIG_PATH=/opt/rh/rh-python35/root/usr/lib64/pkgconfig
[root@wa-app00]~# cat /opt/Seeder/Seeder/settings/local_settings.py
from .base import *
SECRET_KEY = 'sdfvsdfvsdfvsdfv'
# SECURITY WARNING: don't run with debug turned on in production!
DEBUG = False
TEMPLATE_DEBUG = False
THUMBNAIL_DEBUG = False
ALLOWED_HOSTS = ['127.0.0.1', 'localhost', '10.3.0.60', 'seeder.webarchiv.cz', 'app.webarchiv.cz', 'www.webarchiv.cz', 'webarchiv.cz']
A nasadil jsi novou verzi?
On Wed, 13 Sep 2017, 17:23 Rudolf notifications@github.com wrote:
[root@wa-app00]~# cat /opt/Seeder/Seeder/settings/local_settings.py from .base import *
SECRET_KEY = 'sdfvsdfvsdfvsdfv'
SECURITY WARNING: don't run with debug turned on in production!
DEBUG = False TEMPLATE_DEBUG = False THUMBNAIL_DEBUG = False
ALLOWED_HOSTS = ['127.0.0.1', 'localhost', '10.3.0.60', 'seeder.webarchiv.cz', 'app.webarchiv.cz', 'www.webarchiv.cz', 'webarchiv.cz']
— You are receiving this because you modified the open/close state.
Reply to this email directly, view it on GitHub https://github.com/WebarchivCZ/Seeder/issues/424#issuecomment-329221421, or mute the thread https://github.com/notifications/unsubscribe-auth/AAL1KKf5hRe9DK4zbVhSDjTsyo9nEcsBks5siAFzgaJpZM4O1HOT .
commit 1e89421a47763656401dad51c6757b22560b6380
Merge: 4f7d841 90592ac
Author: Visgean Skeloru <me@visgean.me>
Date: Wed Sep 13 16:24:54 2017 +0100
Merge remote-tracking branch 'origin/master' into production
Me to na locale funguje. Moc netusim co by mohlo byt spatne. :(
to je čudné, takže když se poptáš kontejneru na /seeder - vrátí 200, namísto 404?
zkusím to zítra buildnout v dockeru
Testuju to z dockeru, takže ano.. /seeder/ háží 404 i z dockeru.. vtip je v tom, že poslouchá na /seeder//
viz..
rudolf@kim ~ curl -I 127.0.0.1:8000/seeder/
HTTP/1.0 404 Not Found
Date: Mon, 18 Sep 2017 19:06:04 GMT
Server: WSGIServer/0.2 CPython/3.5.2
Content-Type: text/html
Vary: Accept-Language, Cookie
X-Frame-Options: SAMEORIGIN
Content-Language: en
rudolf@kim ~ curl -I 127.0.0.1:8000/seeder//
HTTP/1.0 302 Found
Date: Mon, 18 Sep 2017 19:06:09 GMT
Server: WSGIServer/0.2 CPython/3.5.2
Content-Type: text/html; charset=utf-8
Vary: Accept-Language, Cookie
X-Frame-Options: SAMEORIGIN
Location: /seeder/auth/login/?next=/seeder//
Content-Language: en
:( ok, ted jsem to fixnul, chyba byla, ze jsem nemel updatovane requirements.
cajk, testnu a dám vědět.. každopádně, postupně přejdu na deploy seederu přes docker.. ještě to musím trochu odladit.. takže budeš pak moci přejít na vyšší python, jestli to nějak pomůže při vývoji..
fachá..
čéšť,
mám trabl s kterým bych potřeboval poradit.
tohle fachá: http://www-dev.webarchiv.cz/ tohle je čudné: http://seeder.webarchiv.cz/
přičemž tohle fachá (ale to už neuvidíš, páč je to za VPN): http://10.3.0.60/seeder/
nenapadá tě něco? možná by stačilo uwsgi řici ať seeder běží na třeba na portu 10000, www na portu 10001 a pak by s tím nebyl problém..
ale kdo ví..
sentry vyhodil tohle: http://sentry.webarchiv.cz/sentry/seeder/issues/98/
v apači mám tohle :