C jak configure

Październik 29, 2008

PgBouncer – PostgreSQL connection pooler

Filed under: konfiguracja — erendil @ 4:32 pm
Tags: , , ,

PgBouncer to niezła alternatywa dla pgpool’a. Jego głównym zadaniem jest odciążyć nieco naszego PostgreSQL’a zabijanego kolejnymi connect’ami. PgBouncer tworzy pulę połączeń do serwera bazy danych i wydajnie z niej korzysta. Dostępne są następujące tryby:

Session pooling -gdy klient się łączy, połączenie z serwerem zostanie przypisane do niego przez cały czas, po rozłączeniu wraca z powrotem do puli.

Transaction pooling – połączenie aktywne tylko podczas transakcji, po jej zakończeniu wraca.

Statement pooling – najbardziej agresywna metoda, połącznie wraca do puli natychmiast po wykonaniu kwerendy(generalnie nie polecana ;) )

Administracja PgBouncer‘em jest bardzo prosta i sprowadza się do kilku poleceń kiedy jesteśmy podłączeni do wirtualnej bazy PgBouncer‘a, ale o tym później.

Na początek zainstalujemy PgBouncer‘a, ściągamy źródła stąd: http://pgfoundry.org/projects/pgbouncer

Do prawidłowego zainstalowania w systemie potrzebujemy również libevent.

cd /usr/ports/devel/libevent
make
make install

Ok libevent siedzi na miejscu, teraz zróbmy sobie PgBouncer‘a:

Rozpakowujemy źródła i piszemy:

cd pgbouncer-1.2.3
./configure –with-libevent=/usr/local
gmake
gmake install

Teraz pora na przygotowanie plików konfiguracyjnych dla programu, potrzebne są 2, jeden plik dla PgBouncer‘a, drugi plik z userami i hasłami.

Prosta zawartość pierwszego z nich (/usr/local/etc/pgbouncer.ini):

[databases]
naszabaza = host=127.0.0.1 port=5432 dbname=naszabaza

[pgbouncer]
listen_port = 6543
listen_addr = 127.0.0.1
auth_type = plain
auth_file = /usr/local/etc/users.txt
logfile = /var/log/pgbouncer.log
pidfile = /tmp/pgbouncer.pid
admin_users = uzytkownik
max_client_conn = 300
default_pool_size = 200
pool_mode = session
server_connect_timeout = 300
client_login_timeout = 300

Oraz drugiego (/usr/local/etc/users.txt):

“uzytkownik” “haslo_uzytkownika”

Uwierzytelnianie użytkowników:

md5 – domyślnie stosowane
crypt – czyli crypt
plain – czysty tekst, czyli niezakodowane
trust – zaufany – brak autentykacji, ale plik users.txt musi zawierać nazwę użytkownika
any – j.w. plus nazwa użytkownika jest ignorowana, wymaga aby wszystkie bazy danych zostały skonfigurowane do logowania się jako konkretny użytkownik.
Do kodowania haseł można wykorzystać np. Apache’owy htpasswd.
OK, mamy zainstalowanego PgBouncer‘a, czas go uruchomić, robimy to za pomocą następującej komendy (jako user, a nie root ;) :
/usr/local/bin/pgbouncer -d /usr/local/etc/pgbouncer.ini
Konsola administracyjna:
psql -h 127.0.0.1 -p 6543 -U user pgbouncer

Po zalogowaniu poleceniem show help; zobaczymy liste dostępnych komend.

pgbouncer=# show help;
NOTICE:  Console usage
DETAIL:
SHOW [HELP|CONFIG|DATABASES|FDS|POOLS|CLIENTS|SERVERS|SOCKETS|LISTS|VERSION]
SET key = arg
RELOAD
PAUSE
SUSPEND
RESUME
SHUTDOWN

Kwiecień 18, 2008

instalacja bazy danych mysql na freebsd “z ręki”

Filed under: konfiguracja — erendil @ 3:57 pm
Tags: , , ,

Poniżej krótkie how-to instalacji serwera baz danych mysql. Jeśli nie potrzebne są logi to pomijamy stosowne fragmenty. Jeśli trzeba coś dodać to dodajemy ;)

Ściągamy źródła mysql’a z wiadomej strony, rozpakowujemy, dodajemy usera i grupe mysql:
pw groupadd mysql -g 88
pw useradd mysql -u 88 -g 88 -d /dev/null -s /sbin/nologin

Kompilujemy i konfigurujemy mysql’a:
./configure --prefix=/usr/local/mysql --enable-assembler --with-mysqld-ldflags=-all-static --with-extra-charsets=complex --with-innodb
make
make install
scripts/mysql_install_db
chown -R root:mysql /usr/local/mysql
chown -R mysql:mysql /usr/local/mysql/var
cp support-files/my-medium.cnf /etc/my.cnf
ln -s /usr/local/mysql/lib/mysql /usr/local/lib/mysql
touch /var/log/mysql.log
chown mysql:mysql /var/log/mysql.log
chmod o= /var/log/mysql.log
/usr/local/mysql/bin/mysqld_safe --user=mysql --log=/var/log/mysql.log &

