Config Nginx: proxy inverso front-end su un'altra porta


22

Ho un piccolo server web che serve richieste sulla porta 5010 anziché 80.

Vorrei utilizzare nginx come proxy front-end per ricevere richieste sulla porta 80 e quindi lasciare che tali richieste vengano gestite dalla porta 5010.

Ho installato nginx con successo e funziona senza problemi su Ubuntu Karmic.

Ma i miei tentativi di riconfigurare il nginx.conf predefinito non hanno avuto successo.

Ho provato a includere nella direttiva server l'argomento hear per la porta 5010.

Ho anche provato la direttiva proxy_pass.

Eventuali suggerimenti su modifiche che devono essere apportate o direttive che devono essere impostate per avere solo il port forwarding.

Risposte:


22

Suppongo che nginx non sia il server in ascolto sulla porta 5010 e 80, giusto? Qualcos'altro è in ascolto su 5010 e desideri avere un proxy nginx su quel server?

In tal caso, ecco una bella configurazione di esempio che ho usato in passato con successo:

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;
        }
}

Credo che dovrebbe realizzare ciò che stai cercando. In bocca al lupo!


questo non funziona su macOS brew nginx. Devi aggiungere un blocco http {} che circonda il server, altrimenti: nginx: [emerg] La direttiva "server" non è consentita qui
muenalan,

13

Abbastanza minimalista: ho lasciato le impostazioni del proxy come predefinite, anche se potresti volerci dare un'occhiata per adattarti alle tue esigenze.

# 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/;

        }
    }
}

2
Tyler: la tua soluzione minima è buona. Questo è quello che volevo. Ti darei punti se potessi, ma ancora nuovo su serverfault
Ted Karmel il
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.