# Upstream with fastcgi\_pass

**URL:** <https://www.ruby-forum.com/t/upstream-with-fastcgi-pass/204679>\
**Category:** NGINX\
**Created:** [March 18, 2011, 1:59pm UTC](https://www.ruby-forum.com/t/upstream-with-fastcgi-pass/204679 "2011-03-18T13:59:28Z")\
**Posts on this page:** 11\
**Page:** 1

<div class="post-metadata">

**Author:** ![luislavena](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/l/0ea827/32.png) [@luislavena](https://www.ruby-forum.com/u/luislavena)\
**Post date:** [March 18, 2011, 1:59pm UTC](https://www.ruby-forum.com/t/upstream-with-fastcgi-pass/204679/1 "2011-03-18T13:59:28Z")

</div>

I have a problem when use upstream,my config is like this(nginx  
version:0.8.54):

```
upstream www.a.com {
       server 10.249.200.76:9000;
       server 10.249.200.76:9001;
 }

server{

     .....

     location ~ \.php$ {
        root html;
        fastcgi_pass www.a.com;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME /var/www/$host

```

/$fastcgi\_script\_name;  
include fastcgi\_params;  
}  
}

```
and then can success to visit www.a.com;

but when "fastcgi_pass www.a.com;" relace by
"fastcgi_pass $host;", visit www.a.com is failed.

 I don't know why? can somebody know?

new config like this:

upstream www.a.com {
       server 10.249.200.76:9000;
       server 10.249.200.76:9001;
 }

server{

     .....

     location ~ \.php$ {
        root html;
        fastcgi_pass $host;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME /var/www/$host

```

/$fastcgi\_script\_name;  
include fastcgi\_params;  
}  
}

---

<div class="post-metadata">

