nginx толи лыжи не едут...

12
VZ
На сайте с 16.09.2007
Offline
40
9640

Дано:

Корень сайта /var/wwww/html/example/

Картинки лежат в /var/wwww/html/example/images/

Apache 2.2.3 слушает 800 порт на этой-же машине.

Хочется nginx заюзать как frontend, ну и картинки отдавать nginx-ом.

Конфиг:


worker_processes 2;
error_log /var/log/nginx.error.log info;
pid /var/run/nginx.pid;

events {
worker_connections 1024;
}

http {
include conf/mime.types;
default_type application/octet-stream;

client_header_timeout 3m;
client_body_timeout 3m;
send_timeout 3m;

client_header_buffer_size 1k;
large_client_header_buffers 4 4k;

gzip on;
gzip_min_length 1100;
gzip_buffers 4 8k;
gzip_types text/plain;

output_buffers 1 32k;
postpone_output 1460;

sendfile on;
tcp_nopush on;
tcp_nodelay on;

keepalive_timeout 75 20;


server {
listen 80;

access_log /var/log/nginx.access_log main;

location / {
proxy_pass http://127.0.0.1:800/;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;

client_max_body_size 10m;
client_body_buffer_size 128k;

client_body_temp_path /var/nginx/client_body_temp;

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 64k;

proxy_temp_path /var/nginx/proxy_temp;

charset windows-1251;
}

error_page 404 /404.html;

location /images/ {
root /var/wwww/html/example/;
access_log /var/log/nginx_images_log download;

}

}

}

В итоге сайт виден без картинок.

в логах ругань на отсутствие файла

2008/05/01 00:50:27 [error] 4548#0: *1 open() "/var/wwww/html/example/images/foto.jpg" failed (2: No such file or directory), client:xxx.xxx.xxx.216, server: localhost, request: "GET /images/foto.jpg HTTP/1.1", host: "www.xxx.ru", referrer: "http://www.xxx.ru/yyy/zzzz.html"

Посерфил по инету, нашел примеры конфигов, попробовал заменить конструкцию с location /images/ на такую


location ~* ^.+\.(jpg|jpeg|gif)$ {
root /var/wwww/html/vado/;
}

сайт по прежнему виден без картинок.

Открыл 800-й порт - апач отдает с картинками.... (что не удивляет, но решил перепроверить).

С правами игрался - ставил на картинки 777.

Кто-то сталкивался с такой бодягой? В каком направлении рыть?

Забыл написать - все эта возня происходит с неймбазэд виртулхостом.

LEOnidUKG
На сайте с 25.11.2006
Offline
1769
#1

Лучше обратитесь к профи. в этом деле, настройка стоит 14$ всё сделают в течении 1 часа.

https://my.mirhosting.com/

Пользовался сам, делали настройки nginx на весь сервер.

✅ Мой Телеграм канал по SEO, оптимизации сайтов и серверов: https://t.me/leonidukgLIVE ✅ Качественное и рабочее размещение SEO статей СНГ и Бурж: https://getmanylinks.ru/ ✅ Настройка и оптимизация серверов https://getmanyspeed.ru/
kxk
На сайте с 30.01.2005
Offline
990
kxk
#2

LEOnidUKG, +1 за любимых админов из Mirhosting.com

Ваш DEVOPS
VZ
На сайте с 16.09.2007
Offline
40
#3

LEOnidUKG и kxk - внимательно читаем топик. Вопрос стоит не к кому обратится, а кто с подобным сталкивался. Если-б нужно было чтоб дядя настроил - я б взял фуллманагед сервер - это в итоге вышло-б дешевле.

iBBi
На сайте с 13.02.2007
Offline
323
#4

wget http://www.sysoev.ru/nginx/nginx-0.5.32.tar.gz
tar -zxf nginx-0.5.32.tar.gz
cd nginx-0.5.32

wget http://internap.dl.sourceforge.net/sourceforge/pcre/pcre-6.1.tar.gz
tar -zxf pcre-6.1.tar.gz

./configure --sbin-path=/usr/local/nginx/nginx --conf-path=/usr/local/nginx/nginx.conf --pid-path=/usr/local/nginx/nginx.pid --with-pcre=pcre-6.1 --with-http_addition_module --with-http_stub_status_module

make
make install

[ /etc/init.d/nginx ]

#!/bin/sh
# nginx - this script starts and stops the nginx daemin
# chkconfig: - 85 15
# description: Nginx is an HTTP(S) server, HTTP(S) reverse \
# proxy and IMAP/POP3 proxy server
# processname: nginx
# config: /usr/local/nginx/nginx.conf
# pidfile: /var/run/nginx.pid

. /etc/rc.d/init.d/functions
. /etc/sysconfig/network
[ "$NETWORKING" = "no" ] && exit 0

nginx="/usr/local/nginx/nginx"
prog=$(basename $nginx)

[ -e /etc/sysconfig/nginx ] && . /etc/sysconfig/nginx
lockfile=/var/lock/subsys/nginx

