Nginx и Apache2. Установка и быстрая настройка! » комментарииhttps://adw0rd.com/2009/03/27/nginx-and-apache-install/2015-06-02T22:06:16+03:00Блог Михаила Андреева, ака adw0rdadw0rd на "Nginx и Apache2. Установка и быстрая настройка!"
2015-06-02T22:06:16+03:00adw0rdhttps://adw0rd.com/2009/03/27/nginx-and-apache-install/#comment-6436Denis, либо выставить expires маленький, либо передавать GET переменную, типа "/path/to/image.jpg?v=123123"
<p>Denis, либо выставить expires маленький, либо передавать GET переменную, типа "/path/to/image.jpg?v=123123"</p>
Александр на "Nginx и Apache2. Установка и быстрая настройка!"
2015-06-02T14:59:32+03:00Александрhttps://adw0rd.com/2009/03/27/nginx-and-apache-install/#comment-6435Обновить кэш браузера
<p>Обновить кэш браузера</p>
Denis на "Nginx и Apache2. Установка и быстрая настройка!"
2015-04-22T07:33:44+03:00Denishttps://adw0rd.com/2009/03/27/nginx-and-apache-install/#comment-6426Добрый день. Обратил внимание что если перезагрузить картинку на сервер, то nginx отдает заголовок 304 Not Modified и указывает старую дату. Вопрос: Как подсказать nginx что картинка изменилась?
<p>Добрый день.</p>
<p>Обратил внимание что если перезагрузить картинку на сервер, то nginx отдает заголовок 304 Not Modified и указывает старую дату.</p>
<p>Вопрос: Как подсказать nginx что картинка изменилась?</p>
Александр на "Nginx и Apache2. Установка и быстрая настройка!"
2014-08-13T17:57:11+04:00Александрhttps://adw0rd.com/2009/03/27/nginx-and-apache-install/#comment-6381Из другого источника я получил информацию. Может она кому пригодится. Модуль RPAF можно выключить - он бесполезен. Вместо этого нужно в Apache2 задействовать модуль mod_remoteip и прописать в конфиге апача следующие строки: RemoteIPHeader X-Real-IP RemoteIPInternalProxy 127.0.0.1 И тогда везде будут реальные IP.
<p>Из другого источника я получил информацию. Может она кому пригодится.<br />
Модуль RPAF можно выключить - он бесполезен.<br />
Вместо этого нужно в Apache2 задействовать модуль mod_remoteip и прописать в конфиге апача следующие строки:</p>
<pre><code>RemoteIPHeader X-Real-IP
RemoteIPInternalProxy 127.0.0.1
</code></pre>
<p>И тогда везде будут реальные IP.</p>
Александр на "Nginx и Apache2. Установка и быстрая настройка!"
2014-08-13T08:33:35+04:00Александрhttps://adw0rd.com/2009/03/27/nginx-and-apache-install/#comment-6380Здравствуйте. Поставил себе Ubuntu14, связку nginx и apache2, и форум на моём сайте стал получать от пользователей вместо реальных IP локальный адрес сервера. Также и в логах апача сплошные 127.0.0.1. На старом сервере всё работало идеально без этих дополнительных настроек. Установил RPAF - apt-get install libapache2-mod-rpaf, вписал в настройки RPAF…
<p>Здравствуйте.<br />
Поставил себе Ubuntu14, связку nginx и apache2, и форум на моём сайте стал получать от пользователей вместо реальных IP локальный адрес сервера. Также и в логах апача сплошные 127.0.0.1. На старом сервере всё работало идеально без этих дополнительных настроек.<br />
Установил RPAF - apt-get install libapache2-mod-rpaf, вписал в настройки RPAF рекомендованные из этой статьи строчки, прописал рекомендованные строчки в virtualhost. В логах апача стали писаться реальные IP, но форум всё равно не получает реальные IP - каждое сообщение любого пользователя имеет локальный IP. Написал скрипт, закинул на сайт - http://smirnovs.info/ip.php и выяснил, что по непонятной причине не хочет работать директива REMOTE_ADDR, остальное работает корректно.<br />
Соответственно вопрос, как научить директиву REMOTE_ADDR работать корректно?</p>
coman на "Nginx и Apache2. Установка и быстрая настройка!"
2013-09-23T20:15:04+04:00comanhttps://adw0rd.com/2009/03/27/nginx-and-apache-install/#comment-6261Если у Вас связка nginx+apache2 в ubuntu, то небоходимо настроить отдельный location, чтобы отображались картинки в phpmyadmin: http://joyit.ru/administrirovanie/40-nginx-apache-ubuntu-phpmyadmin.html
<p>Если у Вас связка nginx+apache2 в ubuntu, то небоходимо настроить отдельный location, чтобы отображались картинки в phpmyadmin: http://joyit.ru/administrirovanie/40-nginx-apache-ubuntu-phpmyadmin.html</p>
santaklauz на "Nginx и Apache2. Установка и быстрая настройка!"
2013-05-05T03:43:07+04:00santaklauzhttps://adw0rd.com/2009/03/27/nginx-and-apache-install/#comment-6163Дойдут. Раньше смотрел лог ошибок нгинкса - был пустой. Сейчас все почистил, рестартовал, пробую - ошибка та же. В логах есть запись 2013/05/05 03:37:26 [error] 8203#0: *3 upstream timed out (110: Connection timed out) while reading response header from upstream, client: 123.121.217.54, server: phpmyadmin.site.domain, request: "GET /import_status.php?message=true&token=a12fc7971e5b6b5b2ebcf425339ec338 HTTP/1.1", upstream: "http://127.0.0.1:8080/import_status.php?message=true&token=a12fc7971e5b6b5b2ebcf425339ec338",…
<p>Дойдут. Раньше смотрел лог ошибок нгинкса - был пустой. Сейчас все почистил, рестартовал, пробую - ошибка та же. В логах есть запись</p>
<pre><code>2013/05/05 03:37:26 [error] 8203#0: *3 upstream timed out (110: Connection timed out) while reading response header from upstream, client: 123.121.217.54, server: phpmyadmin.site.domain, request: "GET /import_status.php?message=true&token=a12fc7971e5b6b5b2ebcf425339ec338 HTTP/1.1", upstream: "http://127.0.0.1:8080/import_status.php?message=true&token=a12fc7971e5b6b5b2ebcf425339ec338", host: "phpmyadmin.site.domain", referrer: "http://phpmyadmin.site.domain/index.php?token=a12fc7971e5b6b5b2ebcf425339ec338"
</code></pre>
<p>Хотя бы примерно ясно в чем проблема. Спасибо, что не бросили одного )</p>
adw0rd на "Nginx и Apache2. Установка и быстрая настройка!"
2013-05-04T21:06:48+04:00adw0rdhttps://adw0rd.com/2009/03/27/nginx-and-apache-install/#comment-6162А если сейчас их вручную вызвать эти последнии 3-4 запроса, то посмотрите дойдут ли они до Apache?
<p>А если сейчас их вручную вызвать эти последнии 3-4 запроса, то посмотрите дойдут ли они до Apache?</p>
santaklauz на "Nginx и Apache2. Установка и быстрая настройка!"
2013-05-04T15:47:59+04:00santaklauzhttps://adw0rd.com/2009/03/27/nginx-and-apache-install/#comment-6161Именно! Есть ли какие-то мысли? У меня абсолютно нет
<p>Именно! Есть ли какие-то мысли? У меня абсолютно нет</p>
adw0rd на "Nginx и Apache2. Установка и быстрая настройка!"
2013-05-04T14:26:44+04:00adw0rdhttps://adw0rd.com/2009/03/27/nginx-and-apache-install/#comment-6160Странно то, что у вас эти последние два запроса стали 404
<p>Странно то, что у вас эти последние два запроса стали 404</p>
santaklauz на "Nginx и Apache2. Установка и быстрая настройка!"
2013-05-04T05:46:31+04:00santaklauzhttps://adw0rd.com/2009/03/27/nginx-and-apache-install/#comment-6159Поднимаю такую старую но нужную тему. Сделал по инструкции, все отлично. 5 поддоменов на одном сервере, на первый взгляд все хорошо. На одном из поддоменов крутится phpmyadmin. В нем пробую импортировать мускульный дамп, после некоторой задумки получаю всплывающее окно с ошибкой. Лезу в логи и вижу: В nginx: xxx.yyy.zzz.qqq -…
<p>Поднимаю такую старую но нужную тему. Сделал по инструкции, все отлично. 5 поддоменов на одном сервере, на первый взгляд все хорошо. На одном из поддоменов крутится phpmyadmin. В нем пробую импортировать мускульный дамп, после некоторой задумки получаю всплывающее окно с ошибкой. Лезу в логи и вижу:</p>
<p>В nginx:</p>
<p>xxx.yyy.zzz.qqq - - [04/May/2013:05:30:22 +0000] "GET /server_import.php?db=&token=d233950b9cc97380f14fe529aa96ef15&ajax_request=true&ajax_page_request=true&menuHashes=957353df&_nocache=1367645430561421331 HTTP/1.1" 200 20387 "http://phpmyadmin.my.domain/" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.31 (KHTML, like Gecko) Chrome/26.0.1410.64 Safari/537.31" "-"</p>
<p>xxx.yyy.zzz.qqq - - [04/May/2013:05:30:23 +0000] "POST /navigation.php?ajax_request=1&token=d233950b9cc97380f14fe529aa96ef15 HTTP/1.1" 200 2014 "http://phpmyadmin.my.domain/" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.31 (KHTML, like Gecko) Chrome/26.0.1410.64 Safari/537.31" "-"</p>
<p>xxx.yyy.zzz.qqq - - [04/May/2013:05:30:27 +0000] "GET /import_status.php?id=51849cee2baaa&token=d233950b9cc97380f14fe529aa96ef15&&_nocache=1367645436530991572 HTTP/1.1" 200 114 "http://phpmyadmin.my.domain/" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.31 (KHTML, like Gecko) Chrome/26.0.1410.64 Safari/537.31" "-"</p>
<p>xxx.yyy.zzz.qqq - - [04/May/2013:05:31:28 +0000] "GET /import_status.php?message=true&token=d233950b9cc97380f14fe529aa96ef15 HTTP/1.1" 404 570 "http://phpmyadmin.my.domain/" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.31 (KHTML, like Gecko) Chrome/26.0.1410.64 Safari/537.31" "-"</p>
<p>xxx.yyy.zzz.qqq - - [04/May/2013:05:31:43 +0000] "POST /import.php HTTP/1.1" 404 570 "http://phpmyadmin.my.domain/" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.31 (KHTML, like Gecko) Chrome/26.0.1410.64 Safari/537.31" "-"</p>
<p>В httpd:</p>
<p>127.0.0.1 - - [04/May/2013:05:30:22 +0000] "GET /server_import.php?db=&token=d233950b9cc97380f14fe529aa96ef15&ajax_request=true&ajax_page_request=true&menuHashes=957353df&_nocache=1367645430561421331 HTTP/1.0" 200 20352</p>
<p>127.0.0.1 - - [04/May/2013:05:30:22 +0000] "POST /navigation.php?ajax_request=1&token=d233950b9cc97380f14fe529aa96ef15 HTTP/1.0" 200 2014</p>
<p>127.0.0.1 - - [04/May/2013:05:30:27 +0000] "GET /import_status.php?id=51849cee2baaa&token=d233950b9cc97380f14fe529aa96ef15&&_nocache=1367645436530991572 HTTP/1.0" 200 114</p>
<p>То есть последние два запроса не были отброшены на апач. </p>
<p>Кусок конфига Nginx</p>
<pre><code>access_log /var/log/site/nginx.phpmyadmin.access.log main;
root /var/www/site/phpmyadmin/;
index index.php index.html index.htm;
location / {
try_files $uri $uri/ /index.php;
}
location ~ \.php$ {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header Host $host;
proxy_pass http://127.0.0.1:8080;
}
</code></pre>
adw0rd на "Nginx и Apache2. Установка и быстрая настройка!"
2012-06-25T19:41:52+04:00adw0rdhttps://adw0rd.com/2009/03/27/nginx-and-apache-install/#comment-5752В таком случае, что делать если сайтов несколько, в location через пробел перечислять адреса папок с каждым сайтом ? Несколько это сколько? Если 3, то делайте для каждого свой "server" и там определяйте location's. Если 1000, то вычисляйте автоматически, типа того: location ~* \.(jpg|jpeg|gif|png|ico|css|bmp|swf|js)$ { try_files /home/roma/$host$uri =404; } ps.…
<blockquote>В таком случае, что делать если сайтов несколько, в location через пробел перечислять адреса папок с каждым сайтом ? </blockquote>
<p>Несколько это сколько?<br />
Если 3, то делайте для каждого свой "server" и там определяйте location's.<br />
Если 1000, то вычисляйте автоматически, типа того:</p>
<pre><code>
location ~* \.(jpg|jpeg|gif|png|ico|css|bmp|swf|js)$ {
try_files /home/roma/$host$uri =404;
}
</code></pre>
<p>ps. location не проверял</p>
<p>Еще посмотрите http://wiki.nginx.org/HttpCoreModule#alias</p>
adw0rd на "Nginx и Apache2. Установка и быстрая настройка!"
2012-06-25T19:34:29+04:00adw0rdhttps://adw0rd.com/2009/03/27/nginx-and-apache-install/#comment-5751Например, если адрес картинки "http://golf941.streamrootserver.com/images/my.png" то этот location будет запрашивать картинку так: /home/roma + /images/my.png = /home/roma/images/my.png У вас по этому адресу картинка? Вообщем вот такая схема: $document_root + $request_uri http://wiki.nginx.org/HttpCoreModule#.24document_root http://wiki.nginx.org/HttpCoreModule#.24request_uri Почитайте http://wiki.nginx.org/HttpCoreModule#try_files
<p>Например, если адрес картинки "http://golf941.streamrootserver.com/images/my.png" то этот location будет запрашивать картинку так:</p>
<pre><code>/home/roma + /images/my.png = /home/roma/images/my.png</code></pre>
<p>У вас по этому адресу картинка?</p>
<p>Вообщем вот такая схема:</p>
<blockquote>
<blockquote>
<blockquote>
<p>$document_root + $request_uri</p>
</blockquote>
</blockquote>
</blockquote>
<p>http://wiki.nginx.org/HttpCoreModule#.24document_root<br />
http://wiki.nginx.org/HttpCoreModule#.24request_uri</p>
<p>Почитайте http://wiki.nginx.org/HttpCoreModule#try_files</p>
Рома007 на "Nginx и Apache2. Установка и быстрая настройка!"
2012-06-25T17:25:13+04:00Рома007https://adw0rd.com/2009/03/27/nginx-and-apache-install/#comment-5750Как я понял в блоке location ~* \.(jpg|jpeg|gif|png|ico|css|bmp|swf|js)$ { root /home/roma; } в root пишется путь к корневой директории сайта В таком случае, что делать если сайтов несколько, в location через пробел перечислять адреса папок с каждым сайтом ? Извиняюсь если вопрос глупый, просто я в настройках серверов мало что…
<p>Как я понял в блоке </p>
<blockquote>
location ~* \.(jpg|jpeg|gif|png|ico|css|bmp|swf|js)$ {
root /home/roma;
}
</blockquote>
<p>в root пишется путь к корневой директории сайта<br />
В таком случае, что делать если сайтов несколько, в location через пробел перечислять адреса папок с каждым сайтом ?</p>
<p>Извиняюсь если вопрос глупый, просто я в настройках серверов мало что понимаю.</p>
Рома007 на "Nginx и Apache2. Установка и быстрая настройка!"
2012-06-25T12:25:38+04:00Рома007https://adw0rd.com/2009/03/27/nginx-and-apache-install/#comment-5749У меня после подключения nginx на сайтах почему-то перестали загружаться скрипты, картинки и css. Может в конфиге энджинкса неправильно задал пути? Вот конфиг: user www-data; worker_processes 2; error_log /var/log/nginx/error.log; pid /var/run/nginx.pid; events { worker_connections 1024; #use kqueue; } http { include /etc/nginx/mime.types; default_type application/octet-stream; access_log /var/log/nginx/access.log; # Директива задаёт таймаут…
<p>У меня после подключения nginx на сайтах почему-то перестали загружаться скрипты, картинки и css.<br />
Может в конфиге энджинкса неправильно задал пути?<br />
Вот конфиг:</p>
<pre><code>
user www-data;
worker_processes 2;
error_log /var/log/nginx/error.log;
pid /var/run/nginx.pid;
events {
worker_connections 1024;
#use kqueue;
}
http {
include /etc/nginx/mime.types;
default_type application/octet-stream;
access_log /var/log/nginx/access.log;
# Директива задаёт таймаут при чтении заголовка запроса клиента
client_header_timeout 3m;
# Директива задаёт таймаут при чтении тела запроса клиента
client_body_timeout 3m;
# Директива задаёт таймаут при передаче ответа клиенту
send_timeout 3m;
# Директива задаёт таймаут, в течение которого keep-alive соединение с клиентом не будет закрыто со стороны сервера
keepalive_timeout 2m;
sendfile on;
upstream backend {
# Директива задаёт имя и параметры сервера. Обратите внимание, мы будем
# использовать имя "backend" в директиве proxy_pass
server 85.25.146.80:81;
}
server {
# Слушать 80 порт
listen 80;
# Использовать следующие хосты
server_name golf941.streamrootserver.com;
# Кодировка
#charset UTF-8;
# Лог доступа для конкретного виртуального хоста
#access_log logs/host.access.log main;
# Максимальный размер тела запроса клиента
client_max_body_size 101M;
# Разруливаем статику и динамку, смотрите описание ниже в этой статье!
location ~* \.(jpg|jpeg|gif|png|ico|css|bmp|swf|js)$ {
root /home/roma;
}
location ~ /\.ht {
deny all;
}
location / {
proxy_pass http://backend/;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_connect_timeout 120;
proxy_send_timeout 120;
proxy_read_timeout 180;
}
# Адрес страницы 404-ой ошибки, далее все ошибки по аналогии
error_page 404 /var/www/kayros/data/www/404.html;
# Аналогично 404, только при этом назначается псевдоним 50x.html для всех
# 50x-тых ошибок и далее перенаправляется все на "root"
error_page 500 502 503 504 /var/www/kayros/data/www/50x.html;
location = /50x.html {
# корневая директория
root /usr/local/www/nginx-dist;
}
}
#tcp_nodelay on;
#gzip on;
#gzip_disable "MSIE [1-6]\.(?!.*SV1)";
#include /etc/nginx/conf.d/*.conf;
#include /etc/nginx/sites-enabled/*;
}
</code></pre>
adw0rd на "Nginx и Apache2. Установка и быстрая настройка!"
2012-05-18T13:42:13+04:00adw0rdhttps://adw0rd.com/2009/03/27/nginx-and-apache-install/#comment-5717Dmitry Paskal, отлично, только при чем тут Debian? У меня происходит установка из портов на FreeBSD, поэтому используется make install ))
<p>Dmitry Paskal, отлично, только при чем тут Debian?<br />
У меня происходит установка из портов на FreeBSD, поэтому используется make install ))</p>
Dmitry Paskal на "Nginx и Apache2. Установка и быстрая настройка!"
2012-05-18T11:10:09+04:00Dmitry Paskalhttps://adw0rd.com/2009/03/27/nginx-and-apache-install/#comment-5716Автор, прочтите пожалуйста: https:// debian.pro/628
<p>Автор, прочтите пожалуйста: https:// debian.pro/628</p>
adw0rd на "Nginx и Apache2. Установка и быстрая настройка!"
2012-02-09T01:34:43+04:00adw0rdhttps://adw0rd.com/2009/03/27/nginx-and-apache-install/#comment-5588Александр, если вы хотите чтобы nginx обрабатывал 443, то добавьте его в listen: server { # Слушать 80 порт listen 80; на server { listen 80; listen 443; http://nginx.org/ru/docs/http/ngx_http_core_module.html#listen
<p>Александр, если вы хотите чтобы nginx обрабатывал 443, то добавьте его в listen:</p>
<pre><code>
server {
# Слушать 80 порт
listen 80;
</code></pre>
<p>на</p>
<pre><code>
server {
listen 80;
listen 443;
</code></pre>
<p>http://nginx.org/ru/docs/http/ngx_http_core_module.html#listen</p>
adw0rd на "Nginx и Apache2. Установка и быстрая настройка!"
2012-02-09T01:28:12+04:00adw0rdhttps://adw0rd.com/2009/03/27/nginx-and-apache-install/#comment-5587WTF0_o, думаю движки используют $_SERVER в своих гнусных целях, надо сделать страничку i.php (типа того) и там: <?php var_dump($_SERVER); На основе этой информации можно понять какие директивы используются, после чего их в Nginx предварительно подделывать. ps. RPAF помогает правильно передавать клиентский IP, а вам надо сервера
<p>WTF0_o, думаю движки используют $_SERVER в своих гнусных целях, надо сделать страничку i.php (типа того) и там:</p>
<pre><code><?php var_dump($_SERVER);</code></pre>
<p>На основе этой информации можно понять какие директивы используются, после чего их в Nginx предварительно подделывать.<br />
ps. RPAF помогает правильно передавать клиентский IP, а вам надо сервера</p>
adw0rd на "Nginx и Apache2. Установка и быстрая настройка!"
2012-02-09T01:10:42+04:00adw0rdhttps://adw0rd.com/2009/03/27/nginx-and-apache-install/#comment-5586root_s, MaxClients в Apache надо уменьшить, например до 10.
<p>root_s, MaxClients в Apache надо уменьшить, например до 10.</p>