Logujemy się z konsoli i zmieniamy hasło:
update user set password=PASSWORD('naszenowehaslo') where user='root';

Restart uprawnień:
/usr/local/mysql/bin/mysqladmin flush-privileges

Do /usr/local/etc/rc.d/naszstartowyconfig.sh dopisać:
/usr/local/mysql/bin/mysqld_safe --user=mysql --log=/var/log/mysql.log &

Kwiecień 17, 2008

opcje konfiguracyjne do serwera www nginx

Filed under: konfiguracja — erendil @ 12:56 pm
Tags: , ,

Opcje konfiguracyjne do nginxa

--prefix=PATH set the installation prefix
--sbin-path=PATH set path to the nginx binary file
--conf-path=PATH set path to the nginx.conf file
--error-log-path=PATH set path to the error log
--pid-path=PATH set path to nginx.pid file
--lock-path=PATH set path to nginx.lock file
--user=USER set non-privilege user for the worker processes
--group=GROUP set non-privilege group for the worker processes
--builddir=DIR set the build directory
--with-rtsig_module enable rtsig module
--with-select_module enable select module
--without-select_module disable select module
--with-poll_module enable poll module
--without-poll_module disable poll module
--with-http_ssl_module enable ngx_http_ssl_module
--with-http_realip_module enable ngx_http_realip_module
--with-http_addition_module enable ngx_http_addition_module
--with-http_sub_module enable ngx_http_sub_module
--with-http_dav_module enable ngx_http_dav_module
--with-http_flv_module enable ngx_http_flv_module
--with-http_stub_status_module enable ngx_http_stub_status_module
--without-http_charset_module disable ngx_http_charset_module
--without-http_gzip_module disable ngx_http_gzip_module
--without-http_ssi_module disable ngx_http_ssi_module
--without-http_userid_module disable ngx_http_userid_module
--without-http_access_module disable ngx_http_access_module
--without-http_auth_basic_module disable ngx_http_auth_basic_module
--without-http_autoindex_module disable ngx_http_autoindex_module
--without-http_geo_module disable ngx_http_geo_module
--without-http_map_module disable ngx_http_map_module
--without-http_referer_module disable ngx_http_referer_module
--without-http_rewrite_module disable ngx_http_rewrite_module
--without-http_proxy_module disable ngx_http_proxy_module
--without-http_fastcgi_module disable ngx_http_fastcgi_module
--without-http_memcached_module disable ngx_http_memcached_module
--without-http_limit_zone_module disable ngx_http_limit_zone_module
--without-http_empty_gif_module disable ngx_http_empty_gif_module
--without-http_browser_module disable ngx_http_browser_module
--without-http_upstream_ip_hash_module disable ngx_http_upstream_ip_hash_module
--with-http_perl_module enable ngx_http_perl_module
--with-perl_modules_path=PATH set path to the perl modules
--with-perl=PATH set path to the perl binary
--http-log-path=PATH set path to the http access log
--http-client-body-temp-path=PATH set path to the http client request body temporary files
--http-proxy-temp-path=PATH set path to the http proxy temporary files
--http-fastcgi-temp-path=PATH set path to the http fastcgi temporary files
--without-http disable HTTP server
--with-mail enable POP3/IMAP4/SMTP proxy module
--with-mail_ssl_module enable ngx_mail_ssl_module
--without-mail_pop3_module disable ngx_mail_pop3_module
--without-mail_imap_module disable ngx_mail_imap_module
--without-mail_smtp_module disable ngx_mail_smtp_module
--add-module=PATH enable an external module
--with-cc=PATH set path to C compiler
--with-cpp=PATH set path to C preprocessor
--with-cc-opt=OPTIONS set additional options for C compiler
--with-ld-opt=OPTIONS set additional options for linker
--with-cpu-opt=CPU build for specified CPU, the valid values: pentium, pentiumpro, pentium3, pentium4, athlon, opteron, sparc32, sparc64, ppc64
--without-pcre disable PCRE libarary usage
--with-pcre=DIR set path to PCRE library sources
--with-pcre-opt=OPTIONS set additional options for PCRE building
--with-md5=DIR set path to md5 library sources
--with-md5-opt=OPTIONS set additional options for md5 building
--with-md5-asm use md5 assembler sources
--with-sha1=DIR set path to sha1 library sources
--with-sha1-opt=OPTIONS set additional options for sha1 building
--with-sha1-asm use sha1 assembler sources
--with-zlib=DIR set path to zlib library sources
--with-zlib-opt=OPTIONS set additional options for zlib building
--with-zlib-asm=CPU use zlib assembler sources optimized for specified CPU, the valid values: pentium, pentiumpro
--with-openssl=DIR set path to OpenSSL library sources
--with-openssl-opt=OPTIONS set additional options for OpenSSL building
--with-debug enable the debugging logging

Theme: Rubric. Blog na WordPress.com.

Follow

Otrzymuj każdy nowy wpis na swoją skrzynkę e-mail.