Сергей Краснопивец: По 80му порту, это на автомате написал.
Если оно так работает, что CF по сути является неким буффером (прокси) для соединений - выключите его и не используйте. Так как тут проблему диагностировать не получится - проблема на стороне CF.
Если у вас и так уже есть самоподписный сертификат на сервере, то он будет шифровать соединение между вашим сервером и клиентом.
В общем, мое мнение - не используйте 3е лицо CF как посредника между клиентом и сервером.
Если вам нужен бесплатный сертифкат на домен, посмотрите в сторону wosign или startssl , которые дадут вам сертификат бесплатно. 1й на 3 года, второй на год.
Дмитрий Скогорев: вы не правильно создали таблицу и делали не правильный запрос. Если ваш userid будет только числовым уникальным значением, нужно сделать его типа int not null auto_increment, чтобы он сам приращивал значение при insert. То, что мы делали с вами - посмотрели, как создана таблица и посмотрели как работает ваш запрос с помощью команды explain. primary key так же можно создавать на этапе создания таблицы или позже. Если его у вас нет, правильно создать его, а не лепить индекс. А проблема в вашем запросе была, из-за того что вы указывали userid = без кавычек. Для всех типов столбцов, кроме int,float и кажется чего-то еще, кавычки обязательны. Иначе, оптимизатор отправит ваш запрос в долгое путешествие на просматривание всех строк.
Вообще, если есть желание получить фундаментальные знания по составления запросов, таблиц и т.д, рекомендую книгу - Л.Бейли "Изучаем SQL". Очень легко читается. Наполнена юмором, сарказмом и игровыми моментами.
Дмитрий Скогорев: Ну и естественно, если выполнить: select userid,value from keys where userid='123499'; Ответ быстро выдастся. Лимит убрал, так как вы говорили, что у вас уникальные значения.
Увы, не совсем понятно. у вас ссылка домен/?аргументы ? и вы хотите перенаправить один из аргументов в другую ссылку. Приведите более конкретный пример. не с такой абстракцией. Имя домена можене оставить типа domen.ru
Дмитрий Скогорев: после того как поменяли innodb_buffer_pool_size, сервер рестартовали? Поменяли в my.cnf?
Не понятно, зачем вы создали userid_2, userid_3 на одно и то же поле. Уберите.
Почему у вас userid varchar а не int? или планируются еще буквы? Может ли быть userid автоинкриментом?
Если рестартовали и тот explain дает, что дает, то выполните вот такую команду и вывод сюда:
explain select userid,value from keys where userid='4650017' limit 1;
А также такой запрос
explain select userid,value from keys FORCE INDEX (PRIMARY) where userid='4650017' limit 1;
Сергей Краснопивец:
Перечитал еще раз, и вот мне кое что не понятно:
Со стороны Cloudflare режим SSL выставлен в Full, со стороны сервера созданы самоподписанные сертификаты.
При этом, вы говорите о:
Домен делегирован на NS CloudFlare (подключал ради бесплатного SSL от CF)
Я вижу некое не соответствие.
Если вам CF, выпустил сертификат, то зачем самоподписка?
И причем тут, некий режим "FULL" для ssl, со стороны CF?
Вам просто дают сертификат на ваш домен, подписанный корневым сертификатом CF или одним из цепочки.
Вы этот публичный сертификат прикручиваете в nginx и слушаете 443 порт.
При обращении на домен, NS отдает ip. Больше нигде CF вообще не учавствует.
Внутри локальной сети открывается без проблем. - вы по ip заходите или в hosts прописали имя или как?
Так что, проясните немного ситуацию.
Еще, просто из классических процедур:
1. Проверьте, что NS выдает на ваш домен верный ip.
2. Откройте консоль и с помощью tcpdump послушайте 80й порт, на предмет пакетов, При этом открыв в браузере анонимайзер и сделайте попытку зайти по http(80й порт) на ваш сайт (облачко).
3. Проделайте тоже самое для 443 порта.
4. Если пакеты летят только в одну сторону (приходят к вам, но не уходят обратно), может поменялись настройки фаервола (пальцем в небо, так как вы получаете, типа ошибку).
Дмитрий Скогорев: possible_keys показывает, какие индексы есть. колонка key, говорит, что индекс не используется.
Покажите вывод команды:
SHOW CREATE TABLE keys\G
А так же запросов:
SHOW VARIABLES LIKE 'innodb_buffer_pool_size';
Хотя, выше в комментарии, уже вижу что стоит дефолтные 16мб.
Вопрос следующий. сколько ОЗУ на сервере. На сервере только СУБД крутиться?
location /index.php?action=admin - не верно. в данном случае не будут приниматься аргументы ?action=admin.
1. Если это специфический файл, только для админов, вы можете вынести его в отдельный location и там настроить к нему доступ.
2. Только предположение. Делаете тоже отдельный location, но в нем средствами proxy_pass передаете верные аргументы.
Написано
Войдите на сайт
Чтобы задать вопрос и получить на него квалифицированный ответ.
Если оно так работает, что CF по сути является неким буффером (прокси) для соединений - выключите его и не используйте. Так как тут проблему диагностировать не получится - проблема на стороне CF.
Если у вас и так уже есть самоподписный сертификат на сервере, то он будет шифровать соединение между вашим сервером и клиентом.
В общем, мое мнение - не используйте 3е лицо CF как посредника между клиентом и сервером.
Если вам нужен бесплатный сертифкат на домен, посмотрите в сторону wosign или startssl , которые дадут вам сертификат бесплатно. 1й на 3 года, второй на год.