Показать статистику
0 голосов
от (120 баллов)
Имеем: Сentos 7 + nginx + Question2Answer.
Без htaccess отказывается выглядеть по человечески.

Гугл поиск не помог. Что, только не вставлялось в nginx.conf не работает.

Хелп
3.8тыс. просмотров 1 ответов
от (17.4тыс. баллов)
0
Ссылки где? Ссылки на страницах (когда ссылаетесь на внешние ресурсы) или ссылки на сами страницы вашего форума question2asnwer?
от (120 баллов)
+1
Уже В 5 раз переустановил centos , так как постоянно что-то ломается, в данный момент сервер ждёт установки либо nginx либо apache, очень надеялся что админы этого сайта подскажут что делать, так как ссылки в настройках у этого скрипта у всех одинаковые.
от (17.4тыс. баллов)
0
Напишите получилось ли решить проблему. Реально интересно разобраться.
от (120 баллов)
0
Всё хочу спросить, настройки ты применил для url которые я скинул) А с тегами что нибудь придумаешь? и т.д.
от (620 баллов)
+1
А почему не добавить стандартный .htaccess? Движок быстрый, задержки даже под нагрузкой будут минимальные.

1 Ответ

0 голосов
от (17.4тыс. баллов)
Странно, на этом сайте все взлетело с первого раза и без проблем. Здесь выложен конфиг nginx: https://unixhow.com/1/не-работает-question2answer-в-связке-nginx-php-fpm

Пишите какие конфиги еще нужны, разберемся и все вам поднимем как надо.

Что касается ссылок, то ни это ли вы ищете: https://unixhow.com/3/транслитерация-кириллицы-латиницу-url-для-question2answer ?
от (120 баллов)
редактировать от
0

Доброе утро=) И так...

Что касается транслитерации ссылок: не работает. 

В данный момент сайт на Apache , возможно, что эти настройки подходят только если сайт на nginx?

"\xE2\x81\x87" => ' ', // DOUBLE QUESTION MARK
"\xE2\x81\x88" => ' ', // QUESTION EXCLAMATION MARK
"\xE2\x81\x89" => ' ', // EXCLAMATION QUESTION MARK
"\xE3\x80\x80" => ' ', // IDEOGRAPHIC SPACE
"\xE3\x80\x81" => ' ', // IDEOGRAPHIC COMMA
"\xE3\x80\x82" => ' ', // IDEOGRAPHIC FULL STOP
);

// convert UTF-8 accented characters to basic Roman characters

$qa_utf8removeaccents = array 

Сказано после array , ok
Сюда поместить код - не работает.

После скобки тоже не работает

"\xC3\x80" => 'A', // LATIN CAPITAL LETTER A WITH GRAVE
"\xC3\x81" => 'A', // LATIN CAPITAL LETTER A WITH ACUTE
"\xC3\x82" => 'A', // LATIN CAPITAL LETTER A WITH CIRCUMFLEX
"\xC3\x83" => 'A', // LATIN CAPITAL LETTER A WITH TILDE
"\xC3\x84" => 'A', // LATIN CAPITAL LETTER A WITH DIAERESIS
"\xC3\x85" => 'A', // LATIN CAPITAL LETTER A WITH RING ABOVE
"\xC3\x86" 
от (120 баллов)
редактировать от
0
С конфигом тоже не понятно: этих настроек хватит? Привиденный пример нужно (употребить) вместо дефолтного или этим настройкам есть место, если так, где? =)

Так как, дефолтных настроек много , а в примере пара строк, кэш и другие модули будут работать нормально с приведенными настройками?
от (17.4тыс. баллов)
0
По поводу конфига. У меня именно такой конфиг. Сама связка работает nginx + php-fpm. Ну и MySQL, понятное дело.
от (17.4тыс. баллов)
0
Эти настройки должны работать независимо от того, на апаче сайт или на nginx. Для чистоты эксперимента рекомендую поставить nginx + php-fpm
от (17.4тыс. баллов)
0
Сразу вдогонку - а как насчет этого?

https://www.question2answer.org/qa/17620/problem-with-cyrillic-in-url

