Tag Archives: Nginx

Предметная визуализация

nginx + php-fpm + PHP APC + WordPress multisite (subdirectory) + WP Super

У меня на хостинге использовался Nginx+Apache. Однако, в один прекрасный момент я столкнулся с тем, что интернет-магазины на WordPress не закидывали в корзину товары. Вначале я думал, что это проблема в CMS, потом, что проблема PHP. Но, в результате, после длительной борьбы с проблемой я увидел, что проблема в Nginx. Просто при ЧПУ нужно исправить настройки. В результате, получилось решение Nginx + PHP-FPM.

Вот настройки /etc/nginx/nginx.conf:

Настройка виртуального хостинга:

Для WP Super Cache:

Источник: https://wordpress.org/support/topic/nginx-php-fpm-php-apc-wordpress-multisite-subdirectory-wp-super-cache

Ubuntu: установка и настройка связки nginx + apache + php + mysql

В это статье я расскажу как быстро развернуть LAMP сервер на Ubuntu с кеширующим nginx

Для всех команд необходим sudo, потому сразу войдем для удобства в этот режим:

Далее, обновляем данные из репозитариев:

Установка MySQL сервер:

Во время установки нас попросят ввести пароль root для сервера MySQL, вводим 2 раза. Дожидаемся окончания установки.

Установка Apache, nginx, php:

Дожидаемся окончания установки.
Включаем модули rewrite и include в apache2 при помощи утилиты — a2enmod:

Меняем порт в apache2 со стандартного 80 на 8080 (2 строчки):

Создаем новый веб сервер (VirtualHost), создаем файл конфигурации:

И вставляем в него следующий текст:

Далее, создаем папку сайта и запускаем сайт:

Проверяем в браузере — http://domain.com:8080

Конфигурируем nginx:

Приводим конфиг к такому виду:

Далее создаем и правим конфиг нашего сайта:

Вносим в него следующие записи:

Перезапускаем сервисы и проверяем работу:

Источник: http://evolan.org/linux/ubuntu-ustanovka-i-nastrojka-svyazki-nginx-apache-php-mysql/

Разработка и создание сайтов, интернет-магазинов, веб-приложений, порталов, лэндингов, мобильных приложений (Киев)

3D визуализация и дизайн

Nginx, блокировка доступа по IP

Продолжаем ковырять nginx и перекладывать на него функции с apache. В общем-то, у апача я давно не использую описанную здесь функцию, поэтому и забыл написать.

Формально, в nginx существует 2 способа ограничить доступ по ip. Первый — вполне привычные директивы — deny/allow. Второй — очень удобный для ограничения доступа в куче мест — geo переменные.

С deny/allow всё понятно, использовать их можно-нужно так же, как в любом другом веб-сервере:

Эти строчки можно вписать почти в любой кусок конфига — начиная с http {} (тогда правила распространятся на весь сервер) и заканчивая отдельным location {}.

Второй способ уже интереснее и не встречается в apache. Как вы знаете, в nginx можно очень удобно работать с любыми переменными. А в переменные писать что угодно. Так вот — почему бы не делать что-либо в зависимости от того, какой IP адрес у посетителя? Прелесть такого варианта в том, что мы можем отдавать не 403ю ошибку, как в первом способе, а 404ю. Или редиректить на другой сайт. Или ещё-что нибудь… ну и так далее.

Собственно говоря, выглядит это так. Пишем в секцию http {} (для того, чтобы эту переменную мы могли использовать в любом server {} ):

Что мы в итоге написали. Если кто-то придет из подсети 192.168.1.0/24 — то переменная $accessvar выставляется в 1. Если из 192.168.2.0/24 — то в 2. Если пришла машина с IP адресом 1.1.1.1/2.2.2.2/4.4.4.4 — то переменная выставляется в 3. Если какой-то другой адрес — то 0.
При помощи if-ов мы можем юзать эти штуки уже как угодно. Например, у нас есть сайт internal.company.name для сотрудников (и для серверов, чтобы они забирали оттуда какую-либо информацию для обновления сайтов). И сайт compmany.com, на который должны попадать посетители.
Случайных посетителей сайта internal будем редиректить на правильный сайт:

