skyscr

skyscr
Рейтинг
68
Регистрация
26.01.2010

спасибо за подсказку, выдает:

root@:~# netstat -lnp

Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name

tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 11780/nginx

tcp 0 0 127.0.0.1:8080 0.0.0.0:* LISTEN 11391/apache2

tcp 0 0 127.0.0.1:8081 0.0.0.0:* LISTEN 11391/apache2

tcp 0 0 127.0.0.1:81 0.0.0.0:* LISTEN 11391/apache2

tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 18024/sshd

tcp 0 0 127.0.0.1:8888 0.0.0.0:* LISTEN 11391/apache2

tcp 0 0 0.0.0.0:25 0.0.0.0:* LISTEN 1588/master

tcp 0 0 0.0.0.0:11111 0.0.0.0:* LISTEN 21698/perl

tcp 0 0 127.0.0.1:3306 0.0.0.0:* LISTEN 17991/mysqld

tcp6 0 0 :::22 :::* LISTEN 18024/sshd

udp 0 0 0.0.0.0:11111 0.0.0.0:* 21698/perl

raw6 0 0 :::58 :::* 7 -

Active UNIX domain sockets (only servers)

Proto RefCnt Flags Type State I-Node PID/Program name P ath

unix 2 [ ACC ] STREAM LISTENING 13807974 17991/mysqld / var/run/mysqld/mysqld.sock

unix 2 [ ACC ] STREAM LISTENING 11841625 1588/master p ublic/cleanup

unix 2 [ ACC ] STREAM LISTENING 175073 1/init @ /com/ubuntu/upstart

unix 2 [ ACC ] STREAM LISTENING 11841632 1588/master p rivate/tlsmgr

unix 2 [ ACC ] STREAM LISTENING 11841636 1588/master p rivate/rewrite

unix 2 [ ACC ] STREAM LISTENING 11841640 1588/master p rivate/bounce

unix 2 [ ACC ] STREAM LISTENING 11841644 1588/master p rivate/defer

unix 2 [ ACC ] STREAM LISTENING 11841648 1588/master p rivate/trace

unix 2 [ ACC ] STREAM LISTENING 11841652 1588/master p rivate/verify

unix 2 [ ACC ] STREAM LISTENING 11841656 1588/master p ublic/flush

unix 2 [ ACC ] STREAM LISTENING 11841660 1588/master p rivate/proxymap

unix 2 [ ACC ] STREAM LISTENING 11841664 1588/master p rivate/proxywrite

unix 2 [ ACC ] STREAM LISTENING 11841668 1588/master p rivate/smtp

unix 2 [ ACC ] STREAM LISTENING 11841672 1588/master p rivate/relay

unix 2 [ ACC ] STREAM LISTENING 11841676 1588/master p ublic/showq

unix 2 [ ACC ] STREAM LISTENING 11841680 1588/master p rivate/error

unix 2 [ ACC ] STREAM LISTENING 11841684 1588/master p rivate/retry

unix 2 [ ACC ] STREAM LISTENING 11841688 1588/master p rivate/discard

unix 2 [ ACC ] STREAM LISTENING 11841692 1588/master p rivate/local

unix 2 [ ACC ] STREAM LISTENING 11841696 1588/master p rivate/virtual

unix 2 [ ACC ] STREAM LISTENING 11841700 1588/master p rivate/lmtp

unix 2 [ ACC ] STREAM LISTENING 11841704 1588/master p rivate/anvil

unix 2 [ ACC ] STREAM LISTENING 11841708 1588/master p rivate/scache

unix 2 [ ACC ] STREAM LISTENING 11841712 1588/master p rivate/maildrop

unix 2 [ ACC ] STREAM LISTENING 11841716 1588/master p rivate/uucp

unix 2 [ ACC ] STREAM LISTENING 11841720 1588/master p rivate/ifmail

unix 2 [ ACC ] STREAM LISTENING 11841724 1588/master p rivate/bsmtp

unix 2 [ ACC ] STREAM LISTENING 11841728 1588/master p rivate/scalemail-backend

unix 2 [ ACC ] STREAM LISTENING 11841732 1588/master p rivate/mailman

root@:~# ip addr show

1: lo: <LOOPBACK> mtu 16436 qdisc noop state DOWN

link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00

3: venet0: <BROADCAST,POINTOPOINT,NOARP,UP,LOWER_UP> mtu 1500 qdisc noqueue state UNKNOWN

link/void

inet 127.0.0.1/32 scope host venet0

inet my_ip/32 scope global venet0:0

