FastCGI (fcgi)
Interfejs programistyczny zwiększający szybkość oraz zapewniający lepszą skalowalność aplikacji internetowych
opartych o technologię CGI (Common Gateway Interface).
Zasada działania polega na tym, że w odróżnieniu od CGI, gdzie dla każdego zapytania uruchamiany był od nowa skrypt,
który po jego obsłużeniu kończył pracę, tu mamy jeden proces (lub wiele procesów) pracujący w sposób ciągły. Po
obsłużeniu zapytania oczekują one na kolejne, nie kończąc pracy.
Proxy
Serwer pośredniczący (ang. proxy) - oprogramowanie lub serwer z odpowiednim oprogramowaniem, które dokonuje pewnych
operacji w imieniu użytkownika. Użytkownik zleca pośrednikowi zadania za pomocą odpowiedniego klienta.
W wypadku usług FTP i HTTP jest to klient FTP i przeglądarka internetowa.
Obok tych popularnych rozwiązań znane są także inne, jak np. pośredniki (proxy) aplikacyjne, transferujące zapytania aplikacji,
w istocie pełni ono funkcję oprogramowania pośredniczącego i realizuje "trasowanie zależne od danych".
Apache
Apache jest najszerzej stosowanym serwerem HTTP w Internecie. Jego cechy i obsługiwane moduły:
Lighttpd
Lighttpd (wym. lighty) to lekki serwer HTTP przeznaczony do pracy pod dużym obciążeniem. Potrafi współpracować z interpreterami różnych
języków skryptowych (PHP, Ruby, Python itd.). W przeciwieństwie do Apache'a, nie ma tutaj modułów serwera, lecz cała komunikacja odbywa
się tylko i wyłącznie za pośrednictwem CGI lub FastCGI.
Interpreter pracuje tutaj jako osobny proces, który komunikuje się z serwerem za pośrednictwem protokołu TCP lub socketów.
Ponadto możliwe jest wykonywanie skryptów na prawach ich właścicieli.
SSL
SSL (Secure Socket Layer) jest protokołem typu klient-serwer pozwalającym na nawiązanie bezpiecznego połączenia z użyciem certyfikatów. Jest on zorientowany głównie na uwierzytelnianie serwera (np. sklepu internetowego, do którego klient wysyła numer karty kredytowej i chce mieć pewność co do odbiorcy), ale przewiduje również możliwość autoryzacji klienta.
./madarmobile -d -fcgi PORT 2000
Wpisanie polecenia spowoduje, że program będzie działał jako deamon (praca w tle), przełącza się w tryb Fastcgi i będzie słuchał na porcie 2000. Jeżeli nie zostanie podany parametr PORT - program domyślnie uruchomi się na porcie 8001. Istnieje możliwość uruchomienia aplikacji na porcie 80 - czytaj więcej...
## read proxy.txt for more info w katalogu proxy
proxy.debug = 1
proxy.server = ( "/proxy/" =>
( "localhost" =>
(
"host" => "127.0.0.1",
"port" => 8001
)
)
)
<"VirtualHost :80">
ServerName invoicer.pl
DocumentRoot /var/www/invoicer.pl/htdocs
Dopisać rekord:
FastCgiExternalServer /var/www/invoicer.pl/htdocs/mobile -host 127.0.0.1:2000
<"/VirtualHost">
./madarmobile ## uruchomienie programu
./madarmobile -d ## uruchomienie programu jako deamon'a
./madarmobile -d PORT 8004 ## uruchomienie programu jako deamon'a na porcie 8004
./madarmobile -ssl ## uruchomienie aplikacji na SSL
./madarmobile -fcgi ## uruchomiemie programu na fcgi
./config
make
make install ## wykonać jako root
edit /usr/local/ssl/misc/CA.sh
-out ${CATOP}/$CACERT $DAYS ## zmienić na:
-out ${CATOP}/$CACERT -days 1024
openssl genrsa -des3 -out cert.key 1024 ## Wpisać dane jednostki certyfikującej
openssl req -new -key cert.key -out CAcert.csr
openssl rsa -in cert.key -out WSSkey.key ## Jako'Common Name (eg, Your Name):' wpisać adres strony, dla której jest tworzony certyfikat
openssl req -new -x509 -days 1024 -key cert.key -out WSScert.crt
./madarmobile -ssl
apt-get install libssl0.9.8 ## instalacja
## oraz dodać linkowania
n -s /usr/lib/libssl.so.0.9.8 /usr/lib/libssl.so
ln -s /usr/lib/libcrypto.so.0.9.8 /usr/lib/libcrypto.so.
<"Virtual Host *:443">
ServerName invoicer.pl
DocumentRoot /var/www/invoicer.pl/https
FastCgiExternalServer /var/www/invoicer.pl/https/mobile -host 127.0.0.1:2000
SSLEngine on
SSLCertificateFile /etc/apache/ssl/nazwa-certyfikatu.crt
SSLCertificateKeyFile /etc/apache/ssl/nazwa-klucza.key
<"/VirtualHost">
#!/bin/bash
echo kill mobile $(date) >>mob.log
pid=`ps ax | awk '($5 ~ /madarmobile/) { print $1 }'`
echo $pid
echo try terminate
kill -15 $pid
sleep 2
echo $pid >>mob.log
kill -9 $pid
cd /opt/madar/
echo $date
echo $(date) >> mob.log
./madarmobile -d PORT 8001 >>mob.log && echo start mobilka >> mob.log
#!/bin/bash
cd /bat
./mobile_stop
cd /opt/madar/bak
cp -f /opt/madar/bak/madarmobile.1 /opt/madar/bak/madarmobile.2 || echo "zle kopiowanie do madarmobile.2"
cp -f /opt/madar/bak/madarmobile /opt/madar/bak/madarmobile.1 || echo "zle kopiowanie do madarmobile.1"
rm /opt/madar/bak/madarmobile && echo "skasowano bak madarmobile"
wget emadar.eu/demo/madarmobile || exit
cd /bat
sleep 30
cp -f /opt/madar/bak/madarmobile /opt/madar/madarmobile
chmod 755 /opt/madar/madarmobile && echo "zmiana chmod madarmobile"
sleep 20
cd /bat
./mobile_start
Ubuntu x64 przy próbie uruchomienia madarmobile pojawia się komunikat:
nie ma takiego pliku
konieczne doinstalowanie pakietów ia32-libs - sudo apt-get install ia32-libs