Назад | Перейти на главную страницу

Какой порт мне следует использовать для обратного прокси-сервера на Apache 2 из nginx?

У меня есть настройка nginx в качестве порта defacto 80. Я хочу установить django + mod_wsgi на Apache2. Я беспокоюсь, если оставлю Apache2 как 80 это вызовет конфликт.

Не лучше ли избавиться от головной боли и поменять Apache на другой порт?

server {
    listen 80;
    server_name work.domain.org;

    access_log /www/work.domain.org/log/access.log;
    error_log /www/work.domain.org/log/error.log;

    location / {
        proxy_pass http://127.0.0.1:8080/;
        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;
        proxy_set_header        X-Magic-Header "secret";
        client_max_body_size       10m;
    }
}

Как правило, вы хотите, чтобы обратный прокси-сервер прослушивал порт, к которому будут подключаться клиенты. Итак, в этом случае вы хотите, чтобы nginx был на порту 80. Порт Apache действительно не имеет значения, это может быть порт 80, если порт не используется. на одном сервере с тем же IP.

Так что, если ваш обратный прокси-сервер также не запускает Apache, они оба могли быть 80. У вас также может быть вторичный IP-адрес на хосте и привязка Apache к этой паре IP / Port, а также nginx и Apache прослушивать порт 80 на одной машине (только разные IP).

Например (nc прослушивает указанный IP-адрес и порт):

#Add Secondary IP:
$ sudo ifconfig eth0:1 192.168.2.1 netmask 255.255.255.0
# Listen on primary IP:
$ nc -l -p 20200 -s 192.168.1.2
#Listen on Secondary IP in another Terminal
$ nc -l -p 20200 -s 192.168.2.1
Show in Yet another Terminal
$ sudo netstat -tapnl | grep 20200 
tcp        0      0 192.168.2.1:20200       0.0.0.0:*               LISTEN      440/nc          
tcp        0      0 192.168.254.82:20200    0.0.0.0:*               LISTEN      428/nc 

Вы можете привязать их к одному и тому же порту, но на разных интерфейсах. Например, вы можете привязать внешний интерфейс к внешнему IP-адресу через порт 80 и привязать серверную часть к вашему локальному хосту через порт 80.

Думаю, я как бы ответил на свой вопрос так:

Starting web server: apache2(98)Address already in use: make_sock: could not bind to address [::]:80
(98)Address already in use: make_sock: could not bind to address 0.0.0.0:80
no listening sockets available, shutting down
Unable to open logs
 failed!
invoke-rc.d: initscript apache2, action "start" failed.
Press return to continue.

Невозможно подключиться к тому же порту, поэтому я должен выбрать другой. Я мог бы поклясться, хотя кто-то упомянул, что установил оба порта на 80, думаю, я неправильно прочитал.