Forum: NGINX Erro 502 Bad Gateway help

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community for other Rails- und Ruby-related community platforms.
9c2f12102a6c944a302be0bb679fea3a?d=identicon&s=25 yair avendaño (Guest)
on 2016-07-02 08:30
(Received via mailing list)
Hi I'm setting up a nginx as a reverse proxy but to try to see a site
with drupal locally that have shown me 502 Bad Gateway error.
this gets me in the logs.


016/07/02 00:51:57 [error] 18120#0: *61 upstream sent unsupported
FastCGI protocol version: 72 while reading response header from
upstream, client: 127.0.0.1, server: localhost, request: "GET /
HTTP/1.1", upstream: "fastcgi://127.0.0.1:8080", host: " localhost"



I can not get him out of there I find that causes this error. the server
operating system is a gentoo. I show my vhost


server {
               listen 80;
               server_name localhost;

               access_log /var/log/nginx/localhost_access_log main;
               error_log /var/log/nginx/localhost_error_log info;

               root /var/www/site/prueva/www/;

                location / {
                index index.html index.htm index.php;
                autoindex on;
                autoindex_exact_size off;
                autoindex_localtime on;

                                }

                         location ~ \.php$ {
                       # Test for non-existent scripts or throw a 404
error
                       # Without this line, nginx will blindly send any
request ending in .php to php-fpm
                       try_files $uri =404;
                        include /etc/nginx/fastcgi.conf;
                       fastcgi_pass 127.0.0.1:8080;  ## Make sure the
socket corresponds with PHP-FPM conf file
                        }
                }
14251b8280a87395dc1ff8ebe3d6fce1?d=identicon&s=25 四弦 (Guest)
on 2016-07-02 09:05
(Received via mailing list)
Hello,
Where did you PHP install?
You can edit /path/to/php_dir/etc/php-fpm.conf,or sometimes there will
be a
dir called 'www.conf.d',if it is,please change in the directory,and edit
www.conf which is in the www.conf.d.
You will find a option called 'listen' in the configuration file
below,make
sure the option's content is '127.0.0.1:8080',if not,you can edit it as
'127.0.0.1:8080'.You can also edit the nginx configuration file,change
the
option 'fastcgi_pass'.
But I recommend use socket to connect php-fastcgi,it is faster.To do
this,just change the php-fpm.conf or www.conf likes follow:
[www]
...
user=www
group=www
...
listen = /dev/shm/php-cgi.sock
listen.owner = www
listen.group = www
listen.mode = 0660



'...'just stands for something omitted.
And then change the 'fastcgi_pass' option to
'unix:/dev/shm/php-cgi.sock',restart nginx and PHP,all done!

P.S:My mother tongue isn't English,if there is something you couldn't
understand,please let my konw,thanks!
2016-07-02 14:21 GMT+08:00 yair avendaño <gnu.yair@outlook.com>:
36a8284995fa0fb82e6aa2bede32adac?d=identicon&s=25 Francis Daly (Guest)
on 2016-07-02 09:25
(Received via mailing list)
On Sat, Jul 02, 2016 at 06:21:38AM +0000, yair avendao wrote:

Hi there,

> Hi I'm setting up a nginx as a reverse proxy but to try to see a site with
drupal locally that have shown me 502 Bad Gateway error.

"drupal" is possibly served by a http server, not a fastcgi server.

> this gets me in the logs.
>
>
> 016/07/02 00:51:57 [error] 18120#0: *61 upstream sent unsupported FastCGI
protocol version: 72 while reading response header from upstream, client:
127.0.0.1, server: localhost, request: "GET / HTTP/1.1", upstream:
"fastcgi://127.0.0.1:8080", host: " localhost"

If you make a bad http request to a http server, it will likely return
something that starts with "HTTP". The decimal value of ascii "H" is
"72"; a fastcgi client may expect the first octet to refer to the
fastcgi
protocol version.

So your error message hints that your upstream is not a fastcgi server
but is a http server.

Which in turn suggests that the fix is:

>                          location ~ \.php$ {
>                        # Test for non-existent scripts or throw a 404 error
>                        # Without this line, nginx will blindly send any request
ending in .php to php-fpm
>                        try_files $uri =404;
>                         include /etc/nginx/fastcgi.conf;

* delete those two

>                        fastcgi_pass 127.0.0.1:8080;  ## Make sure the socket
corresponds with PHP-FPM conf file

* replace that with

    proxy_pass http://127.0.0.1:8080;


  f
--
Francis Daly        francis@daoine.org
9b4e012a5df87ef827dbde2ff5546d40?d=identicon&s=25 Yuriy Medvedev (Guest)
on 2016-07-03 03:03
(Received via mailing list)
Hi. You must use fastcgi_pass if you use fastcgi server as backend e.g.
php-fpm. If you use apache as backend you must use proxy_pass.
2 июля 2016 г. 10:25 пользователь "Francis Daly" <francis@daoine.org>
написал:

On Sat, Jul 02, 2016 at 06:21:38AM +0000, yair avendaño wrote:

Hi there,

> Hi I'm setting up a nginx as a reverse proxy but to try to see a site
with drupal locally that have shown me 502 Bad Gateway error.

"drupal" is possibly served by a http server, not a fastcgi server.

> this gets me in the logs.
>
>
> 016/07/02 00:51:57 [error] 18120#0: *61 upstream sent unsupported FastCGI
protocol version: 72 while reading response header from upstream,
client:
127.0.0.1, server: localhost, request: "GET / HTTP/1.1", upstream:
"fastcgi://127.0.0.1:8080", host: " localhost"

If you make a bad http request to a http server, it will likely return
something that starts with "HTTP". The decimal value of ascii "H" is
"72"; a fastcgi client may expect the first octet to refer to the
fastcgi
protocol version.

So your error message hints that your upstream is not a fastcgi server
but is a http server.

Which in turn suggests that the fix is:

>                          location ~ \.php$ {
>                        # Test for non-existent scripts or throw a 404
error
>                        # Without this line, nginx will blindly send any
request ending in .php to php-fpm
>                        try_files $uri =404;
>                         include /etc/nginx/fastcgi.conf;

* delete those two

>                        fastcgi_pass 127.0.0.1:8080;  ## Make sure the
socket corresponds with PHP-FPM conf file

* replace that with

    proxy_pass http://127.0.0.1:8080;


        f
--
Francis Daly        francis@daoine.org
This topic is locked and can not be replied to.