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, иначе все ваши файлы могут быть доступны для скачивания через Интернет, включая конфигурации базы данных и другие чувствительные файлы.