И вот еще: https://www.question2answer.org/qa/17972/cyrillic-in-url-automatic-transliteration (но это практически тот же конфиг, что и здесь выложен)
от (120 баллов)
+1
Вот это работает точно, НО, транслит идет только постов, категории и теги остаются неизменными.

https://abees.ru/109/kak-sdelat-transliteraciya-russkix-urlov-question2answer
от (120 баллов)
+1
Попробуем разобраться с nginx. Отпишу как начну настраивать.

И еще. Есть ли смысл вообще возиться с nignx если с апачем в связке fastcgi работают сайты тоже быстро. Допустим трафик 1000 посетителей какая связка лучше подойдет?
от (17.4тыс. баллов)
0
При маленьком трафике разницы практически не будет. 1000 посетителей в сутки? Или в какой промежуток времени?
А вообще, как по мне, с nginx даже проще выходит
от (120 баллов)
0

Правильно ли я понял, что с таким nginx.conf ссылки типа /?qa=123/why-do-birds-sing  будут отображаться как /123/why-do-birds-sing 

И на apache и на nginx так как nginx не читает htaccess, в этом и заключалась проблема

от (120 баллов)
0
1000 посетителей в сутки или за час сильно ли это повлияет на производительность? =)
от (17.4тыс. баллов)
0

Да, будут отображаться. Это выбирается через админку в разделе "Основное". 

https://www.question2answer.org/qa/68676/what-put-htaccess-make-urls-look-like-123-why-birds-sing-nginx 

Кстати, глянул свой .htaccess, вот что там:

Options -Indexes
DirectoryIndex index.php
<IfModule mod_rewrite.c>
RewriteEngine On
#RewriteBase /
RewriteCond %{REQUEST_URI} ^(.*)//(.*)$
RewriteRule . %1/%2 [R=301,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^.*$ index.php?qa-rewrite=$0&%{QUERY_STRING} [L]
</IfModule>
AddType image/svg+xml svg svgz
AddEncoding gzip svgz
от (120 баллов)
+1
Ставиться 1 вариант? Но это же через htaccess, а nginx не читает его, как он у тебя работает?
от (120 баллов)
0

Возможно есть смысл поставить All - Indexes и ещё - includes

от (17.4тыс. баллов)
+1
Интересный момент :) Возможно, этот .htaccess просто там лежит и никакой роли не играет. Не знаю. Но факт как бы на лицо. Работает каким то образом)
от (120 баллов)
0
Вообщем, не работает, из всего, что здесь сказано, работает только приведённый мной вариант транслитерации. =)

Заменял, добавлял, колдовал с конфигом, ан нет, не заурчал.
от (17.4тыс. баллов)
0
А веб сервер стартует? Что пишет nginx -t (это проверка синтаксиса конфига) ? Что в логах?
от (120 баллов)
0
[root@admin ~]# nginx -t
nginx: [emerg] getpwnam("www-data") failed in /etc/nginx/nginx.conf:1
nginx: configuration file /etc/nginx/nginx.conf test failed
[root@admin ~]#
от (17.4тыс. баллов)
0
Давайте конфиг сюда. Я протестирую на своем nginx.
от (17.4тыс. баллов)
0

И сразу вдогонку. Что выдает команда?

id www-data

Есть подозрение что у вас нет пользователя такого.

Если мое подозрение правильное и такого пользователя нет, то добавить его можно вот так:

sudo adduser --system --no-create-home --shell /bin/false --group --disabled-login www-data
от (120 баллов)
редактировать от
0
/etc/nginx/nginx.conf

