Nginx Config: Front-End-Reverse-Proxy an einen anderen Port

22

Ich habe einen kleinen Webserver, der Anfragen über Port 5010 statt über 80 bedient.

Ich möchte Nginx als Front-End-Proxy verwenden, um Anforderungen auf Port 80 zu empfangen und diese Anforderungen dann über Port 5010 verarbeiten zu lassen.

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

Meine Versuche, die Standarddatei nginx.conf neu zu konfigurieren, waren jedoch nicht erfolgreich.

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

Ich habe auch versucht, proxy_pass Direktive.

Vorschläge zu Änderungen, die vorgenommen werden müssen, oder Anweisungen, die festgelegt werden müssen, damit nur eine Portweiterleitung möglich ist.

Ted Karmel
quelle

Antworten:

22

Ich gehe davon aus, dass Nginx nicht der Server auf Port 5010 sowie 80 lauscht, richtig? Etwas anderes hört auf 5010 zu und Sie möchten einen Nginx-Proxy für diesen Server haben?

In diesem Fall ist hier eine schöne Beispielkonfiguration, die ich in der Vergangenheit mit Erfolg verwendet 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 das erreichen, wonach Sie suchen. Viel Glück!

vmfarms
quelle
Dies funktioniert nicht mit MacOS Brew Nginx. Sie müssen einen http {} block umgebenden Server hinzufügen, andernfalls: nginx: [emerg] "server" -Richtlinie ist hier nicht zulässig
muenalan
13

Ziemlich minimalistisch - Ich habe die Proxy-Einstellungen als Standardeinstellung übernommen, aber Sie können sie überprüfen, um sie 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/;

        }
    }
}
tylerl
quelle
2
Tyler - Ihre minimale Lösung ist gut. Das wollte ich. Würde dir Punkte geben, wenn ich doch noch neu bei Serverfault sein könnte
Ted Karmel