Nie jesteś zalogowany.
Jeśli nie posiadasz konta, zarejestruj je już teraz! Pozwoli Ci ono w pełni korzystać z naszego serwisu. Spamerom dziękujemy!
Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.
Witam,
Obecnie mam tak, że wszystkie subdomeny są kierowane na ip 178.10.X.X serwer nginx, który rozdziela to między kolejne 2 serwery (10.0.1.2 i 10.0.1.3).
Wszystko pięknie działa. Pod warunkiem, że kieruję subdomeny na ten IP publiczny głównego nginx, przykład rp.domena.pl -> 178.10.X.X pb.domena.pl -> 178.10.X.X (DNS jest w home.pl).
Jeśli przekierowuję www.domena.pl też ładuje mi na serwery 1.2 lub 1.3 a chciałbym by kierował je na 10.0.1.4. Schematycznie wygląda to tak
|----serwer 10.0.1.2 ( obsługa subdomen rp.domena.pl, pd.domena.pl - bez www, i tu będą różne )
SERWER 178.10.X.X ---
| |
| |---- serwer 10.0.1.3 ( obsługa subdomen rp.domena.pl, pd.domena.pl - bez www, i tu będą różne )
|
|-----serwer 10.0.1.4 ( ma obsługiwać zapytania www.domena.pl, domena.pl, www.panel.domena.pl(tu myk jedna subdomena!) )
Pytanie, czy za pomocą jednego serwera jestem w stanie to tak pokierować. ?
Dzięki
Offline
przekieruj całą domenę na swoje główne IP a potem w nginxie ustaw przekierowanie odpowiednich vhostów na odpowiednia domenę/subdomene
Offline
Strasznie trudna sprawa z tym LB na Nginxie... :)
Tu masz obrazki:
http://www.geektantra.com/2011/06/using-nginx-as-a-load-balancer/
Pozdro
;-)
Offline
eee a po co mi obrazki. Mi chodzi o to jak skierować zapytanie www.domena.pl oraz www.panel.domena.pl na 1.4 , reszta mi działa. Niestety nie mogę całej domeny przekierować :(
Offline
jak masz tą domenę w home.pl przekierowaną i jakie masz możliwości przekierowania?
Offline
nie mam żadnych wspieram firmę która coś tam ma na Linux i rozwija swoje pomysły. Muszę prosić ich informatyka i TO DUŻYMI LITERAMI co ma mi ustawić i jak.
Offline
Najprościej zrobić coś takiego. Ustawić rekord A dla domeny na IP serwera
domena.pl. A 178.10.X.X
www.domena.pl. A 178.10.X.X
Wtedy wszystkie jest kierowane na "SERWER 178.10.X.X" na którym stoi sobie nginx. W nginxie robisz X konfigów dla vhostów i tylko odpowiednio ustawiasz
proxy_pass http://10.0.1.X:8080;
oczywiście na serwerach 10.0.1.X konfigurujesz osobnego nginxa/apacza/co tam wygodniej dla wybranych domen/subdomen.
Offline
hmmm, jest tak
w home.pl rekord DNS jest ustawiony
rp.domena.pl A 178.10.X.143
pb.domena.pl A 178.10.X.143
or.domena.pl A 178.10.X.143
To działa super jest przyjmowane przez nginx słuchający na IP 178.10.X.X który to rozrzuca między serwery 1.2 i 1.3.
Problem jest w tym że chcą ustawić tak DNS
panel.domena.pl A 178.10.X.143 ten sam adres co wyżej
www A 178.10.X.143
Teraz wchodząc na stronę www.domena.pl, panel.domena.pl lub www.panel.domena.pl dostaję dane z serwerów 1.2 lub 1.3, a potrzebuję dane i strony otrzymać z 1.4.
Wydaje mi się, że nie ogarnę tego za pomocą jednego nginx, ale chciałem się was podpytać. Może jakiegoś if-a zrobić z redirect ?
Offline
jak masz tego nginxa skonfigurowanego na maszynie 178.10.x.x i jak masz skonfigurowanie nginxy/apacze na tych lokalnych maszynach (10.0.x.x)?
Offline
konfiguracja nginx głównego wygląda tak 178.10.X.X
user www-data; worker_processes 3; pid /var/run/nginx.pid; events { worker_connections 1048; } http { ## # Basic Settings ## server_tokens off; sendfile on; tcp_nopush on; tcp_nodelay on; keepalive_timeout 2; include /etc/nginx/mime.types; default_type application/octet-stream; ## # LOAD BALANCING ## upstream appmaster { server 10.0.1.3 max_fails=2 fail_timeout=2s; #LUNA # TO NGINX server 10.0.1.2 max_fails=2 fail_timeout=2s; #DIANA # TO NGINX } upstream appupload { server 10.0.1.4:80; # TO APACHE2 } ## # Logging Settings ## log_format main '$remote_addr - $remote_user [$time_local] ' '"$request" $status $bytes_sent ' '"$http_referer" "$http_user_agent" "$gzip_ratio"'; access_log /var/log/nginx/pax_access.log main buffer=256k; error_log /var/log/nginx/pax_error.log; ## # Gzip Settings ## gzip on; gzip_disable "msie6"; gzip_proxied any; gzip_comp_level 6; gzip_buffers 16 8k; gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript; proxy_next_upstream error; include /etc/nginx/conf.d/*.conf; include /etc/nginx/sites-enabled/*; server { listen 80; server_name pax; client_max_body_size 5M; access_log /data/log/nginx/pax_access.log; error_log /data/log/nginx/pax_error.log; location / { proxy_pass_header $server; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_redirect off; proxy_set_header X-Scheme $scheme; proxy_pass http://appmaster; } } #server { # listen 80; # server_name panel.domena.pl; # client_max_body_size 5M; #location / { # proxy_pass_header $server; # proxy_set_header Host $http_host; # proxy_redirect off; # proxy_set_header X-Real-IP $remote_addr; # proxy_set_header X-Scheme $scheme; # proxy_pass http://appupload; # } #} server { listen 443; server_name adprize.pl; client_max_body_size 5M; ssl on; ssl_certificate /etc/ssl/domena.pl.pem; ssl_certificate_key /etc/ssl/private/domena.pl.key; location / { proxy_pass_header $server; proxy_set_header Host $http_host; proxy_redirect off; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Scheme $scheme; proxy_pass http://appmaster; } } }
Serwery 1.2 i 1.3 to nginx, serwer 1.4 to apache2
Offline
No i w czym problem? Dalej nie ustawiłeś proxypassa tak jak mówiłem ;) Pisałem przekieruj po konkretnych nazwach/vhostach na konkretne serwery lokalne
|----serwer 10.0.1.2 ( obsługa subdomen rp.domena.pl, pd.domena.pl - bez www, i tu będą różne ) SERWER 178.10.X.X --- | | | |---- serwer 10.0.1.3 ( obsługa subdomen rp.domena.pl, pd.domena.pl - bez www, i tu będą różne ) | |-----serwer 10.0.1.4 ( ma obsługiwać zapytania www.domena.pl, domena.pl, www.panel.domena.pl(tu myk jedna subdomena
więc odpalasz konfiga nginxa na 178.10.X.X i robisz:
user www-data; worker_processes 3; pid /var/run/nginx.pid; events { worker_connections 1048; } http { ## # Basic Settings ## server_tokens off; sendfile on; tcp_nopush on; tcp_nodelay on; keepalive_timeout 2; include /etc/nginx/mime.types; default_type application/octet-stream; ## # LOAD BALANCING ## upstream appmaster { server 10.0.1.3 max_fails=2 fail_timeout=2s; #LUNA # TO NGINX server 10.0.1.2 max_fails=2 fail_timeout=2s; #DIANA # TO NGINX } upstream appupload { server 10.0.1.4:80; # TO APACHE2 } ## # Logging Settings ## log_format main '$remote_addr - $remote_user [$time_local] ' '"$request" $status $bytes_sent ' '"$http_referer" "$http_user_agent" "$gzip_ratio"'; access_log /var/log/nginx/pax_access.log main buffer=256k; error_log /var/log/nginx/pax_error.log; ## # Gzip Settings ## gzip on; gzip_disable "msie6"; gzip_proxied any; gzip_comp_level 6; gzip_buffers 16 8k; gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript; proxy_next_upstream error; include /etc/nginx/conf.d/*.conf; include /etc/nginx/sites-enabled/*; server { listen 80; server_name rp.domena.pl pb.domena.pl; #podajesz jakie domeny/subdomeny mają być obsługiwane przez dane proxypass client_max_body_size 5M; access_log /data/log/nginx/pb-rb_access.log; error_log /data/log/nginx/pb-rb_error.log; location / { proxy_pass_header $server; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_redirect off; proxy_set_header X-Scheme $scheme; proxy_pass http://appmaster; } # location } #server server { listen 80; server_name panel.domena.pl www.panel.domena.pl www.domena.pl; client_max_body_size 5M; access_log /data/log/nginx/pb-rb_access.log; error_log /data/log/nginx/pb-rb_error.log; location / { proxy_pass_header $server; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_redirect off; proxy_set_header X-Scheme $scheme; proxy_pass http://appupload; } # location } #server server { listen 443; server_name adprize.pl; client_max_body_size 5M; ssl on; ssl_certificate /etc/ssl/domena.pl.pem; ssl_certificate_key /etc/ssl/private/domena.pl.key; location / { proxy_pass_header $server; proxy_set_header Host $http_host; proxy_redirect off; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Scheme $scheme; proxy_pass http://appmaster; } } }
Offline
o matko czyli dodać kolejną sekcję i wpisać w server_name odpowiednie wpisy. Super zaraz sprawdzę. Gdzie wysłać piwko ?
Jak dla mnie najlepsze forum na świecie :)))
Ostatnio edytowany przez redelek (2013-12-06 09:18:30)
Offline
Sprawdź czy działa, na 99.8% powinno ale nie chciało mi się stawiać kilku maszyn żeby przetestować ;p
Offline
Time (s) | Query |
---|---|
0.00011 | SET CHARSET latin2 |
0.00004 | SET NAMES latin2 |
0.00115 | SELECT u.*, g.*, o.logged FROM punbb_users AS u INNER JOIN punbb_groups AS g ON u.group_id=g.g_id LEFT JOIN punbb_online AS o ON o.ident='3.149.231.122' WHERE u.id=1 |
0.00094 | REPLACE INTO punbb_online (user_id, ident, logged) VALUES(1, '3.149.231.122', 1732855819) |
0.00036 | SELECT * FROM punbb_online WHERE logged<1732855519 |
0.00075 | SELECT topic_id FROM punbb_posts WHERE id=247439 |
0.00007 | SELECT id FROM punbb_posts WHERE topic_id=24753 ORDER BY posted |
0.00084 | SELECT t.subject, t.closed, t.num_replies, t.sticky, f.id AS forum_id, f.forum_name, f.moderators, fp.post_replies, 0 FROM punbb_topics AS t INNER JOIN punbb_forums AS f ON f.id=t.forum_id LEFT JOIN punbb_forum_perms AS fp ON (fp.forum_id=f.id AND fp.group_id=3) WHERE (fp.read_forum IS NULL OR fp.read_forum=1) AND t.id=24753 AND t.moved_to IS NULL |
0.00007 | SELECT search_for, replace_with FROM punbb_censoring |
0.00240 | SELECT u.email, u.title, u.url, u.location, u.use_avatar, u.signature, u.email_setting, u.num_posts, u.registered, u.admin_note, p.id, p.poster AS username, p.poster_id, p.poster_ip, p.poster_email, p.message, p.hide_smilies, p.posted, p.edited, p.edited_by, g.g_id, g.g_user_title, o.user_id AS is_online FROM punbb_posts AS p INNER JOIN punbb_users AS u ON u.id=p.poster_id INNER JOIN punbb_groups AS g ON g.g_id=u.group_id LEFT JOIN punbb_online AS o ON (o.user_id=u.id AND o.user_id!=1 AND o.idle=0) WHERE p.topic_id=24753 ORDER BY p.id LIMIT 0,25 |
0.00091 | UPDATE punbb_topics SET num_views=num_views+1 WHERE id=24753 |
Total query time: 0.00764 s |