Getting the URLs right when proxying to apache and mongrel
marc
gmane at auxbuss.com
Sun Sep 2 18:32:25 MSD 2007
Hi,
I'm testing nginx by putting it in front of an existing Apache server,
and also using it to serve rails via mongrel.
This works okay, mostly, but for a couple of things:
1. When I proxy to Apache (on port 81) the URLs are written showing the
port, e.g.
http://mote:81/Main/Software
I'd like not not to see the port number, if possible,
I tried using
upstream apache {
server mote:81;
}
and
location / {
proxy_pass http://apache;
}
but that resulted in URLs of the form: http://apache/...
2. The url required to access the rails app fails without the trailing
slash. So,
http://mote/rails/
works, but the following doesn't
http://mote/rails
I'd like the latter to work, if possible,
I've added my conf file below for reference.
--
Cheers,
Marc
user www-data;
worker_processes 1;
error_log /var/log/nginx/error.log;
pid /var/run/nginx.pid;
events {
worker_connections 1024;
}
http {
include /etc/nginx/mime.types;
default_type application/octet-stream;
access_log /var/log/nginx/access.log;
sendfile on;
keepalive_timeout 65;
tcp_nodelay on;
gzip on;
gzip_min_length 1100;
gzip_buffers 4 8k;
gzip_types text/plain;
upstream mongrel {
server 127.0.0.1:8000;
server 127.0.0.1:8001;
}
server {
listen 80;
server_name mote;
access_log /var/log/nginx/localhost.access.log;
root /var/www;
index index.html index.htm;
location / {
proxy_pass http://mote:81;
}
location ^~ /rails {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_redirect false;
if (!-f $request_filename) {
root /home/marc/rails/mrctest/public;
rewrite ^/rails(.*) $1;
proxy_pass http://mongrel;
break;
}
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /var/www/nginx-default;
}
}
}
More information about the nginx
mailing list