Nginx Apache DokuWiki
Связка Nginx оптимизация и использование в роли обратного прокси (reverse proxy) FrontEnd, Apache BackEnd и вики-движок DokuWiki.
В этом случае nginx будет лишь посредником (прокси), стоящим перед Apache. Nginx будет служить для балансировки нагрузки и кэширования контента.
Apache будет работать на loopback интерфейсе localhost(127.0.0.1) и порту 81, nginx на всех интерфейсах используя порт 80.
Apache
- Apache. В Debian для Apache в файле ports.conf нужно изменить директивы NameVirtualHost и Listen. И безусловно нужно проверить директиву VirtualHost для каждого виртуального хоста и убедиться в том что порт там не прописан явно.
# nano /etc/apache2/ports.conf NameVirtualHost *:81 Listen 127.0.0.1:81 <IfModule mod_ssl.c> Listen 443 </IfModule> <IfModule mod_gnutls.c> Listen 443 </IfModule>
- Apache. Виртуальный домен wiki.example.com для DokuWiki установка (Nginx + PHP-FPM или Apache), настройка и использование.
# nano /etc/apache2/sites-available/wiki.example.com <VirtualHost *:81> ServerName wiki.example.com ServerAdmin webmaster@example.com DirectoryIndex index.php SetEnvIf X-Forwarded-Proto https HTTPS=on ErrorLog ${APACHE_LOG_DIR}/wiki.example.com-error.log CustomLog ${APACHE_LOG_DIR}/wiki.example.com-access.log combined DocumentRoot /var/www/wikionline <Directory /var/www/wikionline/> Options FollowSymLinks MultiViews AllowOverride All Order deny,allow allow from all </Directory> <LocationMatch "/(data|conf|bin|inc)/"> Order allow,deny Deny from all Satisfy All </LocationMatch> </VirtualHost>
- Apache. Перезапустим Apache с новыми настройками.
# /etc/init.d/apache2 restart
Nginx: nginx.conf
- Подключим в файл nginx.conf файл proxy_params, кторый содержит настройки для режима proxy_pass.
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-Forwarded-Proto https;
- Создадим виртуальный домен по умолчанию. Виртуальный домен по умолчанию, позволит блокировать (не пересылать Apache) запросы URL которые не описаны. Благодаря использованию listen 80 default_server все обращения на несуществующие хосты будут перенаправляться по умолчанию к данной конфигурации виртуального домена.
- Листинг nginx.conf
# nano /etc/nginx/nginx.conf
user www-data; # /etc/security/limits.conf # nginx soft nproc 65535 # nginx hard nproc 65535 # nginx soft nofile 65535 # nginx hard nofile 65535 worker_rlimit_core 65535; worker_rlimit_nofile 65535; worker_processes 6; # не должно превышать количество ядер в процессоре pid /var/run/nginx.pid; events { worker_connections 10000; # рассчитывается по формуле worker_rlimit_nofile/worker_processes # multi_accept on; }
http { # Basic Settings sendfile on; client_max_body_size 10M; tcp_nopush on; tcp_nodelay on; keepalive_timeout 65; types_hash_max_size 2048; # server_tokens off; # server_names_hash_bucket_size 64; # server_name_in_redirect off; include /etc/nginx/mime.types; default_type application/octet-stream; # Logging Settings access_log /var/log/nginx/access.log; error_log /var/log/nginx/error.log; # Gzip Settings gzip on; gzip_disable "msie6"; ## # Virtual Host Configs ## include /etc/nginx/proxy_params; # Host X-Real-IP X-Forwarded-For server { # default_server если не найдено имени виртуального хоста - nginx заблокирует доступ и # не будет пересылать запрос Apache listen 80 default_server; server_name defaultwwwsite; access_log /var/log/nginx/000-default-host.access.log; deny all; } include /etc/nginx/conf.d/*.conf; include /etc/nginx/sites-enabled/*; }
Nginx: виртуальный домен
- Nginx. Настройка виртуального домена wiki.example.com в Nginx. Директива proxy_pass указывает куда пересылать запросы, которые не обработал nginx (в нашем случае пересылается серверу Apache).
# nano /etc/nginx/sites-available/wiki.example.com server { listen 80; server_name wiki.example.com www.wiki.example.com; root /var/www/mywiki/; index index.php doku.php; # Buffering proxy_buffering on; # default on proxy_max_temp_file_size 0; # 16096m default 1G client_max_body_size 10240m; # 10m client_body_buffer_size 128k; error_log /var/log/nginx/example.com.info.error.log warn; access_log /var/log/nginx/example.com.info.access.log; location = /stat { stub_status on; access_log off; allow 10.26.95.14; allow 10.26.95.251; deny all; } location ~ /(data|conf|bin|inc)/ { # Запретить доступ к каталогам data|conf|bin|inc deny all; } location ~ /\. { # disabling access for files beginning with a point e.g. .htaccess, .git, .svn deny all; # access_log off; # log_not_found off; } location / { proxy_pass http://127.0.0.1:81; include /etc/nginx/proxy_params; # Host X-Real-IP X-Forwarded-For } }
Nginx: запуск
- nginx. Проверим синтаксис конфигурационных файлов nginx.
# nginx -t nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful
- nginx. Все настройка закончена. Перезапускаем nginx.
# /etc/init.d/nginx restart
📌 Для тестирования скриптов, установщиков VPN, Python ботов рекомендуем использовать надежные VPS на короткий срок. Если вам нужна помощь с более сложными задачами, вы можете найти фрилансера, который поможет с настройкой. Узнайте больше о быстрой аренде VPS для экспериментов и о фриланс-бирже для настройки VPS, WordPress. 📌
💥 Подпишись в Телеграм 💥 и задай вопрос по сайтам и хостингам бесплатно!7 Самых Популярных Статей
- Как запустить скрипты и веб-приложения на Python
- Что такое страны TIER 1,2,3
- 7 способов сравнения файлов по содержимому в Windows или Linux
- Установка и тестирование веб-панели HestiaCP
- Китайский VPN Shadowsocks простая установка и настройка
- top, htop, atop определение загрузки ОС (Load average, LA)
- Использование rsync в примерах