Налаштування Centos 5

Учасник

Сьогодні прийшла в силу думка О_о - написати міні статейку, щоб кашу після 3-х днів поневірянь переварити, про особистий досвід налаштування зв'язки:CentOS 5.4з установкоюnginx-0.8.21-1.el5 +php-5.2.11-2.el5 +httpd-2.2.14-1.el5 +mysql-server-5.0.86-1.el5 і все це має працювати під керуваннямISPmanager-Lite 4.3.32

Отже, після встановлення в панелі VDS обраної системи CentOS 5.4 з вже встановленими пакетами php, httpd, mysql-server, і без nginx встановлюємо панель ISPmanager-Lite:

Користувався програмою SSH Explorer, в якій є вбудований SFTP, хороша прожка, рекомендую!

1. Насамперед видалимо пакети встановлені разом із системою, щоб установка панелі пройшла вдало, інакше можливі збої, і потім геморою не оберешся.

2. Тепер встановлюємо NginxУВАГА! (встановлювати Nginx суворо рекомендую за методом, який описаний нижче під заголовкомРекомендували:там наведена цитата)

Тепер займемося оновленням ПЗ. Видалимо або оновимо свій старий php

тепер встановимо новий

yum install php php-devel php-fpm php-mcrypt php-mssql php-gd php-mysql

з установкою модулів php тут можна не морочитися. А встановити потрібне з панелі ISP/

Обновимо mysql та apache

yum update mysql yum update httpd

yum install nginx

Щоб зв'язати ISPManager і nginx очищаємо кеш пакетів ISPManager

/usr/local/ispmgr/sbin/pkgctl -D cache

та рестартим ISP

killall -9 -r ispmgr

Ідемо в пункт Можливості панелі ISPManager і там встановлюємо Nginx. p.s. хоча можна спробувати активувати його з шеллу:

/usr/local/ispmgr/sbin/pkgctl activate nginx

Перевантажуємо сервак із панелі VDS.

yum install mod_rpaf

У файлі rpaf.conf розташованому в /etc/httpd/conf.d/ Прописуємо:

LoadModule rpaf_module modules/mod_rpaf-2.0.so RPAFenable On RPAFsethostname Off RPAFproxy_ips 127.0.0.1 xx.xx.xx.xx RPAFheader X-Real-IP

Тепер наводжу власні налаштування nginx.conf (/etc/nginx/) і httpd.conf (/etc/httpd/conf/) Перед змінами збережіть ці файли десь, щоб у разі чого можна було їх повернути

У httpd.conf змінюємо параметр Listen на Listen 127.0.0.1:8080 Таким чином наш апач працюватиме на сервері локально.

У nginx.conf чорт ногу зломить, по інету полазив і зібрав свій конфіг:

user nginx; worker_processes 4; timer_resolution 100ms; worker_rlimit_nofile 8192; worker_priority -5; error_log /var/log/nginx/error.log;

events worker_connections 2048; use epoll; >

http include /etc/nginx/mime.types; default_type application/octet-stream;

log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"';

access_log /var/log/nginx/access.log main;

sendfile on; tcp_nopush on; tcp_nodelay on; server_tokens off; gzip on; gzip_static on; gzip_comp_level 5; gzip_min_length 1024; keepalive_timeout 65; limit_zone myzone $binary_remote_addr 10m;

server listen 188.40.161.8:80; server_name ******** www.********.ru; rewrite ^(/manager/.*)$ https://$host$1 permanent; location

* ^/(webstat/awstatswebmail/myadmin/manimg/) proxy_pass http://127.0.0.1:8080; proxy_redirect off; proxy_set_header Host $host; proxy_set_header X-Forwarded-For$proxy_add_x_forwarded_for; proxy_set_header X-Real-IP $remote_addr; > location / proxy_pass http://127.0.0.1:8080; proxy_redirect вимкнено; proxy_set_header Хост $хост; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Real-IP $remote_addr; max_body_size_client_max 10m; client_body_buffer_size 128k; proxy_connect_timeout 90; proxy_send_timeout 90; proxy_read_timeout 90; proxy_buffer_size 4k; proxy_buffers 4 32k; proxy_busy_buffers_size 64k; proxy_temp_file_write_size 10m; > розташування

