Задать вопрос
  • Настроить отдачу файлов в Nginx?

    JastaFly
    @JastaFly Автор вопроса
    AUser0,

    пока вы считаете, что отдельно существуют "заходы на адреса (попадают в access_log)"

    А я где-то писал об этом?! Вы мне опять какую-то личную шизу приписываете видимо. Продолжаем ликбез в сельской местности. В access.log попадают данные о всех запрошенных ресурсах, то есть например грузится HTML-страница, в ней есть ссылки на скрипты и стили, так вот они тоже попадут в access.log

    "открываемые файлы (попадают в error_log)",

    Снова голоса в голове сбивают Вас с толку ибо я такого не писал. Тем не менее продолжим нашу просветительскую деятельность. В error.log попадают не открываемые файлы, а ошибки возникшие в работе сервера, в том числе и неудачно открытые файлы

    собственно объяснять что-то... А смысл?

    Ну типичная ламерская тема началась: "Я всё знаю! Но тебе не скажу, так как ты тупой!". На простой русский это переводится "Я обосрался и перепутал 404-й ответ с ошибкой ненайденного файла, но чрезмерно раздутое ЧСВ, не позволяет мне признать ошибку"
    Написано
  • Настроить отдачу файлов в Nginx?

    JastaFly
    @JastaFly Автор вопроса
    AUser0,

    Для вас существуют два понятия, логика и логика, и они не пересекаются

    А есть что-то по существу кроме истерик?
    Ещё раз небольшой ликбез. Вы пишите:

    смотрите error_log программы NGINX, там на каждую ошибку 404

    404 это код ответа сервера, который тот возвращает когда пользователь пытается зайти на несуществующий адрес и такие ответы сервера не попадают в error.log, они попадают в access.log и выглядят там как-то так:
    {"ru":"","ts":"2024-12-10T15:00:45+03:00","p":"192.168.0.164","rl":1375,"rm":"GET","ru":"/some/not/existing/url/","st":"404","bs":202817,"ref":"","ua":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/128.0.0.0 YaBrowser/24.10.0.0 Safari/537.36","rt":"0.203","urt":"0.202","uct":"0.000","uad":"127.0.0.1:8090","us":"404","uid":"","sslp":"TLSv1.3","sp":"HTTP/1.1"}

    То что Вы имеете ввиду это ошибка вызванная открытие файла который где-то прописан, но физически не существует. Она в свою очередь выглядит как-то так:
    2024/12/02 15:34:22 [error] 49643#49643: *5 open() "/srv/www/htdocs/some-site/some-file.html" failed (2: No such file or directory), client: 192.168.0.89, server: _, request: "GET /some/url/some.file HTTP/1.1", host: "192.168.0.164", referrer: "https://some.site/some/url/"

    Понимаю концептуально вещи похожи и легко запутаться что к чему, но всё же они разные. Так например клиент может получить ответ 404, при этом сайт корректно соберётся, выведет 404-ю страницу и ничего в error_log не попадёт. И в тоже время сайт может отдавать код 200, отлично работать, но лог будет завален ошибками открытия несуществующего файла, так как этот файл никакой важной роли для сайта не играет и просто кто-то забыл удалить уже ненужную строку в конфиге
    Написано
  • Настроить отдачу файлов в Nginx?

    JastaFly
    @JastaFly Автор вопроса
    Lynn «Кофеман»,

    и реальное местоположение файлов

    Они реальные. Как говорится плохому танцору.... вечно расположения файлов ни те :D
    Написано
  • Настроить отдачу файлов в Nginx?

    JastaFly
    @JastaFly Автор вопроса
    dodo512,

    После применения try_files в error.log не будет строк вроде ... [error] ... open() "..."

    Такие ошибки были, но они не имели к проблеме отношения
    Написано
  • Настроить отдачу файлов в Nginx?

    JastaFly
    @JastaFly Автор вопроса
    AUser0,

    вы ошибаетесь. Повторюсь: вы ошибаетесь. Ну и для закрепления, ещё раз: вы ошибаетесь,

    Нет это Вы ошибаетесь. Сейчас ниже и без лишних слов и истерик поясню почему

    404 попадает в error_log, потому что отсутствие файла - это именно ошибка

    Вы явно путаете бар с буром. Ошибка 404 означает что запрашиваемая страница не найдена на сайте и предполагает что это пользователь ввёл неверный адрес для запроса. То есть это ошибка пользователя, а не сервера и потому такие ошибки не попадают в error.log. Не найденный файл представляет собой совершенно другую ошибку, которая может выглядеть как-то так:
    2024/12/02 15:34:22 [error] 49643#49643: *5 open() "/srv/www/htdocs/some-site/some-file.html" failed (2: No such file or directory), client: 192.168.0.89, server: _, request: "GET /some/url/some.file HTTP/1.1", host: "192.168.0.164", referrer: "https://some.site/some/url/"

    И вот такая ошибка как раз такие попадёт в error.log, но к 404-й ошибке она не будет иметь никакого отношения
    Написано
  • Настроить отдачу файлов в Nginx?

    JastaFly
    @JastaFly Автор вопроса
    AUser0,

    вы ошибаетесь. Посмотрите, ну хотя-бы комментарии к самому вопросу

    Посмотрел. И в чём конкретно я не прав? 404-это нормальный код ответа сервера, в error.log он не попадает
    Написано
  • Настроить отдачу файлов в Nginx?

    JastaFly
    @JastaFly Автор вопроса
    Lynn «Кофеман»,
    Вот файл конфига с которым я работаю:
    # Default website
    server {
    
        listen 80 default_server;
        listen 443 ssl default_server;
        server_name _;
        server_name_in_redirect off;
    
        ssl_certificate      /root/rootCA.pem;
        ssl_certificate_key  /root/rootCA.key;
    
        proxy_set_header	X-Real-IP        $remote_addr;
        proxy_set_header	X-Forwarded-For  $proxy_add_x_forwarded_for;
        proxy_set_header	Host $host;
    
        proxy_redirect ~^(http://[^:]+):\d+(/.+)$ $1$2;
        proxy_redirect ~^(https://[^:]+):\d+(/.+)$ $1$2;
    
        set $docroot		"/var/www/html/bx-site";
    
        index index.php;
        root "/var/www/html/bx-site";
    
        # BXTEMP - personal settings
        include conf.d/bx_temp.conf;
    
        # Include parameters common to all websites
        include conf.d/bitrix.conf;
    
    location = /api/v1/static/swagger-ui-standalone-preset.js {
            root /var/www/html/api/public/;
            expires 30d;
            try_files $uri $uri/ =404;
            error_page 404 /404.html;
        }
    
        location = /api/v1/static/swagger-ui.css {
            root /var/www/html/api/public/;
            expires 30d;
            try_files $uri $uri/ =404;
            error_page 404 /404.html;
        }
    
        location = /api/v1/static/swagger-ui-bundle.js {
            root /var/www/html/api/public/;
            expires 30d;
            try_files $uri $uri/ =404;
            error_page 404 /404.html;
        }
    
        location /api/v1 {
    		proxy_pass http://127.0.0.1:8000;
    		proxy_set_header Host $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_http_version 1.1;
    	        proxy_cache_bypass $http_upgrade;
            }
    
    }
    Написано
  • Настроить отдачу файлов в Nginx?

    JastaFly
    @JastaFly Автор вопроса
    AUser0,

    ror_log программы NGINX

    Там пусто

    там на каждую ошибку 404 должно быть сообщение

    Вы ошибаетесь, 404-е ошибки не попадают в error.log, либо путаете с access.log, но там я тоже смотрел и там принципиально нового ничего нет, примерно тоже самое что я вижу в консоли браузера
    Написано
  • Настроить отдачу файлов в Nginx?

    JastaFly
    @JastaFly Автор вопроса
    KY05

    директиву alias.

    Пробовал вместо root использовать alias:
    server {
        ....
        location = /url/to/js/file/script.js {
        alias /path/to/directory/with/static/files/;
        expires 30d;
        try_files $uri $uri/ =404;
        error_page 404 /404.html;
        }
    Написано
  • Как установить Sphinx на Alma Linux 9?

    JastaFly
    @JastaFly Автор вопроса
    @opium

    Так это же центрос он же редхат или из репо либо из рпм

    Все эти репозитории у меня добавлены и там пусто(
    Написано
  • Как установить Sphinx на Alma Linux 9?

    JastaFly
    @JastaFly Автор вопроса
    Zerg89

    или надо epel repo добавить может там есть

    Уже добавил, ничего там нет(
    Написано
  • Сайт открывается на http и не открывается на https?

    JastaFly
    @JastaFly Автор вопроса
    kupereal,

    а дальше настраивается постоянный редирект с HTTP на HTTPS, чтобы сайт открывался только с одного протокола

    Такой редирект, уже есть в апаче

    Может подчерпнете что-то полезное для своей ситуации

    Может быть гляну на досуге, но на текущей момент, моя проблема решена. Спасибо за помощь и советы)
    Написано
  • Сайт открывается на http и не открывается на https?

    JastaFly
    @JastaFly Автор вопроса
    Refguser,

    Где location?

    ХЗ. Наверное в каком-то другом файле)
    Написано
  • Сайт открывается на http и не открывается на https?

    JastaFly
    @JastaFly Автор вопроса
    kupereal

    Если вам нужен редирект

    Нет мне нужно чтобы сайт начал открываться по https
    Написано
  • Ошибка с Babel при сборке Webpack?

    JastaFly
    @JastaFly Автор вопроса
    Aetae,

    добавь --ignore-engines при установке пакетов.:)

    В прод к сожалению с таким не пускают(
    Написано
  • Ошибка с Babel при сборке Webpack?

    JastaFly
    @JastaFly Автор вопроса
    Aetae

    Верни как было и живи спокойно

    Не могу к сожалению. Нужно Node.js обновить до 18-й версии)
    Написано
  • Сборщик игнорирует синтаксис PostCSS?

    JastaFly
    @JastaFly Автор вопроса
    Aetae, попробовал, в итоге проблемным пакетом оказался postcss-preset-env. Спасибо алгоритм)
    Написано
  • Ошибка Error: EACCES: permission denied, stat '/root/.config/postcss' при сборке?

    JastaFly
    @JastaFly Автор вопроса
    szQocks,

    что он вообще делает в руте ?)

    Она не в руте, она лежит в var/www/html/...
    Это я под рутом сижу её запускаю)

    роект вроде как должен быть в /etc/nginx/sites-available

    Не ну тут точно нет, обычно тут только конфиги Nginx лежат. Как правило сайты лежат либо там где у меня, либо в домашней директории пользователя под именем которого сайт работает
    Написано
  • Ошибка Error: EACCES: permission denied, stat '/root/.config/postcss' при сборке?

    JastaFly
    @JastaFly Автор вопроса
    szQocks,

    ну или ещё как вариант ошибка в том как ты настроил этот postcss хм

    Вряд-ли, есть у меня экспериментальный вебпак практически с таким-же конфигом но другим entry, и там сборка собирается

    package.json

    Вот мой package.json:
    {
      "name": "project",
      "version": "1.0.0",
      "description": "",
      "dependencies": {
        "air-datepicker": "^2.2.3",
        "array-unique": "^0.3.2",
        "blazy": "^1.8.2",
        "body-scroll-lock": "^2.6.1",
        "comparison-slider": "^1.1.0",
        "img-slider": "^2.2.0",
        "inputmask": "^4.0.8",
        "inputmask-multi": "^1.2.0",
        "intersection-observer": "^0.12.2",
        "jquery": "^3.5.1",
        "jquery-migrate": "^3.0.0",
        "magnific-popup": "^1.1.0",
        "nouislider": "^11.1.0",
        "perfect-scrollbar": "^1.4.0",
        "promise-polyfill": "8.1.0",
        "selectize": "^0.12.6",
        "swiper": "^4.3.3",
        "tooltipster": "^4.2.8"
      },
      "devDependencies": {
        "postcss-nesting": "13.0.1",
        "postcss-preset-env": "10.1.0",
        "autoprefixer": "10.4.20",
        "css-mqpacker": "7.0.0",
        "cssnano": "7.0.6",
        "@babel/preset-env": "^7.26.0",
        "babel-core": "^6.26.3",
        "babel-loader": "^9.2.1",
        "babel-preset-env": "^1.7.0",
        "cross-env": "^7.0.3",
        "css-loader": "^0.28.9",
        "datatables.net": "^1.10.19",
        "dotenv": "^16.0.1",
        "dotenv-webpack": "^8.1.0",
        "mini-css-extract-plugin": "^2.9.2",
        "normalize.css": "^8.0.0",
        "object-fit-images": "^3.2.3",
        "optimize-css-assets-webpack-plugin": "^3.2.0",
        "postcss-cssnext": "^3.1.1",
        "postcss-extend": "^1.0.5",
        "postcss-flexbugs-fixes": "^5.0.2",
        "postcss-for": "2.1.1",
        "postcss-gradient-transparency-fix": "^4.1.0",
        "postcss-import": "^16.1.0",
        "postcss-input-style": "^1.0.0",
        "postcss-loader": "^8.1.1",
        "postcss-nested": "^7.0.2",
        "postcss-object-fit-images": "^1.1.2",
        "postcss-simple-vars": "7.0.1",
        "style-loader": "^0.20.1",
        "suggestions-jquery": "^20.3.0",
        "svg-sprite-loader": "^5.1.1",
        "svg4everybody": "^2.1.9",
        "url-loader": "^4.1.1",
        "vanilla-text-mask": "^5.1.1",
        "webpack": "^5.96.1",
        "webpack-cli": "^5.1.4"
      },
      "scripts": {
        "webpack": "webpack",
        "build": "cross-env NODE_ENV=production webpack"
      }
    }


    c версиями сам разберешься

    Попробую, но что-то мне кажется вряд-ли и пакета postcss у меня вообще нет
    Написано
  • Ошибка Error: EACCES: permission denied, stat '/root/.config/postcss' при сборке?

    JastaFly
    @JastaFly Автор вопроса
    szQocks,

    а не от куда-то там, то есть при помощи path / __dirname и т.д

    __dirname у в моём конфиге широко используется)

    вот видишь как ты указал путь

    Путь условный, в реальности был несколько другой, но суть он передаёт

    я всё же склоняюсь к тому что проблема в остальном конфиге

    Возможно. Но я пока не понимаю где, вот конфиг вебпака целиком:
    const params = {
        env: process.env.NODE_ENV || 'development'
    };
    
    const path = require('path');
    const webpack = require('webpack');
    const Dotenv = require('dotenv-webpack');
    
    const plugins = {
        miniCssExtractPlugin: require("mini-css-extract-plugin"),
        svgLoader: require('svg-sprite-loader/plugin'),
        cssOptimize: require('optimize-css-assets-webpack-plugin'),
        jsOptimize: require('terser-webpack-plugin')
    };
    
    const postCss = {
        postCssPresetEnv: require('postcss-preset-env'),
        import: require('postcss-import'),
        nested: require('postcss-nested'),
        cssFor: require('postcss-for'),
        simpleVars: require('postcss-simple-vars'),
        flexbugs: require("postcss-flexbugs-fixes"),
        inputStyle: require("postcss-input-style"),
        objectFit: require("postcss-object-fit-images"),
        gradientFix: require('postcss-gradient-transparency-fix'),
        extend: require('postcss-extend'),
    };
    
    module.exports = {
        context: path.resolve(__dirname + '/app'),
        entry: {
            subscription: './app-subscription.js',
            critical: './app-crit.js',
            main: './app.js',
        },
        stats: {children: false},
    
        watch: params.env == 'development',
        watchOptions: {
            aggregateTimeout: 50
        },
    
        resolve: {
            modules: [
                (path.resolve(__dirname)),
                (path.resolve(__dirname) + '/vendor'),
                (path.resolve(__dirname) + '/node_modules')
            ],
            extensions: ['*', '.js', '.css']
        },
    
        resolveLoader: {
            modules: [
                path.resolve(__dirname),
                path.resolve(__dirname) + '/node_modules',
                path.resolve(__dirname) + '/node_modules'
            ]
        },
    
        output: {
            path: path.resolve(__dirname + '/build'),
            publicPath: '/local/client/build/',
            filename: '[name].js',
            library: 'App'
        },
    
        module: {
            rules: [
                {
                    test: /\.css$/,
                    use: [
                        plugins.miniCssExtractPlugin.loader,
                        'css-loader',
    
                        {
                            loader: "postcss-loader",
                            options: {
                                sourceMap: true,
                                postcssOptions: {
                                    plugins: () => [
                                        postCss.import(),
                                        postCss.cssFor(),
                                        postCss.simpleVars(),
                                        postCss.postCssPresetEnv(),
                                        postCss.nested(),
                                        postCss.flexbugs(),
                                        postCss.inputStyle(),
                                        postCss.objectFit(),
                                        postCss.gradientFix(),
                                        postCss.extend(),
                                    ]
    
                                }
    
                            },
                        },
                    ],
                },
    
                {
                    test: /\.js$/,
                    exclude: /(node_modules|vendor)/,
                    loader: 'babel-loader',
                    options: {
                        cacheDirectory: true,
                        presets: ['@babel/preset-env']
                    }
                },
    
                {
                    test: /\.(svg)$/,
                    use: [
                        {
                            loader: 'svg-sprite-loader',
                            options: {
                                extract: true,
                            }
                        },
                        'svg-transform-loader',
                        'svgo-loader'
                    ]
                }
            ]
        },
    
        plugins: [
            new plugins.miniCssExtractPlugin({
                filename: '[name].css'
            }),
    
            new plugins.svgLoader(),
    
            new webpack.ProvidePlugin({
                Swiper: 'swiper/dist/js/swiper.min.js',
                vanillaTextMask: "vanilla-text-mask/dist/vanillaTextMask.js"
            }),
    
            new webpack.ProvidePlugin({
                $: "jquery",
                jQuery: "jquery"
            }),
            new Dotenv({
                path:  (path.resolve(__dirname) + '/.env')
            }),
    
        ]
    };
    
    if (params.env == 'production') {
    
        module.exports.plugins.push(
            new plugins.jsOptimize()
        );
    
        /*module.exports.plugins.push(
            new plugins.cssOptimize({
                cssProcessor: require('cssnano'),
            })
        );*/
    }
    Написано