node
yum install g++ curl libssl-dev apa
wget http://nodejs.org/dist/v0.6.14/node-v0.6.14.tar.gz
./configure
make
make install
./configure --prefix=/usr/local/node
hellowowrld.js
console.log('hello world');
node helloworld
require()
module.exports
[root@db02 src]# npm install nodemon -g
npm http GET https://registry.npmjs.org/nodemon
npm http 200 https://registry.npmjs.org/nodemon
npm http GET https://registry.npmjs.org/nodemon/-/nodemon-0.6.12.tgz
npm http 200 https://registry.npmjs.org/nodemon/-/nodemon-0.6.12.tgz
/usr/local/bin/nodemon -> /usr/local/lib/node_modules/nodemon/nodemon.js
nodemon@0.6.12 /usr/local/lib/node_modules/nodemon
[root@db02 src]# npm search twitter
익스프레스
expressjs.com
npm install -g express
npm install express jade
[root@db02 simpleweb]# pwd
/data/chapter-06/simpleweb
node app.js
nowjs
NowJS is a Node.js module. The client javascript (now.js) is served by the NowJS server.
NowJS 의 비밀은 두 개의 마술 주머니에서 비롯됩니다. 바로 now 와 everyone.now 입니다. now 객체는 클라이언트와 서버 사이에서 공유되는 마술 주머니입니다. 클라이언트는 now 객체에 변수와 함수들을 자유롭게 넣을 수 있고, 서버 또한 자유롭게 그것들에 접근할 수 있습니다. 물론 반대로도 가능합니다.
서버는 한 번에 수많은 클라이언트 연결을 가질 수 있습니다. 이는 바꿔 말하면 한 번에 수많은 마술주머니를 관리해야 한다는 뜻입니다. 그것이 바로 everyone.now 라는 또다른 마술 주머니를 서버가 가지고 있는 이유입니다. 서버가 everyone.now 에 어떤 변수를 추가하거나 변경하게 되면 모든 클라이언트 각각의 now 가 함께 변경됩니다.
설치
npm install -g now
간단한 테스트.
[root@db02 data]# node /data/node_modules/now/examples/helloworld_example/helloworld_server.js
아래의 내용을 보면 더 좋다.
http://nowjs.com/guide
체팅 예제.
https://github.com/downloads/Flotype/now/chat-example.tgz
Calipso
http://calip.so/quickstart-install-calipso.html
https://github.com/cliftonc/calipso
nowjs-chat
https://github.com/liamcurry/nowjs-chat
nodeChat
https://github.com/ztaccardi/nodeChat
apache 설정
#### 1. directory make & install & download
mkdir /app/src
cd /app/src
yum install wget make sendmail
yum -y install gcc gcc-c++ compat-gcc-34-g77 flex openssl* termcap libtermcap libtermcap-devel gdbm-devel gd* php-gd zlib* pam* curl* pid* libiconv libmcrypt* libmhash libxml* freetype* ncurses* libpng* libjpeg* bzip2-devel openldap-devel libc-client-devel php5-dev bison libtool
wget http://192.168.0.1/src/httpd-2.2.17.tar.gz
wget http://192.168.0.1/src/php-5.2.14.tar.gz
wget http://192.168.0.1/src/mysql-5.1.51.tar.gz
wget http://192.168.0.1/src/cronolog-1.6.2.tar.gz
wget http://192.168.0.1/src/ZendOptimizer-3.3.3-linux-glibc23-x86_64.tar.gz
wget http://caos.kldp.net/frs/download.php/4855/mod_url-apache2-1.15.tar.gz2
wget http://www.sqlite.org/cvstrac/getfile/sqlite/tool/lemon.c
gcc -o lemon lemon.c
mv lemon /usr/loca/bin/
#### 2. httpd-2.2.17
cd /app/src
tar xvzf httpd-2.2.17.tar.gz
cd /app/src/httpd-2.2.17
./configure --prefix=/app/apache --enable-rule=SHARED_CORE --enable-modules=all --enable-mods-shared=most --enable-so --enable-ssl --with-mpm=worker
make
make install
cp -f /app/apache/bin/apachectl /etc/rc.d/init.d/httpd
ln -s /etc/rc.d/init.d/httpd /etc/rc.d/rc3.d/S99httpd
#### mod_url설치.
cd /app/src
tar xvf mod_url-apache2-1.15.tar.gz2
/app/apache/bin/apxs -aic mod_url-apache2/mod_url.c
echo '<IfModule mod_url.c>' >> /app/apache/conf/httpd.conf
echo 'CheckURL On' >> /app/apache/conf/httpd.conf
echo '</IfModule>' >> /app/apache/conf/httpd.conf
#### cronolog 설치.
cd /app/src
tar xvzf cronolog-1.6.2.tar.gz
cd cronolog-1.6.2
./configure --prefix=/app/cronolog
make
make install
#### 3. mysql client 설치.
cd /app/src/
tar xvzf mysql-5.1.51.tar.gz
cd mysql-5.1.51
./configure --prefix=/app/mysql --enable-thread-safe-client --with-charset=utf8 --without-server --without-docs --without-man
make
make install
#### 4. PHP 설치.
cd /app/src
tar xvzf php-5.2.14.tar.gz
cd php-5.2.14
./configure --prefix=/app/php --with-apxs2=/app/apache/bin/apxs --with-mysql=/app/mysql --with-mysqli=/app/mysql/bin/mysql_config --with-config-file-path=/app/apache/conf --with-gd --enable-magic-quotes --enable-ftp --enable-sockets --with-zlib --with-png-dir --with-jpeg-dir --with-freetype-dir --disable-debug --with-freetype-dir --with-libxml-dir=/usr/lib --with-curl --enable-mbstring --enable-exif --with-iconv --with-openssl --enable-soap --with-mcrypt
make
make install
cp /app/src/php-5.2.14/php.ini-dist /app/apache/conf/php.ini
vi /app/apache/conf/httpd.conf
## 1. DirectoryIndex index.html 옆에 index.php 추가.
## 2. #AddOutputFilter INCLUDES .shtml 밑에 아래 추가.
AddType application/x-httpd-php .php .htm .html
AddType application/x-httpd-php-source .phps
echo '<?phpinfo();?>' > /app/apache/htdocs/index.php
#### 4.1 Zend 설치.
cd /app/src
tar xvzf ZendOptimizer-3.3.3-linux-glibc23-x86_64.tar.gz
sh /app/src/ZendOptimizer-3.3.3-linux-glibc23-x86_64/install.sh
# /app/Zend
# /app/apache/conf
# /app/apache/bin/apachectl
#### 압축 설정
vi /app/apache/conf/httpd.conf
<IfModule mod_deflate.c>
AddOutputFilterByType DEFLATE text/plain text/html text/xml
AddOutputFilterByType DEFLATE application/xhtml+xml application/xml application/rss+xml
AddOutputFilterByType DEFLATE text/css application/javascript application/x-javascript
AddOutputFilterByType DEFLATE audio/midi
DeflateCompressionLevel 1
BrowserMatch ^Mozilla/4 gzip-only-text/html
BrowserMatch ^Mozilla/4\.0[678] no-gzip
BrowserMatch \bMSIE !no-gzip !gzip-only-text/html
</ifModule>
#### vhost 아래 내용은 test.com으로 오는 놈을 www.test.com으로 변경하는 작업이다.
<VirtualHost *:80>
ServerAdmin nerd@naver.com
DocumentRoot "/data/apache/www/"
ServerName test.com
RedirectMatch /(.*)$ http://www.test.com/$1
ErrorLog "|/app/cronolog/sbin/cronolog /data/logs/www-redirect-error_%Y%m%d.log"
CustomLog "|/app/cronolog/sbin/cronolog /data/logs/www-redirect-access_%Y%m%d.log" common
<Directory />
Options FollowSymLinks
AllowOverride All
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
<VirtualHost *:80>
ServerAdmin nerd@freebee.kr
DocumentRoot "/data/apache/www/"
ServerName www.azubu.com
ErrorLog "|/app/cronolog/sbin/cronolog /data/logs/www-error_%Y%m%d.log"
CustomLog "|/app/cronolog/sbin/cronolog /data/logs/www-access_%Y%m%d.log" common
<Directory />
Options FollowSymLinks
AllowOverride All
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
# vi 아파치 경로/server/mpm/worker/worker.c
[EDITOR]#define DEFAULT_SERVER_LIMIT 16 을
[EDITOR]#define DEFAULT_SERVER_LIMIT 20 으로 수정
저장하고 아웃 하셔야 합니다.
KeepAlive On
KeepAliveTimeout 2
Timeout 30
ServerLimit 20 --> 서버 갯수를 설정합니다.
StartServers 20 --> 아파치를 처음 시작할때 생성하는 서버 갯수입니다.
MaxClients 1280 --> ThreadsPerChild * StartServers 값입니다.
ThreadsPerChild 64 --> 서버 하나가 만들어 낼수 있는 쓰레드 갯수입니다. 최대 64개 입니다.
MinSpareThreads 64 --> 서버 하나가 만들어 낼수 있는 쓰레드의 최소 갯수입니다. 보통은 ThreadsPerChild 와 맞추어 줍니다.
MaxSpareThreads 1280 --> 시스템 전체에서 만들어 낼수 있는 쓰레드 갯수의 최대치 입니다.
ThreadsPerChild(64) * StartServers(20) 값이며, 보통 MaxClients 와 맞추어 줍니다.
MaxRequestsPerChild 0 --> 서버 하나가 만들어 내는 접속의 최대치 입니다. 0 일경우 무한대 이며, 숫자를 적으면 그 숫자만큼 접속되고 나면 서버를 죽였다 살립니다.
ServerLimit 20
StartServers 20
MaxClients 1280
MinSpareThreads 64
MaxSpareThreads 1280
ThreadsPerChild 64
MaxRequestsPerChild 0