Для этого школьного проекта мы получили 1 общедоступный IP-адрес, на котором мы хотим запустить несколько веб-сервисов (веб-почту Roundcube, nextcloud и webconfigurator для брандмауэра). На самом публичном IP-адресе у нас работает брандмауэр pfSense, который также заботится о маршрутизации. В локальной сети брандмауэра у нас есть 3 сервера, почтовый сервер (с веб-почтой), сервер Nextcloud и сервер nginx, который я пытаюсь заставить работать как обратный прокси. Сначала я попытался получить доступ к webconfigurator, но он не работает, и я не могу понять, почему. Вот конфигурация:
server {
server_name pfsense.domain.com;
location ~ {
proxy_pass_header Authorization;
proxy_pass http://10.1.1.2:80;
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_http_version 1.1;
proxy_set_header Connection "";
proxy_buffering off;
client_max_body_size 0;
proxy_read_timeout 36000s;
proxy_redirect on;
}
}
PfSense находится на локальном IP 10.1.1.2. Я перенаправил порт 80 и 443 на сервер nginx, но конфигурация не работает. Имя файла /etc/nginx/sites-available/webservers.conf
и я создал символическую ссылку в sites-enabled
папка. Я скопировал конфигурацию из другого потока на этом Stack Exchange.
Я исправил это сам, просто пошагово пошагово. Я начал с этого:
server {
listen 80;
location / {
proxy_pass http://192.x.x.2;
}
}
А потом пошагово добавлял дополнительные опции. Я нашел варианты и их описания на http://nginx.org/en/docs/http/ngx_http_proxy_module.html. В конце концов я получил следующее, которое отлично работает!
}
server {
server_name mail.domain.eu www.mail.domain.eu;
location / {
proxy_pass http://10.1.1.4;
proxy_set_header Host $http_host;
proxy_set_header Host $host;
}