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

Я считаю, что это должно выполнить то, что вы ищете. Удачи!

vmfarms
источник
это не работает на MacOS Brew Nginx. Вы должны добавить блок http {}, окружающий сервер, иначе: nginx: [emerg] директива "server" здесь
недопустима
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/;

        }
    }
}
tylerl
источник
2
Тайлер - твое минимальное решение хорошо. Это то, что я хотел. Дал бы вам очки, если бы я мог, но все еще новичок на сервере
Тед Кармель