Здесь показаны различия между двумя версиями данной страницы.
Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия | ||
astpanel:optimization [2019/08/05 09:06] apor [Проверка работы сервиса] |
astpanel:optimization [2019/12/16 11:11] (текущий) apor [Настройка Nginx] |
||
---|---|---|---|
Строка 9: | Строка 9: | ||
Следующим витком развития механизма было описание дополнительного HTTP сервиса, работа которого осуществляется в обход AJAM интерфейса. Для FreePBX это ресурс: **http://127.0.0.1/admin/1c/getvar/index.php?event=Ping**. Производительность этого варианта работы оказалась выше, но при крупных внедрениях и ее оказалось мало. Вот пример нагрузочного теста: | Следующим витком развития механизма было описание дополнительного HTTP сервиса, работа которого осуществляется в обход AJAM интерфейса. Для FreePBX это ресурс: **http://127.0.0.1/admin/1c/getvar/index.php?event=Ping**. Производительность этого варианта работы оказалась выше, но при крупных внедрениях и ее оказалось мало. Вот пример нагрузочного теста: | ||
- | <code>ab -c 400 -n 10000 'http://127.0.0.1/admin/1c/getvar/index.php?event=Ping'���� | + | <code>ab -c 400 -n 10000 'http://127.0.0.1/admin/1c/getvar/index.php?event=Ping' |
This is ApacheBench, Version 2.3 <$Revision: 1430300 $> | This is ApacheBench, Version 2.3 <$Revision: 1430300 $> | ||
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/ | Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/ | ||
Строка 40: | Строка 40: | ||
</code> | </code> | ||
- | Правим порт в конфиг **[[https://files.miko.ru/s/8N4KeY805dN61m3 | /etc/nginx/nginx.conf]]**. Параметр "**listen**". | + | Правим порт в конфиг **[[https://files.miko.ru/s/dnrxCWZG6hrjbXk | /etc/nginx/nginx.conf]]**. Параметр "**listen**". |
<code> | <code> | ||
+ | |||
user nginx; | user nginx; | ||
worker_processes 1; | worker_processes 1; | ||
Строка 47: | Строка 48: | ||
pid /var/run/nginx.pid; | pid /var/run/nginx.pid; | ||
load_module modules/ndk_http_module.so; | load_module modules/ndk_http_module.so; | ||
- | load_module modules/ngx_http_lua_module.so; | + | load_module "modules/ngx_http_lua_module.so"; |
events { | events { | ||
Строка 59: | Строка 60: | ||
keepalive_timeout 65; | keepalive_timeout 65; | ||
server { | server { | ||
- | listen 89; | + | listen 23600; |
server_name localhost; | server_name localhost; | ||
location /pbxcore/api/miko_ajam/getvar { | location /pbxcore/api/miko_ajam/getvar { | ||
+ | default_type 'text/plain'; | ||
+ | content_by_lua_file /etc/nginx/http_get_variables.lua; | ||
+ | keepalive_timeout 0; | ||
+ | } | ||
+ | location /admin/1c/getvar/index.php { | ||
default_type 'text/plain'; | default_type 'text/plain'; | ||
content_by_lua_file /etc/nginx/http_get_variables.lua; | content_by_lua_file /etc/nginx/http_get_variables.lua; | ||
Строка 71: | Строка 77: | ||
</code> | </code> | ||
- | Заливаем файл на сервер **[[https://files.miko.ru/s/TPmJxuX5mZCZfRc | /etc/nginx/http_get_variables.lua]]** | + | Заливаем файл на сервер **[[https://files.miko.ru/s/fjCXEdFUd7fQ6La | /etc/nginx/http_get_variables.lua]]** |
Устанавливаем права доступа к файлу | Устанавливаем права доступа к файлу | ||
<code>chown nginx:nginx /etc/nginx/http_get_variables.lua | <code>chown nginx:nginx /etc/nginx/http_get_variables.lua | ||
Строка 89: | Строка 95: | ||
Смотрим статус сервера: | Смотрим статус сервера: | ||
<code>systemctl status nginx.service</code> | <code>systemctl status nginx.service</code> | ||
- | |||
==== Проверка работы сервиса ==== | ==== Проверка работы сервиса ==== | ||
Из локальной консоли выполните команду: | Из локальной консоли выполните команду: | ||
- | <code>curl -u admin:secret 'http://127.0.0.1:89/pbxcore/api/miko_ajam/getvar?event=Ping'</code> | + | <code>curl -u admin:secret 'http://127.0.0.1:23600/pbxcore/api/miko_ajam/getvar?event=Ping'</code> |
Должен вернуть: | Должен вернуть: | ||
<code>true</code> | <code>true</code> | ||
Строка 100: | Строка 105: | ||
Дополнительная проверка получения переменных канала: | Дополнительная проверка получения переменных канала: | ||
- | <code>curl -u admin:secret 'http://127.0.0.1:89/pbxcore/api/miko_ajam/getvar?channel=SIP/201-00000009&variables=CDR(linkedid),EXTEN'</code> | + | <code>curl -u admin:secret 'http://127.0.0.1:23600/pbxcore/api/miko_ajam/getvar?channel=SIP/201-00000009&variables=CDR(linkedid),EXTEN'</code> |
Должен венуть: | Должен венуть: | ||
<code>New Structure("Result", true)</code> | <code>New Structure("Result", true)</code> | ||
Строка 107: | Строка 112: | ||
Тест производительности: | Тест производительности: | ||
- | <code>[root@freepbx ~]# ab -c 400 -n 10000 'http://127.0.0.1:89/pbxcore/api/miko_ajam/getvar?event=Ping' | + | <code>[root@freepbx ~]# ab -c 400 -n 10000 'http://127.0.0.1:23600/pbxcore/api/miko_ajam/getvar?event=Ping' |
This is ApacheBench, Version 2.3 <$Revision: 1430300 $> | This is ApacheBench, Version 2.3 <$Revision: 1430300 $> | ||
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/ | Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/ | ||
Строка 128: | Строка 133: | ||
Server Software: nginx/1.15.7 | Server Software: nginx/1.15.7 | ||
Server Hostname: 127.0.0.1 | Server Hostname: 127.0.0.1 | ||
- | Server Port: 89 | + | Server Port: 23600 |
Document Path: /pbxcore/api/miko_ajam/getvar?event=Ping | Document Path: /pbxcore/api/miko_ajam/getvar?event=Ping | ||
Строка 165: | Строка 170: | ||
</code> | </code> | ||
- | Не забудьте открыть на фаерволе порт 89. | + | Не забудьте открыть на фаерволе порт 23600. |
Например для iptables под управлением CENTOS это делается добавлением строчки в файл /etc/sysconfig/iptables | Например для iptables под управлением CENTOS это делается добавлением строчки в файл /etc/sysconfig/iptables | ||
<code> | <code> | ||
- | -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 89 -j ACCEPT | + | -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 23600 -j ACCEPT |
</code> | </code> | ||
[[:astpanel|Обратно к инструкциям...]] | [[:astpanel|Обратно к инструкциям...]] |