Frage Nginx Config: Front-End-Reverse-Proxy zu einem anderen Port


Ich habe einen kleinen Webserver, der Anfragen an Port 5010 eher als 80 bedient.

Ich möchte nginx als einen Front-End-Proxy verwenden, um Anforderungen an Port 80 zu empfangen, und diese Anforderungen dann von Port 5010 behandeln lassen.

Ich habe nginx erfolgreich installiert und es läuft reibungslos auf Ubuntu Karmic.

Aber meine Versuche, die Standard-nginx.conf neu zu konfigurieren, waren nicht erfolgreich.

Ich habe versucht, das Listen-Argument für Port 5010 in die Server-Direktive aufzunehmen.

Ich habe auch proxy_pass Richtlinie versucht.

Alle Vorschläge zu Änderungen, die vorgenommen werden müssen, oder Anweisungen, die festgelegt werden müssen, um nur Portweiterleitung zu haben.


20
2017-08-18 02:49


Ursprung




Antworten:


Ich nehme an, dass nginx nicht der Server ist, der Port 5010 sowie 80 hört, richtig? Etwas anderes hört auf 5010 und Sie möchten Nginx-Proxy für diesen Server haben?

Wenn das der Fall ist, hier ist eine nette Beispielkonfiguration, die ich in der Vergangenheit mit Erfolg benutzt habe:

server {
        listen       80;
        server_name  <YOUR_HOSTNAME>;
        location / {
            proxy_pass         http://127.0.0.1:5010/;
            proxy_redirect     off;

            proxy_set_header   Host             $host;
            proxy_set_header   X-Real-IP        $remote_addr;
            proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;

            client_max_body_size       10m;
            client_body_buffer_size    128k;

            proxy_connect_timeout      90;
            proxy_send_timeout         90;
            proxy_read_timeout         90;

            proxy_buffer_size          4k;
            proxy_buffers              4 32k;
            proxy_busy_buffers_size    64k;
            proxy_temp_file_write_size 64k;
        }
}

Ich glaube, das sollte erreichen, was du suchst. Viel Glück!


21
2017-08-18 03:01



Dies funktioniert nicht mit MacOS brew nginx. Sie müssen einen http {} block umgebenden Server hinzufügen, sonst: nginx: [emerg] "server" Direktive ist hier nicht erlaubt - muenalan


Ziemlich minimalistisch - Ich habe die Proxy-Einstellungen als Standard verlassen, obwohl Sie vielleicht nachsehen möchten, um sich an Ihre Bedürfnisse anzupassen.

# NGINX configuration

# System configuration ##################
worker_processes  3;
events {
    worker_connections  1024;
}
user nobody;

# Web configuration #####################
http {
    server {
        listen 80 default;
        location / {
            proxy_set_header   X-Real-IP        $remote_addr;
            proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;
            proxy_set_header   Host             $host;

            proxy_pass http://127.0.0.1:5010/;

        }
    }
}

11
2017-08-18 03:01



Tyler - deine minimale Lösung ist gut. Das wollte ich. Würde dir Punkte geben wenn ich das aber noch auf Serverfault neu machen könnte - Ted Karmel