Автор Тема: apache vhost & nginx  (Прочетена 4538 пъти)

mrowcp

  • Напреднали
  • *****
  • Публикации: 450
    • Профил
apache vhost & nginx
« -: Mar 27, 2019, 21:38 »
Здрваейте колеги,
реших да поразуча nginx (proxy, Load balancing и т.н.) и за целта си вдигнах една виртуалка на рутера CentOS 7 (наричан долу router и виртуалка shmatka)
На shatka сложих IP: 192.168.1.11 , а router си е 192.168.1.1 Пуснах nginx, направих всички настройки и зададох следната конфигурация за proxy мод:

Цитат
http {
  server {
    listen 8080;
    location / {
      proxy_pass http://192.168.1.1:80;
    }
  }
}

Разбира се не тръгна :) В лога на shmatka пише, че няма рутиране към хоста, а то има.

Цитат
2019/03/27 15:25:14 [error] 16256#0: *33 connect() failed (113: No route to host) while connecting to upstream, client: 192.168.1.2, server: , request: "GET /favicon.ico HTTP/1.1", upstream: "http://192.168.1.1:80/wordpress/favicon.ico", host: "192.168.1.11", referrer: "http://192.168.1.11/"

Всъщност се оказа, че от локалната мрежа (работната ми Win станция) не мога в браузъра да заредя http://192.168.1.1 Дава ми стандартното "This site can’t be reached".
На router имам конфигурирани няколко vhost-а които си се зареждат нормално. И сега питането ми е: как да задам кой от виртуалните хостове да се зарежда при отварянето на 192.168.1.1? Опитах с:

Цитат
<VirtualHost 192.168.1.1:80>
...
...
</VirtualHost>

, но нещо несработва.
« Последна редакция: Mar 27, 2019, 21:45 от mrowcp »
Активен

Some Things Just Are The Way They Are

makeme

  • Напреднали
  • *****
  • Публикации: 895
  • Distribution: Many
  • Window Manager: KDE
    • Профил
Re: apache vhost & nginx
« Отговор #1 -: Mar 27, 2019, 21:52 »
Ако схващам добре, имаш апаче и nginx само като прокси.

В този случай мисля че проблемът ти е в апачето. Спомена че имаш няколко виртуални хоста. Това реално означава, че или нямаш _default_ или нещо такова (предполагам че всички са на ИП 192.168.1.1). Принципно за такъв се използва следното:
Код:
<VirtualHost *:80>
или
Код:
<VirtualHost _default_:443>

Отделно за 2та сървъра някъде трябва да има нещо от рода:
Код:
Listen 80

<IfModule ssl_module>
        Listen 443
</IfModule>

Смисъл конф, в който са описани кой, къде слуша.

ПП: А и забравих да спомена че към вхостовете трябва да имаш и домейните :
Код:
    ServerName www.example.com
    ServerAlias example.com  (optional)
« Последна редакция: Mar 27, 2019, 21:58 от makeme »
Активен

Distributions:  UbuntuMate; Kubuntu; CentOS; Kali; Raspberry Pi OS ...

makeme

  • Напреднали
  • *****
  • Публикации: 895
  • Distribution: Many
  • Window Manager: KDE
    • Профил
Re: apache vhost & nginx
« Отговор #2 -: Mar 27, 2019, 21:53 »
Така или иначе го сложих този пост 2 пъти, поне да използвам мястото и да попитам:
Дай малко повече инфо за другите хостове. Основно разликите между тях. Дали са на едно ИП, дали са на един порт, дали са с различни домейни. Има огромна разлика при конфигурирането, на различните сетъпи.
« Последна редакция: Mar 27, 2019, 22:08 от makeme »
Активен

Distributions:  UbuntuMate; Kubuntu; CentOS; Kali; Raspberry Pi OS ...

mrowcp

  • Напреднали
  • *****
  • Публикации: 450
    • Профил
Re: apache vhost & nginx
« Отговор #3 -: Mar 28, 2019, 15:11 »
Да, в бързината явно съм пропуснал важните неща :)
Имам вдигнати 4 vhost-а (4 различни домейна) които се зареждат нормално по hostname's. Всички са с конфигурации от вида:

