Nginx Config: зворотний проксі-сервер на інший порт


22

У мене невеликий веб-сервер, який обслуговує запити на порт 5010, а не 80.

Я хотів би використовувати nginx як проксі-сервер для прийому запитів на порт 80, а потім дозволити їм обробляти порт 5010.

Я успішно встановив nginx і він працює безперебійно на Ubuntu Karmic.

Але мої спроби перенастроїти nginx.conf за замовчуванням не були успішними.

Я спробував включити в директиву сервера аргумент про прослуховування для порту 5010.

Я також спробував директиву proxy_pass.

Будь-які пропозиції щодо змін, які необхідно внести, або директиви, які потрібно встановити, щоб просто переадресувати порт.

Відповіді:


22

Я припускаю, що nginx - це не прослуховування сервера на порту 5010, а 80, правильно? Щось інше слухається на 5010, і ви хочете мати nginx проксі на цьому сервері?

Якщо це так, ось приємний зразок конфігурації, який я використовував раніше з успіхом:

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

Я вважаю, що це має досягти того, чого ви прагнете. Удачі!


це не працює на macOS варити nginx. Ви повинні додати http {} блок оточуючого сервера, інакше: nginx: [emerg] Директива "server" тут заборонена
muenalan

13

Досить мінімалістично - я залишив налаштування проксі-сервера за замовчуванням, хоча ви, можливо, захочете заглянути до нього, щоб підлаштувати під свої потреби.

# 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
Тайлер - ваше мінімальне рішення добре. Ось чого я хотів. Я б дав вам бали, якби міг, але все-таки новий на сервері за замовчуванням
Тед Кармель
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.