У меня есть настройка 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, думаю, я неправильно прочитал.