Код:
<VirtualHost *:80>
    ServerAdmin admin@hostname1.com
    DocumentRoot /home/mrowcp/public_html/hostname1/
    ServerName hostname1.com
    ErrorLog logs/hostname1.com-error_log
    CustomLog logs/hostname1.com-access_log common
</VirtualHost>

и са достъпни през порт 80.
Разликите са, едното е wordpress, другото е html страница, третото е java и т.н. На едно IP се намират. Машината е въпросният router с един LAN и един WAN интерфейс.

Може би ще е по-добре за лаба, да вдигна втора виртуалка и да разцъквам между двете, вместо да намесвам router?
Активен

Some Things Just Are The Way They Are

makeme

  • Напреднали
  • *****
  • Публикации: 895
  • Distribution: Many
  • Window Manager: KDE
    • Профил
Re: apache vhost & nginx
« Отговор #4 -: Mar 28, 2019, 15:26 »
Ако в твоя случай това ИП е 192.168.1.1 (където са всички вихостове) значи направи и новия такъв по домейн, тъй като се получава конфликт.

Отделно като чуя рутер и 192.168.1.1 се сещам за стандартен уебитерфейс на рутер и се чудя дали нямаш и паралелен уебсървър, който също да конфликтира.

ПП: След като си го подкараш вхоста под апача, вече гледай вхоста на nginxa. Принципно този сетъп се използва на обратно :)

пп2:
Цитат
Може би ще е по-добре за лаба, да вдигна втора виртуалка и да разцъквам между двете, вместо да намесвам router?
Не знам какъв ти е рутера, но аз лично бих предпочел виртуалката.
« Последна редакция: Mar 28, 2019, 15:45 от makeme »
Активен

Distributions:  UbuntuMate; Kubuntu; CentOS; Kali; Raspberry Pi OS ...

mrowcp

  • Напреднали
  • *****
  • Публикации: 450
    • Профил
Re: apache vhost & nginx
« Отговор #5 -: Mar 28, 2019, 17:35 »
Ако в твоя случай това ИП е 192.168.1.1 (където са всички вихостове) значи направи и новия такъв по домейн, тъй като се получава конфликт.

Отделно като чуя рутер и 192.168.1.1 се сещам за стандартен уебитерфейс на рутер и се чудя дали нямаш и паралелен уебсървър, който също да конфликтира.

ПП: След като си го подкараш вхоста под апача, вече гледай вхоста на nginxa. Принципно този сетъп се използва на обратно :)

пп2:
Цитат
Може би ще е по-добре за лаба, да вдигна втора виртуалка и да разцъквам между двете, вместо да намесвам router?
Не знам какъв ти е рутера, но аз лично бих предпочел виртуалката.

"значи направи и новия такъв по домейн" - не съм сигурен какво точно имаш предвид. Аз искам просто един от всичките домейни от vhost-товете да стане видим при зареждане на 192.168.1.1 (нямам притенции кой).

Под рутер имам предвид машина с рандом хардуер на която има инсталирам CentOS с правила за рутиране на интернет.

ПП-то също не го разбирам :) Какво имаш предвид, че се "използва обратно"? Нали nginx трябва да има само сетъп за прокси/Лоуд балансър?

EDIT: Според ръководството на apache, нещата би трябвало да станат по следният начин:

Код:
<VirtualHost 192.168.1.1 172.20.30.40>
    DocumentRoot "/www/server1"
    ServerName server.example.com
    ServerAlias server
</VirtualHost>

Смених само 172... с въшното ми IP, но пак от вътрешната мрежа не се зарежда въпросното съдържание в "DocumentRoot "/www/server1"". Иначе от вън по домейн, страницата се зарежда. Добавих и правила за локалната мрежа в firewall-cmd, да не би да е от там, въпреки че Win машината ми е тръстед, но пак нищо:

Код:
  services: mdns dhcpv6-client samba-client ssh samba
  ports: 1900/udp 8200/tcp 5900/tcp

В http логовете на въпросният vhost изобщо нефигурират заявки от 192.168.1.2 Windows работната станция, от която се опитвам да го достъпя.
« Последна редакция: Mar 28, 2019, 17:53 от mrowcp »
Активен