root@:~# ip route show

192.0.2.1 dev venet0 scope link

default via 192.0.2.1 dev venet0

может всё-таки ports.conf в апаче косячный:

NameVirtualHost 127.0.0.1:81

Listen 127.0.0.1:81

Listen 127.0.0.1:8081

Listen 127.0.0.1:8888

сеть я думаю в порядке, nginx же видит соединение... вот только apache почему-то молчит...третий день в дауне, ппц

а что глянуть? у меня нет фаерволов, лишь пару защит от dosa.

логически мысли, что что-то не так с адресами, но даже и не знаю куда капнуть, ведь всё работало...😡

r0mik спасибо за идею, очень хочу попробовать с кешем...

nginx вроде решил пока так

location ~ ^/components/com_virtuemart/shop_image/product/.*\.(jpg|jpeg|gif|png)$ {

proxy_pass http://127.0.0.1:81;
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;

}

вот функции запросов этих картинок в virtuemart

classes/

function image_tag($image, $args="", $resize=1, $path_appendix='product', $thumb_width=0, $thumb_height=0 ) {
global $mosConfig_live_site, $mosConfig_absolute_path;
require_once( CLASSPATH . 'imageTools.class.php');

$border="";
if( strpos( $args, "border=" )===false ) {
$border = 'border="0"';
}
$height = $width = 0;

if ($image != "") {
// URL
if( substr( $image, 0, 4) == "http" ) {
$url = $image;
}
// local image file
else {
if(PSHOP_IMG_RESIZE_ENABLE == '1' && $resize==1) {
$url = $mosConfig_live_site."/components/com_virtuemart/show_image_in_imgtag.php?filename=".urlencode($image)."&amp;newxsize=".PSHOP_IMG_WIDTH."&amp;newysize=".PSHOP_IMG_HEIGHT."&amp;fileout=";
if( !strpos( $args, "height=" )) {
$arr = @getimagesize( vmImageTools::getresizedfilename( $image, $path_appendix, '', $thumb_height, $thumb_width ) );
$width = $arr[0]; $height = $arr[1];
}
}
else {
$url = IMAGEURL.$path_appendix.'/'.$image;
$using_resized_image = false;
if( $resize ) {
$image = vmImageTools::getresizedfilename( $image, $path_appendix, '', $thumb_height, $thumb_width );
if( file_exists($image)) {
$using_resized_image = true;
}
}
if( $resize && ! $using_resized_image) {
if( $height < $width ) {
$width = @round($width / ($height / PSHOP_IMG_HEIGHT));
$height = PSHOP_IMG_HEIGHT;
} else {
$height = @round($height / ($width / PSHOP_IMG_WIDTH ));
$width = PSHOP_IMG_WIDTH;
}
}
if( file_exists($image)) {
$url = str_replace( $mosConfig_absolute_path, $mosConfig_live_site, $image );

} elseif( file_exists($mosConfig_absolute_path.'/'.$image)) {
$url = $mosConfig_live_site.'/'.$image;
}

$url = str_replace('//', '/', $url );
$url = str_replace(':/', '://', $url );
if( !strpos( $args, "height=" ) ) {
$f = str_replace( IMAGEURL, IMAGEPATH, $url );

if ( file_exists($f) ) {
$arr = getimagesize( $f );
$width = $arr[0]; $height = $arr[1];
} else {
$width = 100; $height = 100;
}

}

}
$url = str_replace( basename( $url ), $GLOBALS['VM_LANG']->convert(basename($url)), $url );
}
}
else {
$url = VM_THEMEURL.'images/'.NO_IMAGE;
}

return vmCommonHTML::imageTag( $url, '', '', $height, $width, '', '', $args.' '.$border );

}

и html/


if( $db_browse->f("product_thumb_image") ) {
$product_thumb_image = $db_browse->f("product_thumb_image");
}
else {
if( $product_parent_id != 0 ) {
$product_thumb_image = $dbp->f("product_thumb_image"); // Use product_thumb_image from Parent Product
}
else {
$product_thumb_image = 0;
}
}
if( $product_thumb_image ) {
if( substr( $product_thumb_image, 0, 4) != "http" ) {
if(PSHOP_IMG_RESIZE_ENABLE == '1') {
$product_thumb_image = $mosConfig_live_site."/components/com_virtuemart/show_image_in_imgtag.php?filename=".urlencode($product_thumb_image)."&amp;newxsize=".PSHOP_IMG_WIDTH."&amp;newysize=".PSHOP_IMG_HEIGHT."&amp;fileout=";
}
elseif( !file_exists( IMAGEPATH."product/".$product_thumb_image )) {
$product_thumb_image = VM_THEMEURL.'images/'.NO_IMAGE;
}
}
}
else {
$product_thumb_image = VM_THEMEURL.'images/'.NO_IMAGE;
}

