SHOW:
|
|
- or go back to the newest paste.
1 | ############################################################################## | |
2 | - | =============Frontend Nginx >=1.12.2 + Backend Apache ~2.4 PHP (5/7) + VestaCP) === 01.17.2020 |
2 | + | |
3 | - | =============fast server http://vk.cc/7BSP3h =========== |
3 | + | =============Fast server KVM VPS 2018 (Frontend Nginx >=1.12.2 + Backend Apache ~2.4 PHP (5/7) + VestaCP) === |
4 | - | =============Сервер берем с KVM (Kernel-based Virtual Machine)!!!! ============== |
4 | + | =============fast server http://vk.cc/5VDdBb =========== |
5 | - | =============ОС выбираем Debian 9* (php7 идет в комплекте)============== |
5 | + | =============update 01.12.2017 support / вопросы, пожелания, замечания просьба слать сюда 2010-10 @ mail.ru ============== |
6 | - | =============support / вопросы, пожелания, замечания просьба слать сюда 2010-10 @ mail.ru ============== |
6 | + | |
7 | - | ==================Конфиг универсален, работает по принципу поставил и забыл - один под все сайты!============== |
7 | + | Debian 8.7 PHP 7.0.16-1 Apache 2.4.10 Nginx 1.12.2 https://habrahabr.ru/post/282554/ |
8 | - | ================= не расчитан на перфекционистов, но легко допиливается Вами под Ваши нужды====================== |
8 | + | |
9 | - | https://archive.apache.org/dist/httpd/ |
9 | + | |
10 | - | https://nginx.org/ru/download.html |
10 | + | |
11 | # Test VPS !KVM 1x1024RAM 20Gb SSD | |
12 | - | ========= Current system ====================== |
12 | + | |
13 | - | nginx/1.16.0 |
13 | + | |
14 | - | Apache/2.4.10 (Debian) |
14 | + | |
15 | #Complete requests: 10000 | |
16 | - | =============================================== |
16 | + | |
17 | #Non-2xx responses: 10000 | |
18 | #Total transferred: 3200000 bytes | |
19 | #HTML transferred: 1620000 bytes | |
20 | #Requests per second: 11976.08 [#/sec] (mean) | |
21 | #Time per request: 834.998 [ms] (mean) | |
22 | #Time per request: 0.083 [ms] (mean, across all concurrent requests) | |
23 | #Transfer rate: 3742.52 [Kbytes/sec] received | |
24 | # | |
25 | #Connection Times (ms) | |
26 | # min mean[+/-sd] median max | |
27 | #Total: 530 644 66.0 646 758 | |
28 | ################################################################################################ | |
29 | ||
30 | =============================Инструкция по установке =========================================================== | |
31 | ||
32 | Для работы качаем https://www.bitvise.com/ssh-client-download (SSH+FTP) для полноценной работы. | |
33 | ||
34 | Условимся, что nginx будет слушать 80 порты, а перекидывать будет на 81 порт, который и будет слушать apache. | |
35 | ||
36 | Установка php 7 на Debian (если надо) https://rusadmin.biz/web-server/ustanovka-php-7-0-5-na-debian/ | |
37 | - | =============================Инструкция по установке ============================================ |
37 | + | |
38 | APACHE : Файлы настроек подключений с расширением .conf в директории сервера /etc/apache2 и подпапки, если include прописан и незакоментирован в основном файле apache2.conf | |
39 | NGNIX : Файлы настроек подключений с расширением .conf в директории сервера /etc/nginx и подпапки, если include прописан и незакоментирован в основном файле nginx.conf | |
40 | ||
41 | VPS берем тут http://vk.cc/5VDdBb (Высокое качество, низкие цены и вежливая техподдержка) | |
42 | ||
43 | #### 1. Настраиваем APACHE ########## | |
44 | ||
45 | В нашем случае на сервере установлена Vesta CP. | |
46 | 1.Настройки сайтов расположены /home/admin/conf/web/apache2.conf (Этот путь прописан в файле vesta.conf в папке /etc/apache2/conf.d) | |
47 | Меняем <VirtualHost *:*> на <VirtualHost *:81> | |
48 | - | VPS берем тут http://vk.cc/7BSP3h (Высокое качество, низкие цены и вежливая техподдержка) |
48 | + | |
49 | 2. Меняем также и в шаблоне добавления сайтов, в весте | |
50 | В шаблонах Vesta /usr/local/vesta/data/templates/web/apache2 | |
51 | ||
52 | В файле default.tpl (Если у Вас другой, выбирайте его. Смотреть в Veste в Packages в настройках Вашего профиля) | |
53 | - | 1.1. Настройки сайтов расположены /home/admin/conf/web/apache2.conf (Этот путь прописан в файле vesta.conf в папке /etc/apache2/conf.d) |
53 | + | |
54 | 3. В файле /etc/apache2/conf.d/*ип сервера*.conf заменяем все на: | |
55 | ||
56 | - | 1.2. Меняем также и в шаблоне добавления сайтов, в весте |
56 | + | |
57 | Listen 127.0.0.1:81 | |
58 | Listen вставить-ip-вашего-сервера:81 | |
59 | NameVirtualHost 127.0.0.1:81 | |
60 | NameVirtualHost вставить-ip-вашего-сервера:81 | |
61 | - | 1.3. В файле /etc/apache2/conf.d/*ип сервера*.conf заменяем все на: |
61 | + | |
62 | ||
63 | ||
64 | Для апач 2.4* | |
65 | Listen 127.0.0.1:81 | |
66 | Listen вставить-ip-вашего-сервера:81 | |
67 | Listen вставить-ip-вашего-сервера:8443 | |
68 | ||
69 | 3.1. В /etc/apache2/mods-enabled очисть конфиги, если они там есть файлы *prefork.conf | |
70 | ||
71 | 4. Для apache v 2.2 Файл /etc/apache2/apache2.conf Выглядит так . Заменям/дополняем свой (не забыв сохранить содержимое начального) | |
72 | =========================================== | |
73 | http://pastebin.com/36xr3gru | |
74 | =========================================== | |
75 | Для apache v 2.4 Файл /etc/apache2/apache2.conf Выглядит так . Заменям/дополняем свой (не забыв сохранить содержимое начального) | |
76 | - | 1.4. В /etc/apache2/mods-enabled очисть конфиги, если они там есть файлы *prefork.conf |
76 | + | |
77 | http://pastebin.com/sCs33xZA | |
78 | - | 1.5. Для apache v 2.2 Файл /etc/apache2/apache2.conf Выглядит так . Заменям/дополняем свой (не забыв сохранить содержимое начального) |
78 | + | |
79 | ||
80 | *Если версия Apache ниже 2.4 ( проверить можно командой apache2 -v ) | |
81 | Установка модуля RPAF ( | |
82 | ||
83 | Т.к. теперь все запросы к Apache приходят не от удалённых клиентов, а от Nginx, то в итоге IP-адрес клиента Apache определяет как локальный (127.0.0.1). Для решения этой проблемы нам нужен модуль RPAF. Он берет тело заголовка X-Forwarded-For, присланного от фронтенда (Nginx) и заменяет значение заголовка REMOTE_ADDR на бекенде (Apache). | |
84 | ||
85 | В Debian или Ubuntu установка и включение модуля RPAF в Apache выполняется следующими командами: | |
86 | apt-get install libapache2-mod-rpaf | |
87 | a2enmod rpaf | |
88 | ||
89 | Настройка модуля RPAF | |
90 | Файл конфигурации RPAF находится: | |
91 | Debian/Ubuntu: /etc/apache2/mods-enabled/rpaf.conf | |
92 | ||
93 | Он должен содержать следующие строки: | |
94 | # | |
95 | RPAFenable On | |
96 | RPAFsethostname Off | |
97 | RPAFproxy_ips 127.0.0.1 | |
98 | RPAFheader X-Real-IP | |
99 | # | |
100 | ||
101 | *Если версия Apache 2.4 =========================Изменения https://httpd.apache.org/docs/2.4/upgrading.html | |
102 | ||
103 | Apache начиная с версии 2.4 НЕ поддерживает mod_rpaf поэтому для отображения реальных ип делаем следующее. | |
104 | a2enmod remoteip | |
105 | nano /etc/apache2/conf-available/remoteip.conf | |
106 | Вписываем строчки в файл remoteip.conf | |
107 | ||
108 | RemoteIPHeader X-Forwarded-For | |
109 | RemoteIPTrustedProxy 127.0.0.1 | |
110 | - | !!!!!!!===>>>Apache начиная с версии 2.4 НЕ поддерживает mod_rpaf поэтому для отображения реальных ип делаем следующее. |
110 | + | |
111 | Далее снова пишем в консоли | |
112 | a2enconf remoteip | |
113 | Редактируем /etc/apache2/apache2.conf | |
114 | Меняем | |
115 | LogFormat "%h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" combined | |
116 | на | |
117 | LogFormat "%a %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" combined | |
118 | Применяем и смотрим результат | |
119 | /etc/init.d/apache2 restart | |
120 | ||
121 | ||
122 | #### 2. Настраиваем Nginx########## | |
123 | Узнать текущую версию: | |
124 | nginx -v | |
125 | Обновление если надо (лучше обновить!) http://nginx.org/en/linux_packages.html#mainline http://artana.ru/blog/all/obnovlenie-nginx-do-posledney-versii-debian/ | |
126 | Полная информация о дистрибутиве операционки для выбора Codename при обновлении: | |
127 | lsb_release -a | |
128 | ||
129 | - | #### 2. Настраиваем Nginx http://pastebin.com/aRLRiYwu ########## |
129 | + | Файл настройки http://pastebin.com/aRLRiYwu заменить на свой /etc/nginx/nginx.conf . (Прописать там свой ипшник в раздел upstream B) |
130 | ======================================================= | |
131 | Не забываем создать соответствующие каталоги командами: (где root , имя пользователя) | |
132 | - | Обновление если надо (лучше обновить!) |
132 | + | |
133 | - | Вариант 1 https://nginx.org/ru/linux_packages.html#Debian |
133 | + | mkdir -p /var/lib/nginx/cache |
134 | - | Вариант 2 https://myhosti.pro/faq/adminos/web/nginx/obnovlenie-nginx-do-poslednei-versii |
134 | + | chown -R root /var/lib/nginx/cache |
135 | - | (Если надо)Полная информация о дистрибутиве операционки для выбора Codename при обновлении: |
135 | + | chmod 700 /var/lib/nginx/cache |
136 | ||
137 | ======================================================= | |
138 | - | Файл настройки NGINGX http://pastebin.com/aRLRiYwu заменить на свой /etc/nginx/nginx.conf . (Прописать в нем свой IP SERVER <<<===!!!! ) |
138 | + | |
139 | Сейчас у нас кеширование настроено, но кеш хранится на жестком диске, что не является хорошим решение. | |
140 | - | Не забываем создать соответствующие каталоги командами: (где www-data , имя пользователя) |
140 | + | |
141 | Для этого откроем | |
142 | - | mkdir -p /var/lib/nginx/cache; chown -R www-data /var/lib/nginx/cache; chmod 700 /var/lib/nginx/cache; |
142 | + | |
143 | - | mkdir -p /var/lib/nginx/proxy; chown -R www-data /var/lib/nginx/proxy; chmod 700 /var/lib/nginx/proxy; |
143 | + | |
144 | tmpfs /var/lib/nginx/cache tmpfs nodev,nosuid,size=20M 0 0 | |
145 | Если в настройках nginx вы указали больший размер кеша, то параметр size необходимо изменить в соответствии с указанным размером кеша (max_size), плюс небольшой запас. | |
146 | Сразу смонтируем директорию в память: | |
147 | sudo mount -a | |
148 | service nginx restart; service apache2 restart; reboot; | |
149 | Теперь при каждой загрузке системы, директория /var/lib/nginx/cache будет помещаться в память, что должно уменьшить время отдачи страницы. | |
150 | ||
151 | ======================================================= | |
152 | - | tmpfs /var/lib/nginx/cache tmpfs nodev,nosuid,noexec,nodiratime,size=20M 0 0 |
152 | + | |
153 | Команда показать версию ядра | |
154 | uname -r | |
155 | Полная инфа о системе | |
156 | uname -a | |
157 | ||
158 | Eсли версия ядра ниже и не будем его использовать, то | |
159 | меняем в конфиге nginx | |
160 | listen 80 reuseport; | |
161 | на | |
162 | listen 80; | |
163 | ||
164 | #### 3. Обновления Ядра Linux для !KVM (OpenVZ не поддерживает) (Времени занимает 10 мин) ( пропускаем если не будем обновлять ядро)############################################## | |
165 | Желательно с прямыми ручонками своими, и не обливая клаву кофем ) | |
166 | По инструкции https://codebeer.ru/obnovlenie-yadra-debian/ , после apt-get update | |
167 | apt-get install -t jessie-backports linux-headers-4.9.0-0.bpo.1-amd64 | |
168 | apt-get install -t jessie-backports linux-image-4.9.0-0.bpo.1-amd64 | |
169 | update-grub | |
170 | reboot | |
171 | ====================== | |
172 | ||
173 | #### 4. Быстродействие системы ########## | |
174 | ||
175 | 4.0 !!!!--->>> Очистка и перезагрузка сервера https://pastebin.com/w8aVmx9w | |
176 | ||
177 | ||
178 | !!!!Важный момент, снимаем лимиты (Проверка командой ulimit -n (1024 изначально)) | |
179 | В конец файла (/etc/security/limits.conf) | |
180 | nano /etc/security/limits.conf | |
181 | добавить строки (где root - имя пользователя от которого работает апач) | |
182 | ||
183 | - | 4.1. !!!!--->>> Очистка и перезагрузка сервера ежедневно https://pastebin.com/w8aVmx9w |
183 | + | |
184 | * hard nproc 65535 | |
185 | * soft nofile 65536 | |
186 | * hard nofile 65536 | |
187 | root soft nofile 65536 | |
188 | root hard nofile 65536 | |
189 | - | добавить строки (где www-data - имя пользователя от которого работает апач) |
189 | + | |
190 | ||
191 | 1.В файле php.ini /etc/php/7.0/apache2 | |
192 | memory_limit = 128M | |
193 | short_open_tag = On | |
194 | realpath_cache_size=16M | |
195 | - | www-data soft nofile 65536 |
195 | + | |
196 | - | www-data hard nofile 65536 |
196 | + | |
197 | session.auto_start = 0 | |
198 | output_buffering = On | |
199 | ||
200 | 1.1 Файл подкачки | |
201 | - | 4.2. В файле php.ini /etc/php/7.0/apache2 |
201 | + | |
202 | #Подкачка как расширение памяти на VPS с SSD | |
203 | #установка (В данном случае это 200 Мегабайт) | |
204 | fallocate -l 200M /swapfile | |
205 | chmod 0600 /swapfile | |
206 | mkswap /swapfile | |
207 | swapon /swapfile | |
208 | #Смотрим свободное место | |
209 | df -h | |
210 | - | 4.3. Файл подкачки |
210 | + | |
211 | nano /etc/fstab | |
212 | #добавить строку для автозагрузки свапа | |
213 | /swapfile none swap sw 0 0 | |
214 | ||
215 | 1.2 Оптимизация кеширования http://tolstiyman.blogspot.ru/2013/08/overcommit.html | |
216 | ||
217 | В файл конец /etc/sysctl.conf вставить | |
218 | ||
219 | #Пишем в buffers/cache при <=10% свободной RAM памяти (Дефолт 60!) | |
220 | vm.swappiness = 10 | |
221 | ||
222 | ||
223 | <--!Если больше 1Gb RAM--> | |
224 | В консоли: | |
225 | - | 4.4. Оптимизация кеширования http://tolstiyman.blogspot.ru/2013/08/overcommit.html |
225 | + | |
226 | echo 2 > /proc/sys/vm/overcommit_memory | |
227 | echo 80 > /proc/sys/vm/overcommit_ratio | |
228 | ||
229 | В файл конец /etc/sysctl.conf вставить еще строки | |
230 | ||
231 | #по-умолчанию равно 50 | |
232 | vm.overcommit_ratio = 80 | |
233 | #В этом случае допустимый объем пространства памяти будет swap+ram*overcommit_ratio/100 | |
234 | vm.overcommit_memory = 2 | |
235 | ||
236 | ||
237 | ||
238 | 2.Для настройки запуска служб есть отличная утилитка –sysv-rc-conf, которая хоть и выполнена в текстовом виде, | |
239 | но очень удобна для этих целей. | |
240 | В официальном репозитории Debian она есть. В репозитории Ubuntu, кстати, тоже есть. | |
241 | Для ее установки выполняем команду: | |
242 | apt-get install sysv-rc-conf | |
243 | http://adminway.ru/avtozagruzka-v-debian | |
244 | ||
245 | Или можно отключить все не нужное в весте | |
246 | https://ваш ип:8083/list/server/ | |
247 | ||
248 | - | 4.5. Для настройки запуска служб есть отличная утилитка –sysv-rc-conf, которая хоть и выполнена в текстовом виде, |
248 | + | 3.Ковыряем системные переменные, защищаемся от некоторых видов атак (Не обязательно) |
249 | Редактируем /etc/sysctl.conf | |
250 | nano /etc/sysctl.conf | |
251 | ||
252 | Дописываем в конец | |
253 | ========================= | |
254 | ||
255 | # Защита от smurf-атак | |
256 | net.ipv4.icmp_echo_ignore_broadcasts = 1 | |
257 | # Защита от неправильных ICMP-сообщений | |
258 | - | 4.6. Ковыряем системные переменные, защищаемся от некоторых видов атак (Не обязательно) |
258 | + | |
259 | # Защита от SYN-флуда | |
260 | net.ipv4.tcp_syncookies = 1 | |
261 | # Запрещаем маршрутизацию от источника | |
262 | net.ipv4.conf.all.accept_source_route = 0 | |
263 | net.ipv4.conf.default.accept_source_route = 0 | |
264 | # Защита от спуфинга | |
265 | net.ipv4.conf.all.rp_filter = 1 | |
266 | net.ipv4.conf.default.rp_filter = 1 | |
267 | # Мы не маршрутизатор, если конечно это так | |
268 | net.ipv4.ip_forward = 0 | |
269 | net.ipv4.conf.all.send_redirects = 0 | |
270 | net.ipv4.conf.default.send_redirects = 0 | |
271 | # Включаем ExecShield при атаках направленных на переполнение буфера или срыв стэка | |
272 | kernel.exec-shield = 1 | |
273 | kernel.randomize_va_space = 1 | |
274 | # Расширяем диапазон доступных портов | |
275 | net.ipv4.ip_local_port_range = 2000 65000 | |
276 | # Увеличиваем максимальный размер TCP-буферов | |
277 | net.ipv4.tcp_rmem = 4096 87380 8388608 | |
278 | net.ipv4.tcp_wmem = 4096 87380 8388608 | |
279 | net.core.rmem_max = 8388608 | |
280 | net.core.wmem_max = 8388608 | |
281 | net.core.netdev_max_backlog = 5000 | |
282 | net.ipv4.tcp_window_scaling = 1 | |
283 | ||
284 | ======================= | |
285 | ||
286 | 4.Ускоряем общую работу системы (Не обязательно) | |
287 | ||
288 | Prelink и Preload. | |
289 | Prelink для создание статичных адресов библиотек, Preload это небольшое приложение, которое следит за файлами наиболее часто используемых приложений, и загружает их в память, когда система простаивает. | |
290 | 1. Установка Prelink: | |
291 | apt-get -y install prelink | |
292 | ||
293 | Редактируем файл /etc/default/prelink: | |
294 | nano /etc/default/prelink | |
295 | ||
296 | - | 4.7. Ускоряем общую работу системы (Не обязательно) |
296 | + | |
297 | Запускаем: | |
298 | /etc/cron.daily/prelink | |
299 | ||
300 | 2.Установка Preload: | |
301 | apt-get -y install preload | |
302 | ||
303 | Все, больше ничего не требуется | |
304 | ||
305 | Завершение настройки (перезапуск сервисов) | |
306 | service nginx restart; service apache2 restart; reboot; | |
307 | ||
308 | Теперь связка работает, Nginx обрабатывает статичные данные, Apache - динамические. | |
309 | ||
310 | ||
311 | ===========Cписок используемой литературы====================== | |
312 | Кеширование в nginx - один из лучших мануалов | |
313 | https://syrog.ru/?p=314 | |
314 | ||
315 | Увеличиваем производительность с помощью SO_REUSEPORT в NGINX 1.9.1 | |
316 | https://habrahabr.ru/post/259403/ | |
317 | ||
318 | Разбираемся в HTTP прокси NGINX, балансировке нагрузки, буферизации и кешировании | |
319 | http://devacademy.ru/posts/razbiraemsya-v-http-proksi-nginx-balansirovke-nagruzki-buferizatsii-i-keshirovanii/ | |
320 | ||
321 | Оптимизируем VPS за 5$ (512MB RAM / 1 CPU) так, что сайт на wordpress выдерживает нагрузку в 42,735,587 хитов в день | |
322 | https://habrahabr.ru/post/242011/ | |
323 | - | Инструкции по настройке обратного прокси-сервера Nginx, Apache и WordPress |
323 | + | |
324 | - | https://andreyex.ru/operacionnaya-sistema-linux/instrukcii-po-nastrojke-obratnogo-proksi-servera-nginx-dlya-apache-i-kesha-wordpress/ |
324 | + | |
325 | https://habrahabr.ru/post/186362/ | |
326 | ||
327 | Прозрачное кеширование в nginx для всех и каждого | |
328 | https://habrahabr.ru/post/124684/ | |
329 | ||
330 | Динамические виртуальные хосты (dynamic vhost) в nginx | |
331 | https://the-bosha.ru/2013/11/08/dinamicheskie-virtualnyie-hostyi-dynamic-vhost-v-nginx/ | |
332 | ||
333 | Установка и настройка связки Nginx+Apache | |
334 | http://lib.clodo.ru/web-Сервер/webserver-lna.html | |
335 | ||
336 | Настройка сервера Debian 7 + nginx + apache | |
337 | http://desome.net/nastrojka-servera-nginx-apache.html | |
338 | http://desome.net/nastrojka-servera-debian-7-nginx-apache-chast-2.html |