Some Things Just Are The Way They Are

makeme

  • Напреднали
  • *****
  • Публикации: 895
  • Distribution: Many
  • Window Manager: KDE
    • Профил
Re: apache vhost & nginx
« Отговор #6 -: Mar 28, 2019, 18:07 »
Еми когато напишеш 192.168.1.1 в браузъра, реално при апача отива 192.168.1.1:80 (просто браузърите не показват порт 80 и 443). Това не е проблем при имане само на 1 вихост (сайт, който уебсървърът да сервира), но обикновено конфликтира, когато имаш повече, защото на :80 имаш няколко document_root-a. За това предложих да използваш домейни. Ако има колега, който знае как да го излъжеш, нека каже.

Принципно и на мен ми стана странно, че не ти отваря нищо на 192.168.1.1. Трябваше да има все нещо.

За наобратно, имам предвид, че обикновено този сетъп се използва така:

nginx  :80
proxy_pass :8080
apache :8080

Ето и 1вия резултат от гугъл:
https://www.digitalocean.com/community/tutorials/how-to-configure-nginx-as-a-reverse-proxy-for-apache

ПП: Логовете ги преглеждай както за вихоста, така и основния на апача/nginx-a
« Последна редакция: Mar 28, 2019, 18:11 от makeme »
Активен

Distributions:  UbuntuMate; Kubuntu; CentOS; Kali; Raspberry Pi OS ...

vladi4k0

  • Напреднали
  • *****
  • Публикации: 13
    • Профил
Re: apache vhost & nginx
« Отговор #7 -: Apr 05, 2019, 20:35 »
Защо на nginx порта е  listen 8080;

ето при мене с апаче
Код
GeSHi (Bash):
  1. cat proxy0_1.conf
  2. <VirtualHost *:80>
  3.     ServerAdmin support@secondsite.org
  4.     ServerName 0.miara75.eu
  5.     #ServerAlias www.secondsite.org
  6.     ProxyRequests off
  7.     ProxyPreserveHost On
  8.     ProxyPass / http://192.168.0.100:80/
  9.     ProxyPassReverse / http://192.168.0.100:80/
  10.     # Uncomment the line below if your site uses SSL.
  11.     #SSLProxyEngine On
  12. </VirtualHost>
  13.  
  14. <VirtualHost *:443>
  15.     ServerAdmin support@secondsite.org
  16.     ServerName 0.miara75.eu
  17.     #ServerAlias www.secondsite.org
  18.  
  19.     SSLEngine on
  20.     SSLProxyEngine On
  21.     SSLCertificateFile /etc/letsencrypt/live/0.miara75.eu/fullchain.pem
  22.     SSLCertificateKeyFile /etc/letsencrypt/live/0.miara75.eu/privkey.pem
  23.     Include /etc/letsencrypt/options-ssl-apache.conf
  24.  
  25.     ProxyRequests off
  26.     ProxyPreserveHost On
  27.     ProxyPass / https://192.168.0.100:443/
  28.     ProxyPassReverse / https://192.168.0.100:443/
  29.     # Uncomment the line below if your site uses SSL.
  30.     #SSLProxyEngine On
  31.  
  32. </VirtualHost>
  33.  
  34. ### to work enable lbmethod_byrequests.load slotmem_shm.load
  35.  

това е локалната машина