// Get the full image path, or URL if set, or the no_image
if( $db_browse->f("product_full_image") ) {
$product_full_image = $db_browse->f("product_full_image");
} elseif( $product_parent_id != 0 ) {
$product_full_image = $dbp->f("product_full_image"); // Use product_full_image from Parent Product
}
else {
$product_full_image = VM_THEMEURL . 'images/' . NO_IMAGE;

// Get the size information for the no_image
if( file_exists( VM_THEMEPATH . 'images/' . NO_IMAGE ) ) {
$full_image_info = getimagesize( VM_THEMEPATH . 'images/' . NO_IMAGE );
$full_image_width = $full_image_info[0]+40;
$full_image_height = $full_image_info[1]+40;
}
}

// Get image size information and add the full URL
if( substr( $product_full_image, 0, 4) != 'http' ) {
// This is a local image
if( file_exists( IMAGEPATH . 'product/' . $product_full_image ) ) {
$full_image_info = getimagesize( IMAGEPATH . 'product/' . $product_full_image );
$full_image_width = $full_image_info[0]+40;
$full_image_height = $full_image_info[1]+40;
}

$product_full_image = IMAGEURL . 'product/' . $product_full_image;
} elseif( !isset( $full_image_width ) || !isset( $full_image_height ) ) {
// This is a URL image
$full_image_info = @getimagesize( $product_full_image );
$full_image_width = $full_image_info[0]+40;
$full_image_height = $full_image_info[1]+40;
}

ещё подскажите пожалуйста, кто знает, как правильно прописать загрузку этих картинок через watermark.php

(RewriteRule ^(.*)$ /watermark/watermark.php [T=application/x-httpd-php,L,QSA] )

пробую писать в nginx

rewrite ^(.*components/com_virtuemart/shop_image/product.*\.jpg)$ /watermark/watermark.php?$1 last;

или

rewrite ^/components/com_virtuemart/shop_image/product/(.*)\.jpg /watermark/watermark.php?$request_filename;

вставлял его в главный location, никаких признаков жизни...

пытается заработать в статике location ~* ^.+\.(gif|svg|js|css|mp3|ogg|mpe?g|avi|zip|gz|bz2?|rar|swf)$ {

хотя бы вообще не грузит .jpg, просто висит загрузка картинки, но почему через watermark не проходит?

спасибо всем за подсказки 🍻

alivar, настройки не помогли...

bugsmoran, всё понятно, спасибо за подробности... =)

думаю оставить 1 prefork, но не знаю даже примерного лимита посещений, есть примеры?

и ещё хотел узнать почему-то ссылки настроенные в flash баннере, когда заходишь с адресом без www. открывает, а с www. не видит...

включил keepalive и сделал 2 сек и 0 сек, разницы нет, может сделать отдельно локацию для папки с нужными картинками через apache.... или мож что-нить ещё посоветуете?

как какая разница, worker делает многопоточность из скриптов, а prefork ждет каждый скрипт и из-за этого надежнее workera, но тормознее... или я не прав, Вы же админ =)

skyscr добавил 14.10.2010 в 19:33

как понял мне поможет

"sudo apt-get install apache2-mpm-worker"

httpd не знает такой команды....

подключенные модули к апачу:

alias,

auth_basic,

authn_file,

authz_default,

authz_groupfile,

authz_host,

authz_user,

autoindex,

cgi,

deflate,

dir,

env,

filter,

mime,

mod-evasive,

negotiation,

php5,

reqtimeout,

rewrite,

rpaf,

setenvif,

ssl,

status,

suexec

skyscr добавил 14.10.2010 в 14:20