Это, кстати, спасет и от надоедливых ботов, которые игнорируют robots.txt.
Далее. У нас есть 3 location:
/buh — сюда нам нужно пускать только бухгалтеров (ну там морда 1с, например)
/manager — сюда только менеджеров
/export — сюда только серверы.

Представляете, какой вам ад пришлось бы разводить в конфигах, чтобы добиться этого с access/deny )? А тут вам нужно только поддерживать актуальный список адресов в одном месте. Можно сочетать с VPN, чтобы адреса точно нужные были =)

Ну и не забываем порестартить nginx:


Помните, deny/access работает быстрее, но обладает очень узким функционалом. Но от ddos’a оно не спасет тоже — от ддоса лучше защищаться файрволлом. Поэтому переменные geo имеют право на существование. При этом они куда более удобны при правильном использовании. Кстати, можно создавать сразу именованные переменные — buh, manager, server, например =)


Джерело: https://debian.pro/726

Защита файла wp-config.php в nginx

Автор: Рудюк С . А.
https://corp2.net

E-Mail: rs@corp2.net

В файле wp-config.php CMS WordPress хранит пароли и логины для доступа к базе данных. Это очень безопасная информация. Есть вероятность, что в момент отладки приложения или веб-сервера данный файл может быть доступен злоумышленникам, поэтому, рекомендуется защищать данный файл от доступа в веб-серверах.

Защита в веб-сервере Apache указывается в файле .htaccess:

Защита в веб-сервере Nginx:

Автор: Рудюк С . А. https://corp2.net

Разработка и создание сайтов, интернет-магазинов, веб-приложений, порталов, лэндингов, мобильных приложений (Киев)

3D визуализация и дизайн

Безопасность WordPress. 3 самых эффективных способа защиты от брутфорса

По статистике, около 19% от общего количества всех сайтов Интернета, работают на WordPress — это почти каждый пятый сайт. Успех платформы вполне логичен и закономерен, не зря еще 5 лет назад я сделал ставку именно на нее. Но сегодня речь пойдет не о преимуществах WordPress, а о его безопасности. Высокая популярность платформы активизировала злые силы, и вот уже на протяжении нескольких месяцев в Рунете идут массовые атаки на сайты, работающие на WordPress. Атаки настолько серьезные и настолько массовые, что не выдерживают даже самые мощные серверы. Хостинг-провайдеры, конечно, принимают меры, порой даже самые радикальные, вплоть до полной блокировки администраторских консолей WordPress. Поэтому, если вас еще не заблокировали, лучше самостоятельно провести ряд несложный действий по укреплению обороны вашего WordPress.

В этой статье я расскажу о самых эффективных способах защиты вашего сайта именно от брутфорса (brute force) — метода подбора и взлома пароля путем перебора всех теоретически возможных вариантов. Так как все последние массовые атаки работают по этому методу.

1. Первое с чего нужно начать — это избавиться от пользователя admin. Если у вас нет пользователя admin, можете сразу переходить к пункту 2. В WordPress начиная с 3 версии это делается очень просто. Достаточно создать нового пользователя, наделить его администраторскими правами, а старого пользователя «admin» — удалить. При его удалении, WordPress предложит вам выбрать нового пользователя, который станет автором публикаций старого администратора.

В старых версиях WordPress эта процедура проделывается с помощью пары SQL-запросов:

2. Очень важно обратить внимание на пароль администратора. Лучше если это будет хаотичная комбинация заглавных и строчных букв, знаков и цифр не менее чем из 10-12 символов.

3. При бутфорсе WordPress, производится огромное количество запросов к файлу авторизации «wp-login.php», и будет правильно обеспечить ему двойную защиту.

Если вы работаете с сайтом один, и ваш интернет-провайдер предоставляет вам статичный IP-адрес, вы можете разрешить доступ к директории «wp-admin» только с вашего IP-адреса, заблокировав тем самым для всех остальных даже возможность авторизации. Делается это следующим образом. В директории «wp-admin» создаем файл «.htaccess» следующего содержания:

Где IP — это ваш IP-адрес. Узнать его вы можете, например, здесь.

Если же, кроме вас с сайтом работают еще люди со статическими IP-адресами, вы можете просто добавить их в список ниже. Например, так:

Где, IP1, IP2, IP3 — разрешенные IP-адреса.

Благодаря этому, все пользователи (боты) с IP-адресами, не указанными в списке разрешенных, просто не получат доступа к директории «wp-admin» и, соответственно, не смогут брутфорсить файл «wp-login.php». Всем им будет возвращаться ошибка 403.

Если провайдер вам выдает динамический IP-адрес, меняющийся с каждым новым подключением к Интернету, тогда этот способ не пройдет, т.к «.htaccess» придется редактировать при каждом вашем подключении к Сети. С помощью все того же «.htaccess» мы можем установить дополнительную серверную HTTP-авторизацию. Делается это следующим образом.

Все в той же директории «wp-admin» создаются два файла: «.htaccess» и «.htpasswd». В первом будут храниться инструкции, во втором разрешенные данные для доступа к директории.

В «.htaccess» пишем следующее:

Где fullpath — полный путь к файлу «.htpasswd». Обратите на это должное внимание, т.к это самая частая ошибка. Полный путь вы можете узнать у своего хостинг-провайдера или с помощью небольшого php-скрипта:

Или другим способом:

Если вы по каким-то причинам не хотите паролить всю директорию «wp-admin», вы можете запаролить непосредственно файл «wp-login.php». Делается это аналогично, но в «.htaccess» нужно написать следующее:

Файл «.htpasswd» в обоих случаях должен выглядеть следующим образом:

Где username — это имя разрешенного пользователя, а password — это пароль. Обратите внимание, что пароль хранится в зашифрованном виде. Поэтому, предварительно ваш пароль нужно зашифровать. Сделать это можно, например, с помощью этого сервиса. На пароль действуют те же правила, что указаны в пункте 2 данной публикации.

Для использования нескольких пользователей с паролями, вы можете просто перечислить их по-порядку. Например, вот так:

Если вы сделаете все правильно, перед авторизацией в WordPress вам будет предложено ввести логин и пароль доступа к директории (файлу). И только после успешного входа вы сможете авторизоваться и войти в администраторскую консоль.

В Safari 6.0.5 на Mac OS это выглядит примерно так:

htpasswd

В других браузерах возможно немного иначе.

Выполнив хотя бы эти 3 пункта, вы в разы снизите вероятность взлома вашего WordPress.

Дополнительные меры по защите WordPress

Дополнительно вы можете защитить таким же образом файл настроек WordPress «wp-config.php». Я бы рекомендовал его защитить, потому что в нем содержатся данные для подключения к БД MySQL. Делается это аналогично:

Также, я бы рекомендовал вам проверить директории вашего сайта. Дело в том, что очень многие хостеры и безалаберные сисадмины не закрывают по-дефолту просмотр директорий сайтов своих клиентов. Если, к примеру, ввести в адресную строку браузера: http://вашсайт/wp-includes/ и вы увидете содержимое этой директории — нужно бить тревогу и срочно закрывать просмотр. Для этого можно создать в директориях, которые вы хотите закрыть от просмотра, пустые файлы «index.html» или дописать в ваш «.htaccess» всего одну строку:

Которая запретит серверу показывать содержимое директорий.

Кроме всего прочего, вы можете самостоятельно установить плагины безопасности WordPress, рекомендованные разработчиками платформы.

Их обзор в рамках данной публикации я проводить не буду.

Если в процессе настройки защиты WordPress от брутфорса у вас возникнут сложности — вы всегда можете обратиться ко мне за помощью. Контакты здесь.

Дизайн интерьеров

Веб-сервер Nginx и PHP-FPM (настройка мобильного хостинга) — пополняется

Т.к. система должна быть максимально мобильной, поднимаю веб-сервер на базе виртуальной машины. Все программное обеспечение использую с открытым исходным кодом, бесплатное.

