Nginx фронтендом от апача

1295
Передомной вставала задача поставить instantcms через frontend, я бы и не стал этого делать еслиб не было необходимости запуска апача на 8080 порту, а nginx на 80. (зачем уточнять не буду).

Тут нашел инструкцию по запуска без фронд-енда. НО она меня не устраила в силу упертости.. В общем делается все легко

Настраиваем полностью apache2, ставить nginx, обязательно ставим Mod_rpaf иначе у всех пользователей ип будет определятся или как ип сервера или 127.0.0.1. Ну представим что вы уже все поставили осталось настроить nginx,

Пожалуйста если вы не знаете что такое frondend, зачем это нужно и у вас нет проблем с нагрузкой не эксперементируйте..

Код PHP:
user  nginx;
worker_processes  1; ## Лучше всего ставить под количество процессоров. если уж очень сильная нагрузка можно под количество жестких дисков.

pid /var/run/nginx.pid; ## Это директиву придется менять на ваш путь, при запуске выдаст ошибку.

worker_rlimit_nofile 10240;
worker_rlimit_sigpending 32768;

events {
    worker_connections  1024;
    use epoll;
}

http {

   include       /etc/nginx/mime.types; ## В зависимости от операционки этот путь так же возможно придется менять
   default_type  text/html;

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

   client_header_timeout  90;
   client_body_timeout    90;
   send_timeout           120;

   proxy_read_timeout     300;
   proxy_connect_timeout  180;
   proxy_send_timeout     300;

   proxy_buffer_size          256k;
   proxy_buffers              64 512k;
   proxy_busy_buffers_size    1024k;
   proxy_temp_file_write_size 1024k;
   
   ## Это нужно для определение реального IP, без следующих строк вы получите 127.0.0.1 у всех пользоваетелей.
   proxy_set_header    Host             $host;
   proxy_set_header    X-Real-IP        $remote_addr;
   proxy_set_header    X-Forwarded-For  $proxy_add_x_forwarded_for;

   gzip on;
   gzip_min_length  4096;
   gzip_buffers     32 64k;
   gzip_types       application/x-javascript text/css text/xml text/plain;

   client_header_buffer_size    4k;
   client_max_body_size   20480000;
   large_client_header_buffers  16 8k;

   sendfile       on;
   tcp_nopush     on;
   tcp_nodelay    on;

   output_buffers   32 64k;
   postpone_output  1460;

   lingering_time     30;
   lingering_timeout  10;
   reset_timedout_connection  on;

   keepalive_timeout  20;
   server_name_in_redirect on;


   server {
               ## Данные вашего сервера 
		listen       78.46.144.34:80 default backlog=1536 rcvbuf=65536 sndbuf=65536 deferred;
		server_name  site.citytula.ru www.site.citytula.ru;
		charset  Windows-1251; 
	   access_log /var/www/logs/site_access.nginx.log  main; ## Придется менять
      error_log  /var/www/logs/site_error.nginx.log; ## Придется менять

	 location / {
         proxy_pass  http://127.0.0.1:8080; ## Порт с которого идет проксирование.( бек -енд апач)
         
     } 

      ## Статика, которая читается напрямую с nginx, html не прописывать - получите не рабочие ссылки с ЧПУ.
      ## Путь не забудьте поменять
      location ~* .+\.(jpg|gif|png|bmp|js|jpeg|exe|rar|zip|swf|htm|ico|txt|doc|avi|mp3|mpeg|wav|mid|reg|cdr|dat|mpg)$ {
         root         /var/www/site/;
         expires      15d;
      }

      ## закрываем .htaccess  
	location ~ /\.ht {
		deny  all;
	}

}

   
}
СЕО адаптация для стандартного редактора | С чего начать работу с ссылками - Часть 1
Комментарии (14)
Эдька 19 ноября 2011 в 15:22 +2
+
qwest 19 ноября 2011 в 18:35 +4
Вот такие отличные, информативные и содержательные посты меня всегда умиляют.
"Я делал вот так почему лучше не спрашивайте и у меня сработало, а если у вас не получается то лучше не эксперементируйте."
picaboo 19 ноября 2011 в 20:53 +1
а просто он не понимает о чем пишет, в прочем в который уже раз :)
Nerix 19 ноября 2011 в 21:42 0
Точно подмечено.
Михаил 19 ноября 2011 в 22:35 0
Действительно пост слишком унылый .... Если вы уж сели описывать подобного рода операции то описывайте их нормально, а не как "школьник" у которого получилось это установить и он этому очень рад ....
NickSolver 19 ноября 2011 в 22:50 +1
Я описал это для тех кому нужно, а не для тех кто лазиет по блогу с мыслью лишь бы что нибудь закинуть на свой сайт ибо у меня будет много разных классных фишечек и у меня будет больше посещаемость. Действия приведенные выше нужны для разгрузки вебсервера. Подробнее об этом можно почитать в интернете.
Михаил 20 ноября 2011 в 01:23 +1
Я администрирую добрый десяток вебсерверов и поверьте, ваша статья это лишь очередной копипаст существующего в сети .... каким образом это разгрузит сервер? nginx лишь хорошо работает с статикой, нежели апач и является более отказоустойким .... если уж речь зашла за оптимизацию ресурсов нужно было приводить в эту связку такие вещи как eaccelerator/memcache или прочие.
NickSolver 20 ноября 2011 в 11:09 -5
Ну если вы обратите внимание то
1. Статья называется как настроить front-end,
2. Цели могут быть у всех разные. У меня изначальная цель была проксировать демон чата
3. Статика обрабатывается через nginx.