user admin;
worker_processes auto;
pid /run/nginx.pid;
include /etc/nginx/modules-enabled/*.conf;

events {
        worker_connections 768;
}

http {
        sendfile on;
        tcp_nopush on;
        tcp_nodelay on;
        keepalive_timeout 65;
        types_hash_max_size 2048;
        include /etc/nginx/mime.types;
        default_type application/octet-stream;
        ssl_prefer_server_ciphers on;
        access_log /var/log/nginx/access.log;
        error_log /var/log/nginx/error.log;
        gzip on;
        include /etc/nginx/conf.d/*.conf;
        include /etc/nginx/sites-enabled/*;
}
от (120 баллов)
0
Да ты прав, перезалил с user admin, всё равно не работает
от (17.4тыс. баллов)
0
Какая ошибка на этот раз? Что выдает nginx -t ?
от (120 баллов)
0
и так... есть два конфига один общий второй я так понимаю для сайта:
от (120 баллов)
0

для сайта:

user admin;

worker_processes auto;
pid /run/nginx.pid;
include /etc/nginx/modules-enabled/*.conf;
events {
        worker_connections 768;
}
http {
        sendfile on;
        tcp_nopush on;
        tcp_nodelay on;
        keepalive_timeout 65;
        types_hash_max_size 2048;
        include /etc/nginx/mime.types;
        default_type application/octet-stream;
        ssl_prefer_server_ciphers on;
        access_log /var/log/nginx/access.log;
        error_log /var/log/nginx/error.log;
        gzip on;
        include /etc/nginx/conf.d/*.conf;
        include /etc/nginx/sites-enabled/*;
}
от (120 баллов)
0

общий сервера:

user admin;
worker_processes auto;
pid /run/nginx.pid;
events {
    worker_connections 1024;
    multi_accept on;
}
http {
    sendfile on;
    tcp_nopush on;
    tcp_nodelay on;
    keepalive_timeout 15;
    types_hash_max_size 2048;
    server_tokens off;
    include /etc/nginx/mime.types;
    default_type text/javascript;
    access_log off;
    error_log /var/log/nginx/error.log;
    gzip on;
    gzip_min_length 100;
    gzip_http_version 1.1;
    gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;
    client_max_body_size 8M;
    server {
        listen 80;
        root /var/www;
    }
}
от (120 баллов)
0
nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Ага, всё ок пишет, а сайт совсем сломался) Даже не грузит. 

от (17.4тыс. баллов)
0

А php-fpm установлен? Или вы через апач php заворачиваете?

Покажите вывод:

sudo ps auxww | grep -i php
от (120 баллов)
редактировать от
0
Как я вижу всё работает что нужно:
от (17.4тыс. баллов)
0
Окей, а что значит "ничего не грузится"? Браузер какой то код ответа выдает? Или просто пустая страница?
от (120 баллов)
0
Не удается получить страницу пишет
от (17.4тыс. баллов)
0

Покажите вывод команды:

tail -50 /var/log/nginx/error.log

И еще - где у вас логи php-fpm? Если не в курсе, давайте их тоже найдем.

Если знаете где они расположены, просьба тоже показать содержимое последних 50 строк (аналогично команде выше)

Кстати, судя по выводу ps, у вас установлена панель управления Vesta. Верно? Если да, то логи php здесь:

/var/log/httpd/domains/$domain.error.log
Как я попросил выше, покажите пожалуйста последние 50 строк
от (120 баллов)
0

На вторую команду ответил:

-bash: /var/log/httpd/domains/.error.log: No such file or directory
от (17.4тыс. баллов)
0

Нда, прилично ошибок. Давайте по порядку.

nginx запущен и слушает на порту? Спрашиваю, потому что эта ошибка говорит о том, что веб сервер может быть и не запущен вовсе

bind() to 0.0.0.0:80 failed (98: Address already in use)

Дайте вывод команды:

sudo netstat -tnlp | grep -i nginx
от (120 баллов)
0
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      23607/nginx: master
tcp        0      0 0.0.0.0:8083            0.0.0.0:*               LISTEN      18366/nginx: master

И так, мне кажется, мы не то редактируем, трогать общий nginx вообще  не надо было (возможно), а искать какой то специальный который отвечает за это дело.  

от (17.4тыс. баллов)
0

Сохраните куда то файл /home/admin/conf/web/admin.hukbuk.ru.nginx.conf

Далее откройте его и на 7-й строке уберите слово "bytes"

/home/admin/conf/web/admin.removed_due_to_security_reasons.ru.nginx.conf:7

После этого:

sudo nginx -t
sudo /etc/init.d/nginx restart
от (120 баллов)
0
sudo /etc/init.d/nginx restart

Такой команды нет

sudo: /etc/init.d/nginx: command not found
от (17.4тыс. баллов)
0

А так?

sudo systemctl restart nginx
...