web-dev-qa-db-fra.com

Nginx sur Apache donne 502 passerelles incorrectes

J'essaie de lancer Nginx sur Apache.

Ma configuration est que j'ai configuré Apache pour qu'il écoute le port 8080 au lieu de 80.

Ensuite, je configure Nginx pour que toutes les demandes adressées au même domaine soient envoyées par proxy sur le port 8080:

upstream app {
    server example.com:8080;
}

server {
    listen 80;
    server_name example.com;

    ssl_protocols TLSv1.2;

    charset utf-8;

    index index.html index.htm index.php;

    location = /favicon.ico { access_log off; log_not_found off; }
    location = /robots.txt  { access_log off; log_not_found off; }

    access_log off;
    error_log  /var/log/nginx/example.com-error.log error;

    location / {
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_set_header Host $http_Host;
        proxy_set_header X-NginX-Proxy true;

        proxy_pass https://app/;
        proxy_redirect off;

        # Handle Web Socket connections
        proxy_http_version 1.0;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
    }
}

Ensuite, j’ai configuré la configuration d’Apache, ce qui semble bien fonctionner, car je peux accéder à mon site à l’adresse http://example.com:808 sans problèmes.

<VirtualHost *>
    DocumentRoot "/home/forge/example.com"
    ServerName example.com
    ServerAlias www.example.com
    CustomLog /var/log/httpd/example_com_access.log common
    ErrorLog /var/log/httpd/example_com_error.log

        <Directory /home/forge/example.com/>
            Options Indexes FollowSymLinks
            AllowOverride All
            Require all granted
        </Directory>

</VirtualHost>

Mais en essayant d'aller à http://example.com/ je reçois 502 Bad Gateway - nginx/1.8.0.

Une idée de comment réparer ça?

J’ai besoin de cela parce que j’ai un serveur Web qui contient beaucoup de sites Web utilisant Nginx, mais j’ai besoin de quelques sites (seulement certains d’entre eux) pour exécuter les règles Apache au lieu des règles Nginx.

J'utilise Ubuntu 14.04.

EDIT: Voici le journal de /var/log/nginx/error.log:

2015/11/06 11:05:27 [emerg] 18176#0: "proxy_pass" cannot have URI part in location given by regular expression, or inside named location, or inside "if" statement, or inside "limit_except" block in /etc/nginx/sites-enabled/thehostboy.com:71
2015/11/06 11:07:49 [emerg] 18564#0: "proxy_pass" cannot have URI part in location given by regular expression, or inside named location, or inside "if" statement, or inside "limit_except" block in /etc/nginx/sites-enabled/thehostboy.com:71
2015/11/06 11:23:25 [notice] 21045#0: signal process started
2015/11/06 11:23:25 [alert] 20875#0: *60679 open socket #4 left in connection 9
2015/11/06 11:23:25 [alert] 20875#0: *60680 open socket #41 left in connection 10
2015/11/06 11:23:25 [alert] 20875#0: *60678 open socket #46 left in connection 25
2015/11/06 11:23:25 [alert] 20875#0: *60677 open socket #45 left in connection 26
2015/11/06 11:23:25 [alert] 20875#0: aborting
2015/11/06 11:25:04 [notice] 21184#0: signal process started
2015/11/06 11:25:04 [alert] 21052#0: *97 open socket #3 left in connection 5
2015/11/06 11:25:04 [alert] 21052#0: *98 open socket #36 left in connection 11
2015/11/06 11:25:04 [alert] 21052#0: aborting
2015/11/06 11:27:02 [notice] 21294#0: signal process started
2015/11/06 11:28:39 [notice] 21378#0: signal process started
2
Mark Topper

J'ai résolu ce problème en remplaçant proxy_pass de https://... par http://....

2
Mark Topper