start() {
echo -n $"Starting $prog: "
daemon $nginx -c /usr/local/nginx/nginx.conf
retval=$?
echo
[ $retval -eq 0 ] && touch $lockfile
return $retval
}

stop() {
echo -n $"Stopping $prog: "
killproc $prog -QUIT
retval=$?
echo
[ $retval -eq 0 ] && rm -f $lockfile
return $retval
}

restart() {
stop
start
}

reload() {
echo -n $"Reloading $prog: "
killproc $nginx -HUP
RETVAL=$?
echo
}

force_reload() {
restart
}

fdr_status() {
status $prog
}

case "$1" in
start|stop|restart|reload)
$1
;;
force-reload)
force_reload
;;
status)
fdr_status
;;
condrestart|try-restart)
[ ! -f $lockfile ] || restart
;;
*)
echo $"Usage: $0 {start|stop|status|restart|try-restart|reload|force-reload}"
exit 2
esac

[ /usr/local/nginx/nginx.conf ]

user  nobody;
worker_processes 4;
error_log logs/error.log;
pid logs/nginx.pid;
events {
worker_connections 2048;
}
http {
include mime.types;
default_type application/octet-stream;

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

access_log logs/access.log main;

sendfile on;
tcp_nopush on;
tcp_nodelay on;

limit_zone one $binary_remote_addr 10m;

server {
listen _nginx_IP_:80;
server_name example.com;

access_log /usr/local/apache/domlogs/example.com main;

location /nginx_status {
stub_status on;
access_log off;
allow all;
# deny all;
}
# Main location
location / {
proxy_pass http://_apache_IP_:80/;
proxy_redirect off;

proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

client_max_body_size 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 64k;
}
# Static files location
location ~* ^.+\.(jpg|jpeg|gif|png|ico|css|zip|tgz|gz|rar|bz2|doc|xls|exe|pdf|ppt|txt|tar|mid|midi|wav|bmp|avi|swf)$ {
root /home/example/public_html/;
}

}
server {
...
}
}

Теперь надо поставить модуль mod_realip для apache 1.x и mod_rpaf для 2.x

http://sysoev.ru/mod_realip/

например

cd /usr/local/src
wget http://sysoev.ru/mod_realip/mod_realip-2.0.tar.gz
tar zxf mod_realip-2.0.tar.gz && cd mod_realip-2.0
/usr/local/apache/bin/apxs -iac mod_realip.c
strip /usr/local/apache/libexec/mod_realip.so
/etc/init.d/httpd restart

Прописываем в конфиге апача жестко все IP на которые слушать кроме того выделенного, который указан в nginx конфиге.

Listen 127.0.0.1:80
Listen 111.111.111.112:80
...

<IfModule mod_realip.c>
RealIP on
</IfModule>

Для Apache2

wget http://stderr.net/apache/rpaf/download/mod_rpaf-0.5.tar.gz
/usr/local/apache/bin/apxs -i -c -n mod_rpaf-2.0.so mod_rpaf-2.0.c

в httpd.conf

RPAFenable On
RPAFsethostname On
RPAFproxy_ips _nginx_IP_ _apache_IP_

(c) mirhosting.com :)

Roxis
На сайте с 19.11.2006
Offline
40
#5

open() "/var/wwww/html/example/images/foto.jpg" failed (2: No such file or directory)

ясно говорит что файла нет

Хелпзонович
На сайте с 15.06.2005
Offline
133
#6

А Вы уверены, что картинки лежат в /var/wwww/.... Что-то четыре W меня настораживают

Вы там держитесь! Хорошего вам настроения. Здоровья.
Roxis
На сайте с 19.11.2006
Offline
40
#7

наверно ошибка в "/var/wwww"

Zaqwr
На сайте с 08.08.2007
Offline
111
#8

Roxis,

ls -la /var/wwww/html/example/images/foto.jpg

ls -la /var/wwww/html/example/images/

ls -la /var/wwww/html/example/

ls -la /var/wwww/html/

кто от кого работает?

Администрирование, Linux, Cisco, Juniper
VZ
На сайте с 16.09.2007
Offline
40
#9
Roxis:
open() "/var/wwww/html/example/images/foto.jpg" failed (2: No such file or directory)

ясно говорит что файла нет

угу, как в ДМБ. nginx суслика не видит, но он есть. проверял руками и даже права на него ставил....

iBBi:

Прописываем в конфиге апача жестко все IP на которые слушать кроме того выделенного, который указан в nginx конфиге.

Вот по этому скользкому моменту вопрос - разве недостаточно разнести nginx и апач по разным портам? Им обязательно нужны разные IP? Просто логики немогу понять.... вроде разных портов должно хватать... И если нужно разносить на разные IP, то прокатит-ли вариант nginx - на внешнем белом, а Apache на 127.0.0.1 ?

Roxis
На сайте с 19.11.2006
Offline
40
#10

не понял вопроса

12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий