• Нужна помощь по тонкой настройке ускорения сайта?

    @tvoyadres Автор вопроса
    Насчет кода не понятно, у меня в html страницы стоит код css, а уже в нем

    @font-face {
    font-display: swap;
    font-family: "awesome";
    font-style: normal;
    font-weight: 300;
    src: url("/font/awesome/awesome.eot?49575180");
    src: url("/font/awesome/awesome.eot?49575180#iefix") format("embedded-opentype"),
    url("/font/awesome/awesome.woff2?49575180") format("woff2"),
    url("/font/awesome/awesome.woff?49575180") format("woff"),
    url("/font/awesome/awesome.ttf?49575180") format("truetype"),
    url("/font/awesome/awesome.svg?49575180#awesome") format("svg");
    }
    Ответ написан
  • Почему занижена скорость SSD?

    @tvoyadres
    Просто поставь вместо видео карты вот все. Я так делал на серваке.
    Ответ написан
    6 комментариев
  • Нужно ли менять SSD NVME Samsung SM951?

    @tvoyadres Автор вопроса
    Теперь другой сегодня купил Samsung 970Pro на 512GB отформатировал в EXT4

    При запуске iostat -xm -t 5 %util доходит до 100% это нормально строку жирным выделил?

    напоминаю там крутится mysql с больим онлайном

    3.10.2020 22:59:40
    avg-cpu: %user %nice %system %iowait %steal %idle
    3,48 0,00 2,73 1,38 0,00 92,42

    Device: rrqm/s wrqm/s r/s w/s rMB/s wMB/s avgrq-sz avgqu-sz await r_await w_await svctm %util
    nvme1n1 29,00 0,00 8,00 1,00 0,16 0,00 37,33 0,00 0,11 0,12 0,00 0,67 0,60
    nvme0n1 0,00 72,00 2825,00 218,00 44,14 2,50 31,39 0,53 0,15 0,09 0,94 0,32 98,40
    sdb 127,00 0,00 21,00 0,00 0,68 0,00 66,29 0,00 0,24 0,24 0,00 0,67 1,40
    sda 0,00 0,00 1,00 0,00 0,00 0,00 0,00 0,00 1,00 1,00 0,00 2,00 0,20
    sdc 0,00 0,00 1,00 0,00 0,00 0,00 0,00 0,00 1,00 1,00 0,00 1,00 0,10
    Ответ написан
    Комментировать
  • Где предоставляют через api платный доступ к постоянно обновляемым данным по границам административных районов городов и регионов?

    @tvoyadres Автор вопроса
    Я такой скрипт написал, по кругу гонял, потому там бывало вытягивался список не тех границ, вроде все данные
    чистые вытянул.

    Суть в чем, сперва фильтруем по boundary=administrative, потом в получившимся мусоре ищем по type administrativ и в display_name в первом значении район, также слово район в запросе быть в результатах левой или с правой стороны от названия района, это тоже проверяем.

    <? php
    function curl($url = null, $user_agent = 'Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.102 Safari/537.36 OPR/57.0.3098.116', $proxy = [], $header = [], $referer = null, $post = null)
    {
        $ch = curl_init();
        curl_setopt($ch, CURLOPT_URL, $url);
        //curl_setopt ( $ch, CURLOPT_VERBOSE, 2 );
        curl_setopt($ch, CURLOPT_ENCODING, 0);
        curl_setopt($ch, CURLOPT_USERAGENT, $user_agent);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
        curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
        curl_setopt($ch, CURLOPT_FAILONERROR, 1);
        curl_setopt($ch, CURLOPT_HEADER, 0);
        curl_setopt($ch, CURLINFO_HEADER_OUT, 1);
        curl_setopt($ch, CURLOPT_TIMEOUT, 120);
        curl_setopt($ch, CURLOPT_COOKIEJAR, __DIR__ . '/cookie.txt');
        curl_setopt($ch, CURLOPT_COOKIEFILE, __DIR__ . '/cookie.txt');
        curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
        if (count($proxy)) {
            curl_setopt($ch, CURLOPT_PROXY, $proxy['ip']);
            curl_setopt($ch, CURLOPT_PROXYUSERPWD, $proxy['auth']);
        }
        if (count($header)) {
            curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
        }
        if ($referer) {
            curl_setopt($ch, CURLOPT_REFERER, $referer);
        }
        if ($post) {
            curl_setopt($ch, CURLOPT_POST, 1);
            curl_setopt($ch, CURLOPT_POSTFIELDS, $post);
        }
        curl_setopt($ch, CURLOPT_ENCODING, 'gzip');
        curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 120);
        $content = preg_replace(['/\>[^\S ]+/s', '/[^\S ]+\</s', '/(\s)+/s', '/> </'], ['>', '<', '\\1', '><'], curl_exec($ch));
        curl_close($ch);
        return $content;
    }
    function get_lvl(array $array) {
        $max_lvl = 1;
        foreach ($array as $value) {
            if (is_array($value)) {
                $lvl= get_lvl($value) + 1;
                if ($lvl > $max_lvl) {
                    $max_lvl = $lvl;
                }
            }
        }
        return $max_lvl;
    }
    error_reporting(E_ALL);
    if (isset($_GET['page'])) {
        $_GET['page'] += 1;
    }
    else {
        $_GET['page'] = 0;
    }
    //Тут у меня дергаются из базы названия районов, у вас соответственно будет свой вариант
    $sql = '
    	SELECT
    		*
    	FROM
    		`hi_district`
    	WHERE
    		`status` = "1" AND
    		`region` != "0"';
    //$sql .= ' AND `name` LIKE "Калининский" AND `city` LIKE "Челябинск"';
    $sql .= '
    	ORDER BY
    		`id` ASC
    	LIMIT
    		' . $_GET['page'] * 1 . ', 1';
    	$r = $db->query($sql);
    if ($db->numrows($r) > 0) {
    	while ($f = $db->fetcharray($r)) {
    		$i = 0;
    		$j = 0;
    		$find = false;
    		$f['name'] = 'район ' . $f['name'];
    		name:
    		$response = json_decode(curl('https://nominatim.openstreetmap.org/search?q=' . urlencode($f['name'] . ' ' . $f['city']) . '&format=json&polygon_geojson=1&boundary=administrative'), true);
    		$count = count($response);
    		while($i <= ($count - 1)) {
    			$tmp = explode(', ', $response[$i]['display_name']);
    			if ($response[$i]['type'] === 'administrative' && (stripos($tmp[0], 'район ') !== false || stripos($tmp[0], ' район') !== false)) {
    				print_r($response[$i]);
    				$result = [];
    				if ($response[$i]['geojson']['type'] === 'MultiPolygon') {
    					$coords = $response[$i]['geojson']['coordinates'];
    					foreach ($coords as $coord) {
    						$tmp2 = [];
    						foreach ($coord[0] as $item) {
    							$tmp2[] = array_reverse($item);
    						}
    						$result[] = $tmp2;
    					}
    				} elseif ($response[$i]['geojson']['type'] === 'Polygon') {
    					$coords = $response[$i]['geojson']['coordinates'][0];
    					foreach ($coords as $coord) {
    						$result[] = array_reverse($coord);
    					}
    				}
    				if ($result) {
    					if(get_lvl($result) >= 3) {
    						$f['boundary'] = $result[0];
    					}
    					else {
    						$f['boundary'] = $result;	
    					}
    // Запись границ координат
    					$sql = '
    						UPDATE
    							`hi_district`
    						SET
    							`boundary` = "' . serialize($f['boundary']) . '"
    						WHERE
    							`id`	= "' . $f['id'] . '"';
    					$db->query($sql);
    					$find = true;
    					echo $find;
    					break;
    				}
    			}
    			$i++;
    		}
    		if ($find === false && $j == 0) {
    			$f['name'] = str_replace('район ', '', $f['name']) . ' район';
    			echo $find;
    			sleep(2);
    			$i = 0;
    			$j++;
    			goto name;
    		}
    	}
        echo '<meta http-equiv="refresh" content="2; url='ваш сайт/get_district.php?page=' . $_GET['page'] . '">';
        exit();
    }
    else {
        echo '<br />Done';
    }
    Ответ написан
    Комментировать
  • Размер таблицы в MySql не уменьшается при очистке значений. Как быть?

    @tvoyadres
    Вообще то есть, решение нужно просто скопировать таблицу старую на новую, затем обратно новую переименовать.
    Ответ написан
    Комментировать
  • Куда идти программисту в 10 класс или в колледж?

    @tvoyadres
    В колледже ты станешь совсем тупым, там ни чему не учат, школу заканчивай ,а потом переезжай в Москву и устраивайся на работу стажером куда нибудь, за одно от армии от косишь, тебя просто не найдут.
    Ответ написан
    Комментировать
  • Как уменьшить время ответа SSL на вебсервере?

    @tvoyadres Автор вопроса
    Я тут прочел что нужно включить OCSP stapling

    добавив
    ssl_stapling on;
    ssl_stapling_verify on;

    а еще нужно извлечь, сертификат и прописать его тоже, но нормальную инструкцию по сертификатам Comodo не нашел
    Ответ написан
    Комментировать
  • ISPmanager удаляет /var/run/mariadb после перезагрузки сервера?

    @tvoyadres
    как я понимаю вопрос так и не решен я уже почти 3 часа мучаюсь, ни чего не помогает, хрень какая то

    первый вариент не сработал,

    вот это с работало но по мне это кривое решение

    Добавить в /usr/lib/tmpfiles.d/initscripts.conf

    d /var/run/mariadb 0755 mysql mysql -
    d /var/run/mysqld 0755 mysql mysql -
    Ответ написан
  • Httpd апачи не завершает процессы по timeout?

    @tvoyadres Автор вопроса
    Если выполнить команду
    netstat -plan|grep :80|awk {'print $5'}|cut -d: -f 1|sort|uniq -c|sort -nk 1

    1
    1 104.20.16.242
    1 77.75.129.83
    1 88.212.201.216
    1 95.163.255.250
    1 95.163.36.5
    2 0.0.0.0
    2 95.163.255.93
    2 95.163.255.94
    3 95.163.255.83
    3 95.163.255.86
    4 95.163.255.82
    4 95.163.255.85
    4 95.163.255.87
    4 95.163.255.97
    5 95.163.255.95
    5 95.163.255.98
    6 95.163.255.88
    6 95.163.255.92
    6 95.163.255.96
    6 95.163.255.99
    8 95.163.255.89
    4158 127.0.0.1
    чето-то меня напрягает последняя строка на 80 порту у меня висит заглушка с редиректом на другой сайт.
    Ответ написан
    Комментировать
  • Почему медленно удаляются файлы и с паузами на серверных SSD Samsung centos 6?

    @tvoyadres Автор вопроса
    Всем спасибо за участите, в общем думаю какая то проблема с одновременным чтением и удалением файлов, я затушил вебсервер, спокойно смог удалить через VC всю папку, за несколько минут, без почти без задержек объем папки был 37GB файлов сессий и временных файлов. Скорее всего диск Samsung SM951 не вытягивал одновременно чтение и удаление 15 млн. файлов.
    Ответ написан
    Комментировать
  • Как ускорить apache в связке nginx?

    @tvoyadres Автор вопроса
    Вопрос решен, меня направили в нужное направление, дальше откопал решение

    нужно выставить минимум, так как nginx почти запросы тащит через себя

    StartServers 16 MinSpareServers 16

    снять ограничение MaxRequestsPerChild 0 это нарыл на рекомендации за бугром, у меня их не хватало я бы поставил MaxRequestsPerChild 1000000, но информации не нарыл, что так можно.

    <IfModule prefork.c>
    StartServers 16
    MinSpareServers 16
    MaxSpareServers 32
    ServerLimit 16384
    MaxClients 8192
    MaxRequestsPerChild 0 
    </IfModule>


    с этой командой

    netstat -na | grep ":8080\ " | wc -l

    выводит 4300 соединений, думаю с таким настройками выдержит и 10000 соединений
    не понятно, только зачем некоторые люди рекомендуют PHP-FM, если apache справляется, если правильно настроить. Жаль, что ни где нет нормальных рекомендаций, надеюсь мое исследование кому-нибудь поможет.
    Ответ написан
    Комментировать
  • После обновления с PHP 5.6 -> 7.2 при обращении к index.php на экран выводится содержимое файла, как исправить?

    @tvoyadres
    у меня тоже выводило сперва если у вас centos 6 или 7

    то в папке /etc/httpd/php-available.d

    есть php.conf, а также вероятно есть файл php.conf.new, переменуйте его в php.conf, сохранив старую версию

    у вас должно быть примерно как тут

    #
    # PHP is an HTML-embedded scripting language which attempts to make it
    # easy for developers to write dynamically generated webpages.
    #
    
    # Cannot load both php5 and php7 modules
    <IfModule !mod_php5.c>
      <IfModule prefork.c>
        LoadModule php7_module modules/libphp7.so
      </IfModule>
    </IfModule>
    
    
    <IfModule !mod_php5.c>
      <IfModule !prefork.c>
        LoadModule php7_module modules/libphp7-zts.so
      </IfModule>
    </IfModule>
    #
    # The following lines prevent .user.ini files from being viewed by Web clients.
    #
    <Files ".user.ini">
        <IfModule mod_authz_core.c>
            Require all denied
        </IfModule>
        <IfModule !mod_authz_core.c>
            Order allow,deny
            Deny from all
            Satisfy All
        </IfModule>
    </Files>
    
    #
    # Allow php to handle Multiviews
    #
    AddType text/html .php
    
    #
    # Add index.php to the list of files that will be served as directory
    # indexes.
    #
    DirectoryIndex index.php
    
    # mod_php options
    <IfModule  mod_php7.c>
        #
        # Cause the PHP interpreter to handle files with a .php extension.
        #
        <FilesMatch \.php$>
            SetHandler application/x-httpd-php
        </FilesMatch>
    
        #
        # Uncomment the following lines to allow PHP to pretty-print .phps
        # files as PHP source code:
        #
        #<FilesMatch \.phps$>
        #    SetHandler application/x-httpd-php-source
        #</FilesMatch>
    
        #
        # Apache specific PHP configuration options
        # those can be override in each configured vhost
        #
        php_value session.save_handler "files"
        php_value session.save_path    "/var/lib/php/session"
        php_value soap.wsdl_cache_dir  "/var/lib/php/wsdlcache"
    
        #php_value opcache.file_cache   "/var/lib/php/opcache"
    </IfModule>
    Ответ написан
    Комментировать
  • Nginx проблема с длинным запросами GET?

    @tvoyadres Автор вопроса
    Сам решил по логам

    upstream sent too big header while reading response header from upstream, client

    в nginx.cof

    добавил в секцию

    http {
    ...
    proxy_buffer_size 32k;
    proxy_buffers 8 16k;
    proxy_busy_buffers_size 32k;
    ...
    }
    Ответ написан
  • Почему отваливается SSD?

    @tvoyadres
    Диск скорее всего нормальный у меня такие же стоят kingston v300 480 ГБ, в программном RAID0 система centos 6 , но у меня отваливается рандомом раз в 3-4 дня 1 диск из 4 , уже даже ни знаю, что делать. Гарантия еще год осталась, но мне кажется они скажут что все в порядке.
    Ответ написан
    Комментировать
  • CMS для сайта агенства недвижимости

    @tvoyadres
    У меня есть полностью готовый сайт недвижимости tvoyadres.ru в котором предусмотрено банально все, 7 лет непрерывной работы, по быстродействию один из самых быстрых сайтов по недвижимости в мире. А по функционалу самый мощный в России однозначно. Работать может на любом хостинге. Функционал добавление объявлений, новостей статей и тд. Наполнение справочников обычными пользователями. Есть фильтры, модерация, избраное. Кластеры на яндекс карте. Также есть уникальные скрипты индекс цен (строит графики цен по всей России ) и онлайн оценка недвижимости (определяет в реальном времени строить объекта недвижимости), ипотечный калькулятор с детализацией платежей.
    Ответ написан