Для виртуальной машины вырал virtualbox:
https://www.virtualbox.org/wiki/Downloads

Операционную систему использую Linux Ubuntu:
http://www.ubuntu.com/

После того, как установил Linux Ubuntu в вируальной машине VirtualBox, устанавливаю веб-сервер nginx и PHP-FPM:

Редактируем файл:

Редактируем файл:

Перезагружаем:

Для удобства, ставлю некоторые из утилит:

Устанавливаю DNS-сервер для настройки ns-сервера и доменных зон:

mc — это удобный файловый менеджер.

htop — удобное средство для просмотра загрузки процессоров.

whois — сервис для получения информации о доменах.

Еще некоторые команды, которые могут понадобиться при настройке доменов.

dig название домена — определение информации о настройках домена .
nslookup название домена — просмотр ns-серверов домена.

Устанавливаем Apache2

Для сайтов, которым нужен rewrite устанавливаем Apache2:

apt-get install apache2

apt-get install libapache2-mod-php5

apt-get install php5-curl

Ставим RPaf

Устанавливаем MySQL

Устанавливаем Memcahed

Настройка рабочего места веб-разрабочика

Для работы с веб-сервером, удобно поставить такое программное-обеспечение:
putty — клиент терминала.
filezilla — файловый менеджер, передающий файлы по ssh.

Данное программное обеспечение — с открытым исходным кодом, бесплатное и кросс-платформенное. Прекрасно зарекомендовало себя при работе с веб-сервером.

Настройка конфигов Nginx

Другие полезные утилиты на хостинге

Просмотр объема трафика в терминале:
apt-get install iptraf
Чтоб просмотреть трафик, просто наберите в терминале:  iptraf

Просмотр объема трафика в веб-виде:
apt-get install darkstat

После установки, изменяем конфиг /etc/darkstat/init.cfg
# Turn this to yes when you have configured the options below.
START_DARKSTAT=yes

# Don’t forget to read the man page.

# You must set this option, else darkstat may not listen to
# the interface you want
INTERFACE=»-i eth0″

#DIR=»/var/lib/darkstat»
PORT=»-p 666″
#BINDIP=»-b 127.0.0.1″
#LOCAL=»-l 192.168.0.0/255.255.255.0″

# File will be relative to $DIR:
#DAYLOG=»—daylog darkstat.log»

# Don’t reverse resolve IPs to host names
#DNS=»—no-dns»

#FILTER=»not (src net 192.168.0 and dst net 192.168.0)»

# Additional command line Arguments:
# OPTIONS=»—syslog —no-macs»

service darkstat start

Чтоб посмотреть трафик просто в браузере наберите:
http://ip-адрес_Вашего_сервера:666

Разработка и создание сайтов, интернет-магазинов, веб-приложений, порталов, лэндингов, мобильных приложений (Киев)

3D визуализация и дизайн

Налаштування Nginx – PHP-FPM для роботи багато-сайтовості в WordPress

По замовчуванню, WordPress працює в одно-сайтовому режимі. Якщо Ви бажаєте включити багато-сайтовість, то зробіть наступні дії:

1. Відкрийте файл wp-config.php. В нього додайте програмний код:

2. Налаштуйте мережу. Для цього, зайдіть в Administration > Tools > Network Setup (Инструменты — Установка сети).

3. WordPress вам повідомить скрипт, призначений для роботи в Apache2.

Скрипт для додавання в wp-config.php (він підходить як для нашого випадку, так і для Apache2).

Скрипт для Apache2, який потрібно додати в файл .htaccess в корні сайту (не підходить для варіанта Nginx, бо від не виконує ці файли :))

Для зв’язки Nginx — PHP-FPM необхідно вставляти інший скрипт в налаштування домену Nginx. Цей скрипт різний в залежності від вибраної Вами схеми багато-сайтовості WordPress.

Скрипт для Nginx для багато-сайтового WordPress, що використовує підкаталоги:

Скрипт для Nginx, що використовує багато-доменність для WordPress:

Разработка и создание сайтов, интернет-магазинов, веб-приложений, порталов, лэндингов, мобильных приложений (Киев)