Код
GeSHi (Bash):
  1. root@orangepizero:/print# cat 000-default.conf
  2. <VirtualHost *:80>
  3.        ServerName 0.miara75.eu
  4.        ServerAdmin webmaster@localhost
  5.        DocumentRoot /var/www/html
  6.        ErrorLog ${APACHE_LOG_DIR}/error.log
  7.        CustomLog ${APACHE_LOG_DIR}/access.log combined
  8.  
  9. #RewriteEngine on
  10. #RewriteCond %{SERVER_NAME} =0.miara-75.info
  11. #RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,QSA,R=permanent]
  12.  
  13. </VirtualHost>
  14.  
  15. # vim: syntax=apache ts=4 sw=4 sts=4 sr noet
  16.  
  17. root@orangepizero:/print# cat 000-ipv6-default-le-ssl.conf
  18. <IfModule mod_ssl.c>
  19. <VirtualHost *:443>
  20.        ServerName 0.miara75.eu
  21.        ServerAdmin webmaster@localhost
  22.        DocumentRoot /var/www/html
  23.        ErrorLog ${APACHE_LOG_DIR}/error.log
  24.        CustomLog ${APACHE_LOG_DIR}/access.log combined
  25. SSLCertificateFile /etc/letsencrypt/live/0.miara75.eu/fullchain.pem
  26. SSLCertificateKeyFile /etc/letsencrypt/live/0.miara75.eu/privkey.pem
  27. Include /etc/letsencrypt/options-ssl-apache.conf
  28. </VirtualHost>
  29.  
  30. # vim: syntax=apache ts=4 sw=4 sts=4 sr noet
  31. </IfModule>
  32.  
  33. root@orangepizero:/print#
  34.  
  35. root@orangepizero:/print# cat 000-default.conf
  36. <VirtualHost *:80>
  37.        ServerName 0.miara75.eu
  38.        ServerAdmin webmaster@localhost
  39.        DocumentRoot /var/www/html
  40.        ErrorLog ${APACHE_LOG_DIR}/error.log
  41.        CustomLog ${APACHE_LOG_DIR}/access.log combined
  42.  
  43. #RewriteEngine on
  44. #RewriteCond %{SERVER_NAME} =0.miara-75.info
  45. #RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,QSA,R=permanent]
  46.  
  47. </VirtualHost>
  48.  
  49. # vim: syntax=apache ts=4 sw=4 sts=4 sr noet
  50.  
  51. root@orangepizero:/print# cat 000-ipv6-default-le-ssl.conf
  52. <IfModule mod_ssl.c>
  53. <VirtualHost *:443>
  54.        ServerName 0.miara75.eu
  55.        ServerAdmin webmaster@localhost
  56.        DocumentRoot /var/www/html
  57.        ErrorLog ${APACHE_LOG_DIR}/error.log
  58.        CustomLog ${APACHE_LOG_DIR}/access.log combined
  59. SSLCertificateFile /etc/letsencrypt/live/0.miara75.eu/fullchain.pem
  60. SSLCertificateKeyFile /etc/letsencrypt/live/0.miara75.eu/privkey.pem
  61. Include /etc/letsencrypt/options-ssl-apache.conf
  62. </VirtualHost>
  63.  
  64. # vim: syntax=apache ts=4 sw=4 sts=4 sr noet
  65. </IfModule>
  66.  
  67. root@orangepizero:/print#
  68.  

странно че имам и ipv6 и сега ми направи впечетление че хрома показва ipv6 връзка а непомна да съм описвал  нещо освен в домейна
реших да пробвам инсталирах
сложих първия конфиг от гуугле и тръгна

Код
GeSHi (Bash):
  1. server {
  2.  listen 8080;
  3.  listen [::]:8080;
  4.  
  5.  server_name 192.168.0.55;
  6.  
  7.  location / {
  8.      proxy_pass http://zamunda.net:80/;
  9.  }
  10. }
  11.  
пиша в браузера http://192.168.0.55:8080 и отварям замунда
« Последна редакция: Apr 05, 2019, 22:05 от vladi4k0 »
Активен

Подобни теми
Заглавие Започната от Отговора Прегледи Последна публикация
apache vhost settings
Настройка на програми
mrowcp 13 5236 Последна публикация Feb 15, 2009, 19:23
от mrowcp
как да подкарам Apache 2 на Suse 11.1 и Vhost
Настройка на програми
tseroo1 7 4811 Последна публикация Mar 27, 2009, 03:48
от phantomlord
apache vhost FreeBSD БТК АДСЛ
Системни настройки
asp 1 2682 Последна публикация Nov 07, 2009, 23:23
от asp
ПРЕМЕСТЕНО: Nginx като прокси за Apache
Сървъри
abadon 2 5290 Последна публикация Nov 16, 2009, 18:04
от abadon
Apache + namebase vhost
Настройка на програми
abadon 4 4222 Последна публикация Dec 08, 2009, 09:12
от abadon