Задать вопрос
Пользователь пока ничего не рассказал о себе

Наибольший вклад в теги

Все теги (22)

Лучшие ответы пользователя

Все ответы (37)
  • Как настроить nginx в качестве прокси для nodejs?

    rabbit418
    @rabbit418
    23 yo Designer from Ukraine
    Очень просто:
    server {
    	listen 80;
    
    	server_name example.com www.example.com;
    
    	location / {
    		proxy_pass_header Server;
    		proxy_set_header Host $http_host;
    		proxy_set_header X-Real-IP $remote_addr;
    		proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    		proxy_set_header X-Forwarded-Proto $scheme;
    		proxy_pass http://127.0.0.1:5000;
    	}
    	
    	error_page 500 502 503 504 /50x.html;
    	location = /50x.html {
    		root /usr/share/nginx/html;
    	}
    }
    Ответ написан
    3 комментария
  • Как записывать логи посещений на сайт?

    rabbit418
    @rabbit418
    23 yo Designer from Ukraine
    Если нужна простая статистика то подойдет и обычный access log:
    server {
    	listen 80;
    	server_name example.com;
    
    	# Logs
    	access_log /var/log/nginx/access.log;
    }


    После этого файл с логом можно очень легко парсить. Например чтобы вывести статистику кодов ответа можно выполнить в терминале:
    cat access.log | cut -d '"' -f3 | cut -d ' ' -f2 | sort | uniq -c | sort -rn


    или сделать тоже самое но использую awk:
    awk '{print $9}' access.log | sort | uniq -c | sort -rn


    Еще можно посмотреть самую запрашиваемую страницу:
    awk -F\" '{print $2}' access.log | awk '{print $2}' | sort | uniq -c | sort -r
    Ответ написан
    Комментировать
  • Не работает модем в Gentoo, что делать?

    rabbit418
    @rabbit418
    23 yo Designer from Ukraine
    Gentoo это операционная система для опытных пользователей. Может быть Вам попробовать что то более простое например Linux Mint.
    Ответ написан
    2 комментария
  • Как сделать переход по ссылке только после ввода определенного пароля?

    rabbit418
    @rabbit418
    23 yo Designer from Ukraine
    Маргинальный подход но вот:
    <?php
    // Задаем пароль
    $password = "iddqd";
    
    // Берем ссылку для редиректа из ?url=*
    $link = array_key_exists("url", $_GET) ? $_GET['url'] : "http://google.com";
    
    // Проверяем сабмит формы с паролем
    if (array_key_exists("password", $_POST)) {
        // Проверяем введенный пароль
        if (strcasecmp($_POST['password'], $password) == 0) {
            // Пароль совпал, редиректим
            header("Location: {$link}");
        }else{
            // Пароли не совпали показываем ошибку
            require_once 'error.php';
        }
    }else{
        // Показываем форму для ввода пароля
        require_once 'form.php';
    }
    ?>
    Ответ написан
    5 комментариев
  • Генератор уникальных изображений?

    rabbit418
    @rabbit418
    23 yo Designer from Ukraine
    Все очень просто. Есть же GD. Все что нам остается это создать 4 папки.

    /backgrounds - сюда скидываем фоны
    /filters - сюда фильтры
    /texts - сюда картинки с текстами
    /results - тут будут готовые картинки

    И запускам скрипт который я написал ниже.

    <?php
    $backgrounds = array_diff(scandir('./backgrounds/'), array('.','..','.DS_Store'));
    $texts = array_diff(scandir('./texts/'), array('.','..','.DS_Store'));
    $filters = array_diff(scandir('./filters/'), array('.','..','.DS_Store'));
    
    function nameGenerator($length) {
        return substr(str_shuffle("_0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"), 0, $length);
    }
    
    // 
    foreach ($backgrounds as $background) {
        // 
        foreach ($texts as $text) {
            // 
            foreach ($filters as $filter) {
                // 
                $layer1 = imagecreatefrompng("./backgrounds/{$background}");
                $layer2 = imagecreatefrompng("./texts/{$text}");
                $layer3 = imagecreatefrompng("./filters/{$filter}");
    
                // 
                imagealphablending($layer1, true);
                imagesavealpha($layer1, true);
    
                // 
                imagecopy($layer1, $layer2, 0, 0, 0, 0, 900, 900);
                imagecopy($layer1, $layer3, 0, 0, 0, 0, 900, 900);
    
                // 
                imagejpeg($layer1, "./results/".nameGenerator(10).".jpg");
    
                // 
                imagedestroy($layer1);
                imagedestroy($layer2);
                imagedestroy($layer3);
            }
        }
    }
    ?>
    Ответ написан
    4 комментария

Лучшие вопросы пользователя

Все вопросы (7)