How to setup mongrel cluster setup on fedora

First install the following gems:
#su
#gem install mongrel
#gem install mongrel_cluster
#cd project_name
#mongrel_rails cluster::configure -e production -p 3000 -N 3 -c /home/purab/project_name -a 127.0.0.1 —-prefix /project_name
# mongrel_rails cluster::start

You are able to start your applicaton at http://127.0.0.1:3000, http://127.0.0.1:3001 and http://127.0.0.1:3002

for all the cluster
# mongrel_rails cluster::stop

Advanced prepairation for production realeaze
$ mkdir /etc/mongrel_cluster

#vim /etc/mongrel_cluster/project_name.yml
copy and paste following text;
user: project_name
cwd: //home/purab/project_name
log_file: /home/purab/project_name/mongrel.log
port: “3000”
environment: production
group: dev
address: localhost
pid_file: /home/purab/project_name/tmp/pids/mongrel.pid
servers: 3

or you can run the following command

or copy and paste the content from config/mongrel_cluster.yml file to /etc/mongrel_cluster/project_name.yml

# ln -s /home/purab/project_name/config/mongrel_cluster.yml /etc/mongrel_cluster/project_name.yml

Then open your httpd.conf file for apache configration:

<Proxy balancer://project_name>
BalancerMember http://127.0.0.1:3000
BalancerMember http://127.0.0.1:3001
BalancerMember http://127.0.0.1:3002
</Proxy>

<VirtualHost *:80>
ProxyPreserveHost On
# Avoid open you server to proxying
ProxyRequests Off
# Options +FollowSymLinks
RewriteEngine On

RewriteRule ^/(images|stylesheet|javascript|html)/?(.*) /home/purab/project_name/public/$0 [L]
ServerAdmin purab@yahoo.co.in
DocumentRoot /home/project_name/
ServerName example.com
RewriteRule  ^/(.*)$  balancer://project_name%{REQUEST_URI} [P,QSA,L]
</VirtualHost>

Restart the apache server
#/etc/init.d/httpd restart

Command for restart the mongrel servers from any where
# mongrel_rails cluster::restart -C /etc/mongrel_cluster/project_name.yml

Advertisements

Solved: Access denied with code 400 (phase 2).

When I restarted my apache server. I am using the fedora 9 here.

I did not get my default page opened in browser.
When I opened the apache error log file. I saw following error.

ModSecurity: Access denied with code 400 (phase 2). Pattern match “%0[ad]” at REQUEST_HEADERS:Cookie. [id “950910”] [msg “HTTP Response Splitting Attack. Matched signature <%0a>”] [severity “ALERT”] [hostname “localhost”] [uri “/”] [unique_id “SuWoGH8AAAEAAFF3rKEAAAAA”]

I after doing some R&D but I did not got any perfect soluction.
Then I cleared the whole browser cookies. That solves my problem.

solution – clear the browser cookies…

get time difference in minutes

I created javascript function named “getTheDiffTime” using that function you will be able to fetch the time difference in various format.

function getTheDiffTime(dateone, datetwo,format){
//format = “Days”, Hours, Minutes, Seconds
if(dateone > datetwo) {
var seconds = dateone.getTime() – datetwo.getTime();
} else {
var seconds = datetwo.getTime() – dateone.getTime();
}
var second = 1000, minute = 60 * second, hour = 60 * minute, day = 24 * hour;
if(format==”Days”){
var rformat = Math.floor(seconds / day);
seconds -= rformat * day;
//alert(“days: “+rformat);
}else if(format==”Hours”){
// find the hours
rformat = translate(seconds / hour);
//alert(“hours: “+rformat);
}else if (format==”Minutes”){
//find the mintues
rformat= translate(seconds / minute);
//alert(“minutes: “+ rformat);
}else if(format==”Seconds”){
//find the seconds
rformat = translate(seconds / second);
//alert(“seconds: “+rformat);
}

return rformat
//alert(rformat);

}

How to use this function here I am giving you the one good example.

I am going to get the current months minutes using this function.

//for calculating the current month in mintue -script
currentMonth = new Date();
plus_oneMonth = new Date();
plus_oneMonth.setMonth(plus_oneMonth.getMonth()+1);

getTheDiffTime(plus_oneMonth,currentMonth,”Minutes”);

You will get return the minutes.

clean url with html file

We have site in plain html file and some time we want to use clean URLs or Pretty URLs for our site.
Clean URLs are in demand becasue of Seach Engine Optimiztion.

You can achive the Clean URLs. With not doing rework of building site.

Requirement:
Apache Server.
mod_rewrite engine need to on.

Create .htaccess file
and copy paste the following lines

Options +FollowSymLinks
RewriteEngine On

RewriteCond %{SCRIPT_FILENAME} !-d
RewriteCond %{SCRIPT_FILENAME} !-f

#code for About us Page
RewriteRule ^about-us(\d+)*$ ./about.html$1

Put this file into your root folder.

What this will do?

For example I want

http://www.example.com/about.html to look like http://www.example.com/about-us/