**Author:** ![wangysh](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/w/839c29/32.png) [@wangysh](https://www.ruby-forum.com/u/wangysh)\
**Post date:** [March 20, 2011, 12:00pm UTC](https://www.ruby-forum.com/t/upstream-with-fastcgi-pass/204679/2 "2011-03-20T12:00:47Z")

</div>

Anybody know?

---

<div class="post-metadata">

**Author:** ![wangysh](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/w/839c29/32.png) [@wangysh](https://www.ruby-forum.com/u/wangysh)\
**Post date:** [March 20, 2011, 5:34pm UTC](https://www.ruby-forum.com/t/upstream-with-fastcgi-pass/204679/3 "2011-03-20T17:34:17Z")

</div>

Obviously it doesn’t support variables

Sent from my iPod

---

<div class="post-metadata">

**Author:** ![wangysh](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/w/839c29/32.png) [@wangysh](https://www.ruby-forum.com/u/wangysh)\
**Post date:** [April 3, 2011, 4:11am UTC](https://www.ruby-forum.com/t/upstream-with-fastcgi-pass/204679/4 "2011-04-03T04:11:33Z")

</div>

I am also interested in this functionality. It seems like this feature  
was included at some point. Look at this thread from 2008.

[http://nginx.org/pipermail/nginx/2008-December/008751.html](http://nginx.org/pipermail/nginx/2008-December/008751.html)

Posted at Nginx Forum:

> **[Re: upstream with fastcgi\_pass](https://forum.nginx.org/read.php?2,183712,187795#msg-187795)**
>
> I have a problem when use upstream,my config is like this(nginx version:0.8.54): upstream www.a.com { server 10.249.200.76:9000; server 10.249.200.76:9001; } server{ .....

---

<div class="post-metadata">

**Author:** ![wangysh](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/w/839c29/32.png) [@wangysh](https://www.ruby-forum.com/u/wangysh)\
**Post date:** [April 3, 2011, 4:14am UTC](https://www.ruby-forum.com/t/upstream-with-fastcgi-pass/204679/5 "2011-04-03T04:14:38Z")

</div>

Also found another one with a bug reported and fixed against that  
patch.

[http://web.archiveorange.com/archive/v/yKUXMz3KPVtsrCYTvFzI](http://web.archiveorange.com/archive/v/yKUXMz3KPVtsrCYTvFzI)

Posted at Nginx Forum:

> **[Re: upstream with fastcgi\_pass](https://forum.nginx.org/read.php?2,183712,187796#msg-187796)**
>
> I have a problem when use upstream,my config is like this(nginx version:0.8.54): upstream www.a.com { server 10.249.200.76:9000; server 10.249.200.76:9001; } server{ .....

---

<div class="post-metadata">

**Author:** ![wangysh](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/w/839c29/32.png) [@wangysh](https://www.ruby-forum.com/u/wangysh)\
**Post date:** [April 3, 2011, 9:23am UTC](https://www.ruby-forum.com/t/upstream-with-fastcgi-pass/204679/6 "2011-04-03T09:23:20Z")

</div>

Looks like the links I posted are about using variables in fastcgi\_pass  
directive for hostname or socket, not for upstream name.

When I tried similar configuration, I got “no port in upstream” error in  
log.

Posted at Nginx Forum:

> **[Re: upstream with fastcgi\_pass](https://forum.nginx.org/read.php?2,183712,187842#msg-187842)**
>
> I have a problem when use upstream,my config is like this(nginx version:0.8.54): upstream www.a.com { server 10.249.200.76:9000; server 10.249.200.76:9001; } server{ .....

---

<div class="post-metadata">

**Author:** ![wangysh](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/w/839c29/32.png) [@wangysh](https://www.ruby-forum.com/u/wangysh)\
**Post date:** [April 8, 2011, 5:26am UTC](https://www.ruby-forum.com/t/upstream-with-fastcgi-pass/204679/7 "2011-04-08T05:26:11Z")

</div>

I hook nginx code,than can resolve this problem,  
like this:

diff -uNr nginx-0.8.54-from/src/http/modules/ngx\_http\_fastcgi\_module.c  
nginx-0.8.54-to/src/http/modules/ngx\_http\_fastcgi\_module.c  
— nginx-0.8.54-from/src/http/modules/ngx\_http\_fastcgi\_module.c  
2010-08-03 21:35:48.000000000 +0800  
+++ nginx-0.8.54-to/src/http/modules/ngx\_http\_fastcgi\_module.c  
2011-04-06 15:05:43.000000000 +0800  
@@ -636,12 +636,12 @@  
return NGX\_ERROR;  
}

- if (url.no\_port) {

- /\* if (url.no\_port) {  
ngx\_log\_error(NGX\_LOG\_ERR, r-\>connection-\>log, 0,  
“no port in upstream “%V””, &url.url);  
return NGX\_ERROR;  
}

- 

+\*/  
u = r-\>upstream;

```
 u->resolved = ngx_pcalloc(r->pool, 

```

sizeof(ngx\_http\_upstream\_resolved\_t));

---

<div class="post-metadata">

**Author:** ![wangysh](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/w/839c29/32.png) [@wangysh](https://www.ruby-forum.com/u/wangysh)\
**Post date:** [March 21, 2011, 9:56am UTC](https://www.ruby-forum.com/t/upstream-with-fastcgi-pass/204679/8 "2011-03-21T09:56:54Z")

</div>

Just enable debug log, make your test and read log carefully. If you  
need assistance, drop here your full nginx config and debug log.

–  
Regards, Vitaly T.  
System A.  
U.S. +1 (206) 905-9939  
Russia +7 911 094-2035

---

<div class="post-metadata">

**Author:** ![wangysh](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/w/839c29/32.png) [@wangysh](https://www.ruby-forum.com/u/wangysh)\
**Post date:** [April 11, 2011, 7:34pm UTC](https://www.ruby-forum.com/t/upstream-with-fastcgi-pass/204679/9 "2011-04-11T19:34:24Z")

</div>

Thanks for the code. This seems to solve the problem.

Is this change safe for production? Is it possible that this change will  
break something else? Is it possible to include it in a future  
release/patch?

Thanks

Posted at Nginx Forum:

> **[Re: upstream with fastcgi\_pass](https://forum.nginx.org/read.php?2,183712,190231#msg-190231)**
>
> I have a problem when use upstream,my config is like this(nginx version:0.8.54): upstream www.a.com { server 10.249.200.76:9000; server 10.249.200.76:9001; } server{ .....

---

<div class="post-metadata">

**Author:** ![wangysh](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/w/839c29/32.png) [@wangysh](https://www.ruby-forum.com/u/wangysh)\
**Post date:** [April 11, 2011, 7:42pm UTC](https://www.ruby-forum.com/t/upstream-with-fastcgi-pass/204679/10 "2011-04-11T19:42:26Z")

</div>

On Mon, Apr 11, 2011 at 01:34:02PM -0400, msingla wrote:

> Thanks for the code. This seems to solve the problem.
> 
> Is this change safe for production? Is it possible that this change will  
> break something else? Is it possible to include it in a future  
> release/patch?

Changes with nginx 0.9.7 04 Apr  
2011

```
   [...]

*) Bugfix: a case when a backend in "fastcgi_pass", "scgi_pass", or
   "uwsgi_pass" directives is given by expression and refers to a
   defined upstream.

```

–  
Igor S.

---

<div class="post-metadata">

**Author:** ![wangysh](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/w/839c29/32.png) [@wangysh](https://www.ruby-forum.com/u/wangysh)\
**Post date:** [April 11, 2011, 10:46pm UTC](https://www.ruby-forum.com/t/upstream-with-fastcgi-pass/204679/11 "2011-04-11T22:46:28Z")

</div>

Great. Thanks. Much appreciated.

Posted at Nginx Forum:

> **[Re: upstream with fastcgi\_pass](https://forum.nginx.org/read.php?2,183712,190295#msg-190295)**
>
> I have a problem when use upstream,my config is like this(nginx version:0.8.54): upstream www.a.com { server 10.249.200.76:9000; server 10.249.200.76:9001; } server{ .....
