Ich habe derzeit ein Himbeer-Pi mit Raspian-Betriebssystem, auf dem ein Node-JS-Server auf Port 8080 ausgeführt wird. Anschließend richte ich NGINX als Reverse-Proxy ein, um eingehenden Port-80-Datenverkehr bei 8080 an meinen Server weiterzuleiten.

Ich versuche, den Benutzer auf eine HTML-Schaltfläche klicken zu lassen, die dann eine NodeJS-Funktion aufruft, um ihn zu Google umzuleiten. Jetzt glaube ich nicht, dass das Problem im Code liegt, denn wenn ich den Server auf meinem lokalen Computer starte (kein Nginx erforderlich), funktioniert alles einwandfrei. Wenn ich jedoch versuche, von meinem lokalen Computer aus auf den auf dem Raspberry Pi ausgeführten Server zuzugreifen, funktioniert http://192.168.0.103/Authenticate.html und bedient die HTML-Seite mit der Schaltfläche, dann aber den Funktionsaufruf http://192.168.0.103 /Authenticate.js gibt mir einen 404-Fehler.

Ich glaube, ich habe etwas falsch in diesem Reverse-Proxy eingerichtet, aber ich bin sehr neu in diesem, so habe ich keine Ahnung, was. Jede Hilfe wird geschätzt.

NGINX-Standarddatei

    {
    listen 80;
    listen [::]:80;
    root /home/pi/Cortana;
    server_name _;
    location / {
        proxy_pass http://127.0.0.1:8080;
        try_files $uri 4uri/ =404;
    }
}

OAuthTest.html

<form method="post" action="/Authenticate.js">
    <input type="submit" value="Login with Reddit" >
</form>

OAuthTest.js

const http = require('http');
const request = require('request');
const fs = require('fs');
const express = require('express');

const app = express();
const server = http.createServer(app);

app.get('/', serveDefaultHTML);
app.get('/OAuthTest.html', serveAuthHTML);
app.post("/Authenticate.js", function(req, res){
    console.log("Here");
    redirecting(req, res);
    });


server.listen(8080, function(){
    console.log("Listening on http://localhost:8080");
});

function serveAuthHTML(req, res){
    fs.readFile("OAuthTest.html", function(err, data){
        if (err){
            res.writeHead(404, {'Content-Type': 'text/html'});
            res.end(err);
            return;
        }
        res.writeHead(200, {'Content-Type': 'text/html'});
        res.end(data);
    });
}

function serveDefaultHTML(req, res){
    res.writeHead(200, {'Content-Type': 'text/html'});
    res.write("Welcome to my server!")
    res.end("Request url: " + req.url);
}

function redirecting(req, res){
    console.log("Redirecting");
    res.writeHead(301,
        {Location: 'http://www.google.com'}
    );
    res.end();
}
Ashley
quelle