nginx代理
Когда Webman необходимо обеспечить прямой доступ из Интернета, рекомендуется установить перед Webman прокси-сервер Nginx. Это имеет следующие преимущества.
- Статические ресурсы обрабатываются Nginx, позволяя Webman сосредоточиться на обработке бизнес-логики
- Позволяет нескольким Webman делить порты 80 и 443, различая разные сайты по доменному имени, что позволяет развернуть несколько сайтов на одном сервере
- Позволяет реализовать совместное использование php-fpm и архитектуры Webman
- Прокси-сервер Nginx легко и эффективно реализует ssl для https
- Позволяет строго фильтровать некоторые незаконные запросы из Интернета
nginx代理示例
upstream webman {
server 127.0.0.1:8787;
keepalive 10240;
}
server {
server_name доменное_имя_сайта;
listen 80;
access_log off;
# Обратите внимание, что здесь обязательно должен быть каталог public под webman, а не корневой каталог webman
root /your/webman/public;
location ^~ / {
proxy_set_header Host $http_host;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Real-IP $remote_addr;
proxy_http_version 1.1;
proxy_set_header Connection "";
if (!-e $request_filename){
proxy_pass http://webman;
}
}
# Запрет доступа ко всем файлам, оканчивающимся на .php
location ~ \.php$ {
return 404;
}
# Разрешить доступ к каталогу .well-known
location ~ ^/\.well-known/ {
allow all;
}
# Запрет доступа ко всем файлам или каталогам, начинающимся с .
location ~ /\. {
return 404;
}
}
Как правило, разработчику достаточно установить значения server_name и root, другие поля не требуют настройки.
注意
Примечание: обязательно укажите параметр root на каталог public под webman, ни в коем случае не устанавливайте его на корневой каталог webman, иначе все ваши файлы могут быть доступны для скачивания через Интернет, включая конфигурации базы данных и другие чувствительные файлы.