Я еще раз повторяю я не буду ничего делать для массы, я уже раз написал статью которую раскритиковали люди которые нечего не смыслят в этому. По этому теперь все что я буду сюда выкладывать будет иметь вид для того чтоб информация была интересна ТОЛЬКО тем кому это нужно.
picaboo 20 ноября 2011 в 12:24 0
А конкретно кому она может быть интересна?

Допустим наш читатель лох и денег на админа нет, но зачем то у него сайт висит на впс. Ему бедному надо накурить магов как поставить nginx, затем он будет пытаться потавить mod_praf. И тут о чудо, все заработает на дефолтном конфиге. Но как же, он же помнит про этот великолепный пост, скопирует конфиг отсюда и будет рвать волосы на спине, так как все перестанет работать.

Цель такая ?
ssh2k 20 ноября 2011 в 13:26 +3
...я уже раз написал статью которую раскритиковали люди которые нечего не смыслят в этому.

Ну..ну..грамотный вы наш...
Alexneva 20 ноября 2011 в 17:17 +2
Я еще раз повторяю я не буду ничего делать для массы, я уже раз написал статью которую раскритиковали люди которые нечего не смыслят в этому. По этому теперь все что я буду сюда выкладывать будет иметь вид для того чтоб информация была интересна ТОЛЬКО тем кому это нужно.

Спасибо...как будто в рожу плюнули (((
Protomoto 20 ноября 2011 в 21:11 -3
NickSolver
Я еще раз повторяю я не буду ничего делать для массы, я уже раз написал статью которую раскритиковали люди которые нечего не смыслят в этому. По этому теперь все что я буду сюда выкладывать будет иметь вид для того чтоб информация была интересна ТОЛЬКО тем кому это нужно.
Солидарен, +
Михаил 21 ноября 2011 в 00:20 -1
Зачем тогда вообще писали? Непонятно .... Поверьте, те кто смогут поставить тот же nginx/apache/etc с примочками в виде mod_rpaf даже с дефолтных apt/yum вполне и сами смогут настроить nginx на оптимальную работу ....
picaboo 21 ноября 2011 в 01:08 -1
я бы уточнил. те кто сможет сам поставить, тому первые пару месяцев скачка производительности будет хватать с запасом. потом уже будет и тюнинг nginx по конкретный конфиг сервера и тюнинг глубокий мускула, ибо не только статикой жив сайт, тормоза базы nginx не излечит. и тд. и тп. а пока все и так будет работать на ура. а вот тем кто юзает панельки, может прийти пичалько. такой конфиг может перекособочить ispmanager, у него несколько другая логика и конфиг он генерирует свой и в него он потом по своему шаблону прописывает сайты, и при неправильной разметке он его портит.