* ^.+\.(jpgjpeggifpngsvgjscssmp3oggmpe?gavizipgzbz2?rar)$ root /var/www/seaterror/data/www/********; access_log /var/www/httpd-logs/********.access.log; error_page 404 = @fallback; > розташування @fallback proxy_pass http://127.0.0.1:8080; proxy_set_header Хост $хост; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Real-IP $remote_addr; > >

где, ******** - це домен вашого сайту. На оптимальність непретендуется! Це відсебячина. Тут я надеюсь на допомогу і подсказки от знающих гуру )))

Тепер самое цікаве. При створенні: Доменних імен і WWW доменів з панелі ISPManager. У конфігурації прописуються параметри: в nginx.conf - proxy_pass http://_ваш_IP_сервера:8080; proxy_redirect http://_ваш_IP_сервера:8080;

Це делаем во всех записях! Подивіться приклад моєї конфіги, там можна написати та додаткові налаштування.

У httpd.conf в самому конце знаходимо записи NameVirtualHost ваш_IP_сервера:8080 Як бачу вже саму ватрушку, апач працює на зовнішньому IP, змінюємо на локальну 127.0.0.1

NameVirtualHost 127.0.0.1:8080 Так само аналогічні строки змінюємо у всіх конфігах!

Тепер питання кГУРУ, це я правильно зробив і зрозумів або в цьому криється помилка?

service httpd configtest [warn] module ispmgr_module is already loaded, skipping [warn] Alias ​​directive в /usr/local/ispmgr/etc/ispmgr.inc at line 3 will proba bly never match because it overlaps earlier Alias. [warn] Alias ​​directive в /usr/local/ispmgr/etc/ispmgr.inc at line 4 буде спроба бути невідомою боротьбою, що вона перевершує річницю Alias. [warn] Alias ​​directive в /usr/local/ispmgr/etc/ispmgr.inc at line 5 буде проба бути невідомим боротьбою, що він overlaps earlier Alias. [warn] Alias ​​directive в /usr/local/ispmgr/etc/ispmgr.inc at line 6 буде проба бути невідомим боротьбою, що він overlaps earlier Alias. [warn] NameVirtualHost 127.0.0.1:8080 не має VirtualHosts Syntax OK

Бачимо проблеми з панеллю, начебто подобається наші редагування налаштувань конфігів на локалку (( При цьому панель ISP працює начебто нормально, в Сервісах тільки процес http відображається як вирубаний, напевно через локалку О_о а на service nginx configtest the configuration file /etc/nginx/nginx.conf syntax is ok configuration file /etc/nginx/nginx.conf test is successful Тут ніби все ОК

Проблеми все ж таки є (( У панелі періодично викидає помилку: Внутрішня помилка Can't fork in cache_quota при цьому процеси вилітають

мабуть перевищений кеш о_о де б це виправити?

У репозиторіях не завжди свіжі пакети, до того ж деякі модулі nginx краще відключити перед встановленням – наприклад, модуль perl. Іноді спостерігали проблеми з-за нього.

rpmbuild--rebuild nginx-0.8.20-1.src.rpm

rpm -ivh ШЛЯХ_ДО_ПАКЕТУ

Тепер за налаштуваннями в Nginx

worker_processes 4; Цілком вистачить 1-2 в режимі проксі.

у форматі логів log_format main можна ще додати директиву $server_name - у разі в логах вказуватиметься ім'я вірт. хоста. Приблизно так:

client_max_body_size 10m; Це максимальний розмір файлу, який можна передати через HTTP. Іноді параметр вимагає збільшення.

Список розширень, що обробляються nginx'om. Можна замінити на:

Також, логувати запити до картинок не обов'язково, можна поставити access_log off;

Зауваження врахував, що Nginx перевстановив цим способом, довелося додатково встановити: yum install zlib-devel yum install pcre-devel yum install opensl devel

Після додавання доменів з панелі ISP, знову ліземо в налаштування і підлаштовуємо відповідно до першого топика + поради нижче З,Ы, створення користувача в панелі чомусь вибив апач, перевантажуємо його: service httpd restart і про всяк випадок service nginx restart

Перевіряємо конфіги: service httpd configtest service nginx configtest

Після всіх маніпуляцій ребутнув сервак, тепер начебто стоїть, тестуватимемо і дивитися що вийшло))