Moduł http proxy umożliwia lokalne świadczenie treści drugich w obrębie wirtualnych hostów lub wybranych katalogów. Efektem tego może być np. panel serwera QNAP z portu 8080 uruchomiony w pod domenie qts.domena.pl, ale przy użyciu domyślnego portu serwera Web. Może to być też monitorix, rtorrent, stacja wirtualizacji i wiele wiele innych aplikacji.
- Do tego celu konieczna jest prawidłowa instalacja: How-To - QNAP od środka, czyli grzebiemy w linuchu - Jak sobie ułatwić?
- Po wykonaniu instrukcji z powyższego przewodnika należy upewnić się, że Optware zostało ponownie uruchomione. W tym celu zrestartuj Optware.
- Połącz się do terminala/konsoli SHELL serwera QNAP
- Wykorzystamy Optware i jego katalog do przetrzymywania modyfikacji plików konfiguracyjnych serwera Web (Apache). W tym celu wykonaj następujące:
Bash:OPTWARE_DIR=$(getcfg -f /etc/config/qpkg.conf Optware Install_Path) cd $OPTWARE_DIR mkdir -p root/apache cd $OPTWARE_DIR/root/apache
- Następnie utwórz plik
apache-custom.conf
i wprowadź jego odpowiednią zawartość. W tym celu w konsoli shell wpisz:
Bash:vi apache-custom.conf
Kod:LoadModule proxy_module modules/mod_proxy.so LoadModule proxy_http_module modules/mod_proxy_http.so <VirtualHost *:80> #ProxyRequests Off #ProxyVia Off #ProxyPreserveHost Off #RewriteEngine on #RewriteLog "/share/Web/rewrite_https.log" #RewriteLogLevel 3 #RewriteRule ^/(user-settings\.json.*)$ http://localhost:8080/cgi-bin/$1 [P] #RewriteRule ^/(userConfig\.cgi.*)$ http://localhost:8080/cgi-bin/$1 [P] <Proxy *> # AddDefaultCharset off Order deny,allow Allow from all </Proxy> # ### NOTKA # Nazwa hosta pod ktora ma byc widoczny Panel ServerName qts.spietrza24.eu DocumentRoot "/share/Web/qts" ProxyPass / http://localhost:8080/ ProxyPassReverse / http://localhost:8080/ </VirtualHost>
i
(insert) - aby móc wprowadzić tekst- Kliknij prawym przyciskiem myszy w oknie edytora, aby wkleić powyższy tekst ze schowka
ESC
- aby zakończyć wprowadzanieShift
+:
- aby wydać komendęwq
- aby zapisać (write) i wyjść (quit)
ServerName
znajdowała się nazwa hosta domeny, którą chcesz tunelować do panelu QTS na porcie 8080. - Utwórz plik
append-apache-conf.sh
i wprowadź jego odpowiednią zawartość. W tym celu w konsoli shell wpisz:
Bash:vi append-apache-conf.sh
Bash:#!/bin/sh OPTWARE_DIR=$(getcfg -f /etc/config/qpkg.conf Optware Install_Path) # log procedure log=$OPTWARE_DIR/root/apache/append-apache-conf.log log(){ /bin/echo "$(/bin/date '+%F %T.%3N') $1" >> $log } log "***** Starting append-apache-conf.sh *****" # env variables apache_conf=/etc/config/apache/apache.conf apache_custom_conf=$OPTWARE_DIR/root/apache/apache-custom.conf # log myself exec >> $log 2>&1 # modify apache_conf /bin/grep -q $apache_custom_conf $apache_conf if [ $? -eq 0 ] then log "$apache_conf already includes $apache_custom_conf. Nothing to be done." else log "$apache_conf does NOT include $apache_custom_conf. Including now." /bin/echo "Include $apache_custom_conf" >> $apache_conf log "Restarting apache ..." /etc/init.d/Qthttpd.sh restart fi log "***** End of append-apache-conf.sh *****" /bin/sync /bin/sleep 1
i
(insert) - aby móc wprowadzić tekst- Kliknij prawym przyciskiem myszy w oknie edytora, aby wkleić powyższy tekst ze schowka
ESC
- aby zakończyć wprowadzanieShift
+:
- aby wydać komendęwq
- aby zapisać (write) i wyjść (quit)
- Utwórz plik
restart-apache.sh
i wprowadź jego odpowiednią zawartość. W tym celu w konsoli shell wpisz:
Bash:vi restart-apache.sh
Bash:#!/bin/sh OPTWARE_DIR=$(getcfg -f /etc/config/qpkg.conf Optware Install_Path) # log procedure log=$OPTWARE_DIR/root/apache/append-apache-conf.log log(){ /bin/echo "$(/bin/date '+%F %T.%3N') $1" >> $log } # log myself exec >> $log 2>&1 log "Restarting apache ..." /etc/init.d/Qthttpd.sh restart
i
(insert) - aby móc wprowadzić tekst- Kliknij prawym przyciskiem myszy w oknie edytora, aby wkleić powyższy tekst ze schowka
ESC
- aby zakończyć wprowadzanieShift
+:
- aby wydać komendęwq
- aby zapisać (write) i wyjść (quit)
- Z konsoli na szybko utwórz kolejny plik:
Bash:echo -e '#!/bin/sh\n\n/usr/local/apache/bin/apache -t -f /etc/config/apache/apache.conf' > test-apache-conf.sh
- Następnie nadaj plikom
*.sh
prawa do uruchomienia:
Bash:chmod +x *.sh
- Edytuj plik
/etc/init.d/Optware.sh
:-
Bash:
mcedit /etc/init.d/Optware.sh
- Znajdź linię:
/bin/echo "Enable Optware/ipkg"
W tym celu naciśnijF7
i wpisz:Enable Optware
- wielkość liter może mieć znaczenie:
- Dodaj przed znalezioną linią:
Bash:
sh $QPKG_DIR/root/apache/append-apache-conf.sh
- Naciśnij
F2
i zapisz plik. Wyjść przyciskiemESC
-
- Sprawdź czy działa restartując Optware:
Bash:/etc/init.d/Optware.sh restart
W przypadku problemów, poprawność składni pliku konfiguracyjnego sprawdzisz poleceniem:
Bash:sh $(getcfg -f /etc/config/qpkg.conf Optware Install_Path)/root/apache/test-apache-conf.sh
- Panel zarządzania QTS powinien być już dostępny pod hostem http://qts.domena.pl na porcie 80
Przykłady:
Panel zarządzania systemem operacyjnym QTS - standardowo pracuje na porcie 8080.
Monitorix - instalowany automatycznie z najnowszą wersją paczki rtorrent - standardowo pracuje na porcie 6007.
Rtorrent-QNAP - standardowo pracuje na porcie 6009.
/share/CACHEDEV..._DATA/.qpkg/Optware/root/apache/apache-custom.conf
Kod:
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_http_module modules/mod_proxy_http.so
<VirtualHost *:80>
<Proxy *>
Order deny,allow
Allow from all
</Proxy>
ServerName qts.domena.pl
DocumentRoot "/share/Web/"
ProxyPass / http://localhost:8080/
ProxyPassReverse / http://localhost:8080/
</VirtualHost>
<VirtualHost *:80>
<Proxy *>
Order deny,allow
Allow from all
</Proxy>
ServerName rtorrent.domena.pl
DocumentRoot "/share/Web"
ProxyPass / http://localhost:6009/
ProxyPassReverse / http://localhost:6009/
</VirtualHost>
<VirtualHost *:80>
ProxyRequests Off
<Proxy>
Order deny,allow
Allow from all
</Proxy>
ServerName monitorix.domena.pl
DocumentRoot "/share/Web"
ProxyPass / http://localhost:6007/
ProxyPassReverse / http://localhost:6007/
ProxyPreserveHost On
</VirtualHost>