Server version: Apache/2.2.14 (Ubuntu)
Server built: Aug 19 2010 03:20:29
Server's Module Magic Number: 20051115:23
Server loaded: APR 1.3.8, APR-Util 1.3.9
Compiled using: APR 1.3.8, APR-Util 1.3.9
Architecture: 32-bit
Server MPM: Prefork
threaded: no
forked: yes (variable process count)
Server compiled with....
-D APACHE_MPM_DIR="server/mpm/prefork"
-D APR_HAS_SENDFILE
-D APR_HAS_MMAP
-D APR_HAVE_IPV6 (IPv4-mapped addresses enabled)
-D APR_USE_SYSVSEM_SERIALIZE
-D APR_USE_PTHREAD_SERIALIZE
-D SINGLE_LISTEN_UNSERIALIZED_ACCEPT
-D APR_HAS_OTHER_CHILD
-D AP_HAVE_RELIABLE_PIPED_LOGS
-D DYNAMIC_MODULE_LIMIT=128
-D HTTPD_ROOT=""
-D SUEXEC_BIN="/usr/lib/apache2/suexec"
-D DEFAULT_PIDLOG="/var/run/apache2.pid"
-D DEFAULT_SCOREBOARD="logs/apache_runtime_status"
-D DEFAULT_LOCKFILE="/var/run/apache2/accept.lock"
-D DEFAULT_ERRORLOG="logs/error_log"
-D AP_TYPES_CONFIG_FILE="/etc/apache2/mime.types"
-D SERVER_CONFIG_FILE="/etc/apache2/apache2.conf"

хотите сказать дело в prefork?

skyscr добавил 14.10.2010 в 18:15

как переконфигурировать с prefork на worker и когда понадобится возможно ли вернуть обратно?

всё настроил, в итоге получил от новой связки, по сравнению с работающей старой на apache+fcgi+memcache+eacc и 2 проца+512, nginx+apache+modphp+xcache выдал разницу загрузки в 2 раза быстрее на 1 проце+512! я в шоке и по быстрому переехал на новый сервер, а старый отключил... =)

с fast-cgi реально чувствуется прирост, но стабильность важнее,

спасибо за ценные советы...

skyscr добавил 11.10.2010 в 11:22

почему-то быстро грузит все картинки и страницы, кроме картинок товаров магазина,если их много, то грузятся в один поток (по 1 одной), подскажите как увеличить кол-во потоков?

мож что-нибудь хорошее по настройкам посоветуете? если не против, покажу:

apache2.conf


Timeout 60
KeepAlive Off
MaxKeepAliveRequests 50
KeepAliveTimeout 5

<IfModule mpm_prefork_module>
StartServers 1
MinSpareServers 1
MaxSpareServers 4
MaxClients 4
MaxRequestsPerChild 1000
</IfModule>

<IfModule mpm_worker_module>
StartServers 2
MinSpareThreads 10
MaxSpareThreads 15
ThreadLimit 25
ThreadsPerChild 8
MaxClients 48
MaxRequestsPerChild 1000
</IfModule>

<IfModule mpm_event_module>
StartServers 2
MaxClients 20
MinSpareThreads 15
MaxSpareThreads 55
ThreadLimit 64
ThreadsPerChild 55
MaxRequestsPerChild 1000
</IfModule>

User www-data
Group www-data
AccessFileName .htaccess

<Files ~ "^\.ht">
Order allow,deny
Deny from all
Satisfy all
</Files>

default.conf

<VirtualHost *:81>
ServerName site.ru
ServerAdmin skyscr@site.ru
ServerAlias www.site.ru site.ru
DocumentRoot /home/site.ru
<Directory /home/site.ru>
Options FollowSymLinks
Options -Indexes
AllowOverride All
Order allow,deny
allow from all
</Directory>
CustomLog /var/log/apache2/access.log combined
ErrorLog /var/log/apache2/error.log
AddDefaultCharset utf-8
</VirtualHost>

nginx.conf

user www-data;
worker_processes 1;
pid /var/run/nginx.pid;

events {
worker_connections 64000;
use epoll;

}

http {

limit_req_zone $binary_remote_addr zone=one:10m rate=3r/s;
include mime.types;
default_type application/octet-stream;

sendfile on;
keepalive_timeout 65;
client_max_body_size 100m;
tcp_nodelay on;
gzip off;

server {
listen 80;
server_name site.ru www.site.ru;
rewrite ^(/administrator/.*)$ https://$host$1 permanent;
location / {
limit_req zone=one burst=30;

proxy_pass http://127.0.0.1:81;
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;
}
location ~* ^.+.(webstat/|awstats|webmail/|phpmyadmin/|manimg/|administrator/|Live/) {
proxy_pass http://127.0.0.1:81;
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;
}
location ~* ^.+\.(jpg|jpeg|gif|png|svg|js|css|mp3|ogg|mpe?g|avi|zip|gz|bz2?|rar)$ {
root /home/site.ru;

error_page 404 = @fallback;
}
location @fallback {
proxy_pass http://127.0.0.1:81;
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 ~ /\index.html {
root /home/site.ru;
}

}

Всего: 60