# Issue with Virtual Hosting with FastCGI

**URL:** <https://www.ruby-forum.com/t/issue-with-virtual-hosting-with-fastcgi/140631>\
**Category:** NGINX\
**Created:** [June 16, 2008, 10:59pm UTC](https://www.ruby-forum.com/t/issue-with-virtual-hosting-with-fastcgi/140631 "2008-06-16T22:59:28Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![unknown](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/u/4bbf92/32.png) [@unknown](https://www.ruby-forum.com/u/unknown)\
**Post date:** [June 16, 2008, 10:59pm UTC](https://www.ruby-forum.com/t/issue-with-virtual-hosting-with-fastcgi/140631/1 "2008-06-16T22:59:28Z")

</div>

I’ve been trying to setup virtual hosting for few blog sites using the  
wordpress clean urls and fastcgi. The 1st vhost comes up but when i call  
the other address it goes to the 1st vhost so not sure if its syntax  
issue  
here’s copy of my config… If someone could point out where my syntax  
maybe  
incorrect.

user nobody;  
worker\_processes 8;

#error\_log logs/error.log;  
#error\_log logs/error.log notice;  
#error\_log logs/error.log info;

pid logs/nginx.pid;

events {  
worker\_connections 1024;  
}

http {  
include conf/mime.types;  
default\_type application/octet-stream;

```
#log_format main '$remote_addr - $remote_user [$time_local] 

```

$request  
’  
# '“$status” $body\_bytes\_sent “$http\_referer” ’  
# ‘“$http\_user\_agent” “$http\_x\_forwarded\_for”’;

```
#access_log logs/access.log main;

sendfile on;
tcp_nopush on;

```

server\_names\_hash\_bucket\_size 128;  
#keepalive\_timeout 0;  
keepalive\_timeout 15;

```
gzip on;

server {
    listen 80;
    server_name hottestgirlsofmyspace.net;
    location / {
        root /home/brocklanders/hottestgirlsofmyspace.net;
        index index.php;

```

if (!-e $request\_filename) {  
rewrite ^(._)$ /index.php?q=$1 last;  
break;  
}  
location ~ .php$ {  
fastcgi\_pass localhost:9999;  
fastcgi\_index index.php;  
fastcgi\_param SCRIPT\_NAME $fastcgi\_script\_name;  
fastcgi\_param REQUEST\_URI $request\_uri;  
fastcgi\_param DOCUMENT\_URI $document\_uri;  
fastcgi\_param DOCUMENT\_ROOT $document\_root;  
fastcgi\_param REMOTE\_ADDR $remote\_addr;  
fastcgi\_param REMOTE\_PORT $remote\_port;  
fastcgi\_param SERVER\_ADDR $server\_addr;  
fastcgi\_param SERVER\_PORT $server\_port;  
fastcgi\_param SERVER\_NAME $server\_name;  
fastcgi\_param SCRIPT\_FILENAME  
/home/brocklanders/hottestgirlsofmyspace.net$fastcgi\_script\_name;  
fastcgi\_param QUERY\_STRING $query\_string;  
fastcgi\_param REQUEST\_METHOD $request\_method;  
fastcgi\_param CONTENT\_TYPE $content\_type;  
fastcgi\_param CONTENT\_LENGTH $content\_length;  
}  
}  
}  
}  
server {  
listen 80;  
server\_name [drunkestpartygirls.com](http://drunkestpartygirls.com);  
location / {  
root /home/brocklanders/drunkestpartygirls.com;  
index index.php;  
if (!-e $request\_filename) {  
rewrite ^(._)$ /index.php?q=$1 last;  
break;  
}  
location ~ .php$ {  
fastcgi\_pass localhost:9999;  
fastcgi\_index index.php;  
fastcgi\_param SCRIPT\_NAME $fastcgi\_script\_name;  
fastcgi\_param REQUEST\_URI $request\_uri;  
fastcgi\_param DOCUMENT\_URI $document\_uri;  
fastcgi\_param DOCUMENT\_ROOT $document\_root;  
fastcgi\_param REMOTE\_ADDR $remote\_addr;  
fastcgi\_param REMOTE\_PORT $remote\_port;  
fastcgi\_param SERVER\_ADDR $server\_addr;  
fastcgi\_param SERVER\_PORT $server\_port;  
fastcgi\_param SERVER\_NAME $server\_name;  
fastcgi\_param SCRIPT\_FILENAME  
/home/brocklanders/drunkestpartygirls.com$fastcgi\_script\_name;  
fastcgi\_param QUERY\_STRING $query\_string;  
fastcgi\_param REQUEST\_METHOD $request\_method;  
fastcgi\_param CONTENT\_TYPE $content\_type;  
fastcgi\_param CONTENT\_LENGTH $content\_length;  
}  
}  
}  
}  
server {  
listen 80;  
server\_name [hottestgirlsofspringbreak.com](http://hottestgirlsofspringbreak.com);  
location / {  
root /home/brocklanders/hottestgirlsofspringbreak.com;  
index index.php;  
if (!-e $request\_filename) {  
rewrite ^(._)$ /index.php?q=$1 last;  
break;  
}  
location ~ .php$ {  
fastcgi\_pass localhost:9999;  
fastcgi\_index index.php;  
fastcgi\_param SCRIPT\_NAME $fastcgi\_script\_name;  
fastcgi\_param REQUEST\_URI $request\_uri;  
fastcgi\_param DOCUMENT\_URI $document\_uri;  
fastcgi\_param DOCUMENT\_ROOT $document\_root;  
fastcgi\_param REMOTE\_ADDR $remote\_addr;  
fastcgi\_param REMOTE\_PORT $remote\_port;  
fastcgi\_param SERVER\_ADDR $server\_addr;  
fastcgi\_param SERVER\_PORT $server\_port;  
fastcgi\_param SERVER\_NAME $server\_name;  
fastcgi\_param SCRIPT\_FILENAME  
/home/brocklanders/hottestgirlsofspringbreak.com$fastcgi\_script\_name;  
fastcgi\_param QUERY\_STRING $query\_string;  
fastcgi\_param REQUEST\_METHOD $request\_method;  
fastcgi\_param CONTENT\_TYPE $content\_type;  
fastcgi\_param CONTENT\_LENGTH $content\_length;  
}  
}  
}  
}  
server {  
listen 80;  
server\_name [weratevacations.com](http://weratevacations.com);  
location / {  
root /home/brocklanders/weratevacations.com;  
index index.php;  
if (!-e $request\_filename) {  
rewrite ^(._)$ /index.php?q=$1 last;  
break;  
}  
location ~ .php$ {  
fastcgi\_pass localhost:9999;  
fastcgi\_index index.php;  
fastcgi\_param SCRIPT\_NAME $fastcgi\_script\_name;  
fastcgi\_param REQUEST\_URI $request\_uri;  
fastcgi\_param DOCUMENT\_URI $document\_uri;  
fastcgi\_param DOCUMENT\_ROOT $document\_root;  
fastcgi\_param REMOTE\_ADDR $remote\_addr;  
fastcgi\_param REMOTE\_PORT $remote\_port;  
fastcgi\_param SERVER\_ADDR $server\_addr;  
fastcgi\_param SERVER\_PORT $server\_port;  
fastcgi\_param SERVER\_NAME $server\_name;  
fastcgi\_param SCRIPT\_FILENAME  
/home/brocklanders/weratevacations.com$fastcgi\_script\_name;  
fastcgi\_param QUERY\_STRING $query\_string;  
fastcgi\_param REQUEST\_METHOD $request\_method;  
fastcgi\_param CONTENT\_TYPE $content\_type;  
fastcgi\_param CONTENT\_LENGTH $content\_length;  
}  
}  
}  
}  
server {  
listen 80;  
server\_name [hottestflickrgirls.com](http://hottestflickrgirls.com);  
location / {  
root /home/brocklanders/hottestflickrgirls.com;  
index index.php;  
if (!-e $request\_filename) {  
rewrite ^(._)$ /index.php?q=$1 last;  
break;  
}  
location ~ .php$ {  
fastcgi\_pass localhost:9999;  
fastcgi\_index index.php;  
fastcgi\_param SCRIPT\_NAME $fastcgi\_script\_name;  
fastcgi\_param REQUEST\_URI $request\_uri;  
fastcgi\_param DOCUMENT\_URI $document\_uri;  
fastcgi\_param DOCUMENT\_ROOT $document\_root;  
fastcgi\_param REMOTE\_ADDR $remote\_addr;  
fastcgi\_param REMOTE\_PORT $remote\_port;  
fastcgi\_param SERVER\_ADDR $server\_addr;  
fastcgi\_param SERVER\_PORT $server\_port;  
fastcgi\_param SERVER\_NAME $server\_name;  
fastcgi\_param SCRIPT\_FILENAME  
/home/brocklanders/hottestflickrgirls.com$fastcgi\_script\_name;  
fastcgi\_param QUERY\_STRING $query\_string;  
fastcgi\_param REQUEST\_METHOD $request\_method;  
fastcgi\_param CONTENT\_TYPE $content\_type;  
fastcgi\_param CONTENT\_LENGTH $content\_length;  
}  
}  
}  
}  
server {  
listen 80;  
server\_name [hottestgirlsofnightclubs.com](http://hottestgirlsofnightclubs.com);  
location / {  
root /home/brocklanders/hottestgirlsofnightclubs.com;  
index index.php;  
if (!-e $request\_filename) {  
rewrite ^(._)$ /index.php?q=$1 last;  
break;  
}  
location ~ .php$ {  
fastcgi\_pass localhost:9999;  
fastcgi\_index index.php;  
fastcgi\_param SCRIPT\_NAME $fastcgi\_script\_name;  
fastcgi\_param REQUEST\_URI $request\_uri;  
fastcgi\_param DOCUMENT\_URI $document\_uri;  
fastcgi\_param DOCUMENT\_ROOT $document\_root;  
fastcgi\_param REMOTE\_ADDR $remote\_addr;  
fastcgi\_param REMOTE\_PORT $remote\_port;  
fastcgi\_param SERVER\_ADDR $server\_addr;  
fastcgi\_param SERVER\_PORT $server\_port;  
fastcgi\_param SERVER\_NAME $server\_name;  
fastcgi\_param SCRIPT\_FILENAME  
/home/brocklanders/hottestgirlsofnightclubs.com$fastcgi\_script\_name;  
fastcgi\_param QUERY\_STRING $query\_string;  
fastcgi\_param REQUEST\_METHOD $request\_method;  
fastcgi\_param CONTENT\_TYPE $content\_type;  
fastcgi\_param CONTENT\_LENGTH $content\_length;  
}  
}  
}  
}  
server {  
listen 80;  
server\_name [sexualaddictionresources.com](http://sexualaddictionresources.com);  
location / {  
root /home/brocklanders/sexualaddictionresources.com;  
index index.php;  
if (!-e $request\_filename) {  
rewrite ^(._)$ /index.php?q=$1 last;  
break;  
}  
location ~ .php$ {  
fastcgi\_pass localhost:9999;  
fastcgi\_index index.php;  
fastcgi\_param SCRIPT\_NAME $fastcgi\_script\_name;  
fastcgi\_param REQUEST\_URI $request\_uri;  
fastcgi\_param DOCUMENT\_URI $document\_uri;  
fastcgi\_param DOCUMENT\_ROOT $document\_root;  
fastcgi\_param REMOTE\_ADDR $remote\_addr;  
fastcgi\_param REMOTE\_PORT $remote\_port;  
fastcgi\_param SERVER\_ADDR $server\_addr;  
fastcgi\_param SERVER\_PORT $server\_port;  
fastcgi\_param SERVER\_NAME $server\_name;  
fastcgi\_param SCRIPT\_FILENAME  
/home/brocklanders/sexualaddictionresources.com$fastcgi\_script\_name;  
fastcgi\_param QUERY\_STRING $query\_string;  
fastcgi\_param REQUEST\_METHOD $request\_method;  
fastcgi\_param CONTENT\_TYPE $content\_type;  
fastcgi\_param CONTENT\_LENGTH $content\_length;  
}  
}  
}  
}  
server {  
listen 80;  
server\_name [hottestgirlsofcheerleading.com](http://hottestgirlsofcheerleading.com);  
location / {  
root /home/brocklanders/hottestgirlsofcheerleading.com;  
index index.php;  
if (!-e $request\_filename) {  
rewrite ^(._)$ /index.php?q=$1 last;  
break;  
}  
location ~ .php$ {  
fastcgi\_pass localhost:9999;  
fastcgi\_index index.php;  
fastcgi\_param SCRIPT\_NAME $fastcgi\_script\_name;  
fastcgi\_param REQUEST\_URI $request\_uri;  
fastcgi\_param DOCUMENT\_URI $document\_uri;  
fastcgi\_param DOCUMENT\_ROOT $document\_root;  
fastcgi\_param REMOTE\_ADDR $remote\_addr;  
fastcgi\_param REMOTE\_PORT $remote\_port;  
fastcgi\_param SERVER\_ADDR $server\_addr;  
fastcgi\_param SERVER\_PORT $server\_port;  
fastcgi\_param SERVER\_NAME $server\_name;  
fastcgi\_param SCRIPT\_FILENAME  
/home/brocklanders/hottestgirlsofcheerleading.com$fastcgi\_script\_name;  
fastcgi\_param QUERY\_STRING $query\_string;  
fastcgi\_param REQUEST\_METHOD $request\_method;  
fastcgi\_param CONTENT\_TYPE $content\_type;  
fastcgi\_param CONTENT\_LENGTH $content\_length;  
}  
}  
}  
}

server {  
listen 80;  
server\_name [hottestgirlsofsororities.com](http://hottestgirlsofsororities.com);  
location / {  
root /home/brocklanders/hottestgirlsofsororities.com;  
index index.php;  
if (!-e $request\_filename) {  
rewrite ^(._)$ /index.php?q=$1 last;  
break;  
}  
location ~ .php$ {  
fastcgi\_pass localhost:9999;  
fastcgi\_index index.php;  
fastcgi\_param SCRIPT\_NAME $fastcgi\_script\_name;  
fastcgi\_param REQUEST\_URI $request\_uri;  
fastcgi\_param DOCUMENT\_URI $document\_uri;  
fastcgi\_param DOCUMENT\_ROOT $document\_root;  
fastcgi\_param REMOTE\_ADDR $remote\_addr;  
fastcgi\_param REMOTE\_PORT $remote\_port;  
fastcgi\_param SERVER\_ADDR $server\_addr;  
fastcgi\_param SERVER\_PORT $server\_port;  
fastcgi\_param SERVER\_NAME $server\_name;  
fastcgi\_param SCRIPT\_FILENAME  
/home/brocklanders/hottestgirlsofsororities.com$fastcgi\_script\_name;  
fastcgi\_param QUERY\_STRING $query\_string;  
fastcgi\_param REQUEST\_METHOD $request\_method;  
fastcgi\_param CONTENT\_TYPE $content\_type;  
fastcgi\_param CONTENT\_LENGTH $content\_length;  
}  
}  
}  
}  
server {  
listen 80;  
server\_name [uncoached.com](http://uncoached.com);  
location / {  
root /home/brocklanders/uncoached.com;  
index index.php;  
if (!-e $request\_filename) {  
rewrite ^(._)$ /index.php?q=$1 last;  
break;  
}  
location ~ .php$ {  
fastcgi\_pass localhost:9999;  
fastcgi\_index index.php;  
fastcgi\_param SCRIPT\_NAME $fastcgi\_script\_name;  
fastcgi\_param REQUEST\_URI $request\_uri;  
fastcgi\_param DOCUMENT\_URI $document\_uri;  
fastcgi\_param DOCUMENT\_ROOT $document\_root;  
fastcgi\_param REMOTE\_ADDR $remote\_addr;  
fastcgi\_param REMOTE\_PORT $remote\_port;  
fastcgi\_param SERVER\_ADDR $server\_addr;  
fastcgi\_param SERVER\_PORT $server\_port;  
fastcgi\_param SERVER\_NAME $server\_name;  
fastcgi\_param SCRIPT\_FILENAME  
/home/brocklanders/uncoached.com$fastcgi\_script\_name;  
fastcgi\_param QUERY\_STRING $query\_string;  
fastcgi\_param REQUEST\_METHOD $request\_method;  
fastcgi\_param CONTENT\_TYPE $content\_type;  
fastcgi\_param CONTENT\_LENGTH $content\_length;  
}  
}  
}  
}

}

---

<div class="post-metadata">

**Author:** ![unknown](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/u/4bbf92/32.png) [@unknown](https://www.ruby-forum.com/u/unknown)\
**Post date:** [June 16, 2008, 11:30pm UTC](https://www.ruby-forum.com/t/issue-with-virtual-hosting-with-fastcgi/140631/2 "2008-06-16T23:30:42Z")

</div>

you can simplify the fastcgi stuff and put it in the global http  
section, i seem to have no issue:

http {

… etc …

```
    fastcgi_param QUERY_STRING $query_string;
    fastcgi_param REQUEST_METHOD $request_method;
    fastcgi_param CONTENT_TYPE $content_type;
    fastcgi_param CONTENT_LENGTH $content_length;
    fastcgi_param SCRIPT_FILENAME 

```

$document\_root$fastcgi\_script\_name;  
fastcgi\_param SCRIPT\_NAME $fastcgi\_script\_name;  
fastcgi\_param REQUEST\_URI $request\_uri;  
fastcgi\_param DOCUMENT\_URI $document\_uri;  
fastcgi\_param DOCUMENT\_ROOT $document\_root;  
fastcgi\_param SERVER\_PROTOCOL $server\_protocol;  
fastcgi\_param GATEWAY\_INTERFACE CGI/1.1;  
fastcgi\_param SERVER\_SOFTWARE nginx/$nginx\_version;  
fastcgi\_param REMOTE\_ADDR $remote\_addr;  
fastcgi\_param REMOTE\_PORT $remote\_port;  
fastcgi\_param SERVER\_ADDR $server\_addr;  
fastcgi\_param SERVER\_PORT $server\_port;  
fastcgi\_param SERVER\_NAME $http\_host;  
#fastcgi\_param SERVER\_NAME $server\_name;  
# PHP only, required if PHP was built with  
–enable-force-cgi-redirect  
#fastcgi\_param REDIRECT\_STATUS 200;  
fastcgi\_ignore\_client\_abort on;  
fastcgi\_buffers 32 8k;

… etc …

then inside of each vhost:

```
    server {
            listen 80;
            server_name domain.com www.domain.com;
            index index.php index.html;
            root /home/path/web/domain.com;
            location ~ .php$ {
                    fastcgi_pass 127.0.0.1:11003;
                    fastcgi_index index.php;
            }
    }

```

most people define SCRIPT\_FILENAME over and over and it can be done  
with a single line.

---

<div class="post-metadata">

**Author:** ![unknown](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/u/4bbf92/32.png) [@unknown](https://www.ruby-forum.com/u/unknown)\
**Post date:** [June 16, 2008, 11:34pm UTC](https://www.ruby-forum.com/t/issue-with-virtual-hosting-with-fastcgi/140631/3 "2008-06-16T23:34:47Z")

</div>

On Mon, 2008-06-16 at 16:50 -0400, removed\_email\_address@domain.invalid wrote:

> I’ve been trying to setup virtual hosting for few blog sites using the  
> wordpress clean urls and fastcgi. The 1st vhost comes up but when i call  
> the other address it goes to the 1st vhost so not sure if its syntax issue  
> here’s copy of my config… If someone could point out where my syntax maybe  
> incorrect.

You need to add “www” to your list of server names, eg:

server\_name [hottestgirlsofmyspace.net](http://hottestgirlsofmyspace.net) [www.hottestgirlsofmyspace.net](http://www.hottestgirlsofmyspace.net);

or you can use the wildcard syntax if your version of Nginx is new  
enough (don’t recall when this was added):

server\_name \*.ï»¿[hottestgirlsofmyspace.net](http://hottestgirlsofmyspace.net);

otherwise when a request for an unmatched domain comes in, it defaults  
to the first vhost.

Also, unless you have 8 cores on this box, having 8 worker processes  
probably doesn’t buy you anything, especially since you are forwarding  
all the requests to the same PHP handler on port 9999. You’d do much  
better with one nginx worker and 8 PHP processes.

Regards,  
Cliff

---

<div class="post-metadata">

**Author:** ![unknown](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/u/4bbf92/32.png) [@unknown](https://www.ruby-forum.com/u/unknown)\
**Post date:** [June 17, 2008, 1:17am UTC](https://www.ruby-forum.com/t/issue-with-virtual-hosting-with-fastcgi/140631/4 "2008-06-17T01:17:23Z")

</div>

Thank you Guys – i was missing the wildcard for www that fixed –  
thanks  
again…
