Вход | Регистрация
 

Какие настройки нужно выполнить, чтобы опубликовать http сервис по нестандартному пути

Какие настройки нужно выполнить, чтобы опубликовать http сервис по нестандартному пути
Я
   Admin_Net_1C
 
25.02.21 - 14:31
Добрый день народ.
Подскажите, кто в теме публикации http сервисов: есть база в продакшене, где http сервис опубликован по нестандартному genb URL+"api/hs/"+ИмяСервиса (при обычной публикации из конфигуратора путь будет URL+"hs/"+ИмяСервиса, т.е. без "api/"). В качестве вэб-сервера используется Apachе 2.4.
Вопрос: какие настройки нужно выполнить в apache и/или файле публикации сервиса (vrd), чтобы на локальной машине разработчика добиться публикации по такому же пути?
   ДенисЧ
 
1 - 25.02.21 - 14:37
google://mod_rewrite
   DGorgoN
 
2 - 25.02.21 - 14:37
в папочку его перемести )
   Admin_Net_1C
 
3 - 25.02.21 - 14:48
(1) буду изучать, спасибо
(2) кого? в какую? )
   Йохохо
 
4 - 25.02.21 - 14:49
а на шару не прокатит в хттпд.конф Alias  "/api/hs" ?
   Admin_Net_1C
 
5 - 26.02.21 - 08:43
(4) Попытки (перед каждой новой попыткой система возвращается в первоначальное состояние):
1) указал в httpd.conf настройку AliasMatch ^(.*)/api/hs/(.*)$ $1/hs/$2

При выполнении запроса к сервису получаю ошибку:
Forbidden
You don't have permission to access this resource. (403)

2) в каталоге, где находится файл vrd сервиса, к которому идет обращение, создал файл .htaccess со строками:
RewriteEngine On
RewriteBase /
RewriteRule ^(.*)/api/hs/(.*)$ $1/hs/$2

При выполнении запроса к сервису получаю ошибку:
Internal Server Error
The server encountered an internal error or misconfiguration and was unable to complete your request.
Please contact the server administrator at   admin@example.com to inform them of the time this error occurred,  and the actions you performed just before this error.
More information about this error may be available in the server error log. (500)

3) в каталоге, где находится файл vrd сервиса, к которому идет обращение, создал вложенный каталог "api" и переместил туда файл vrd.

При выполнении запроса к сервису получаю ошибку:
1C:Enterprise 8 application error:Ошибка при разборе дескриптора виртуальных ресурсов
by reason:
Файл не обнаружен 'C:\1C_DB\1C_WEB\UT_Local\default.vrd'. 2(0x00000002): Не удается найти указанный файл.  (500)

Подскажите, что не так делаю?
   Йохохо
 
6 - 26.02.21 - 09:06
(5) нету тестовой базы. попробуй не через мод рерайт, а просто мод алиас, (5) в топку, блокнотом (4) в хттпд.конф
# ++ 1c publication

Alias  "/api/hs" "E:/sites1c/hs"

<Directory "E:/Apache/Apache2.4.64/sites1c">
    Options Indexes FollowSymLinks
    AllowOverride None
    Require all granted
</Directory>

# hs

<Directory "E:/sites1c/hs">
AllowOverride None
Order allow,deny
Allow from all
SetHandler 1c-application
ManagedApplicationDescriptor "E:/sites1c/hs/default.vrd"
</Directory>
# -- 1c publication
   Admin_Net_1C
 
7 - 26.02.21 - 09:29
(6) переделал под свои пути, получилось:
# ++ 1c publication

Alias  "/api/hs" "C:/1C_DB/1C_WEB/hs"

<Directory "C:/Apache24/1C_WEB/hs">
    Options Indexes FollowSymLinks
    AllowOverride None
    Require all granted
</Directory>

# hs


<Directory "C:/1C_DB/1C_WEB/hs">
    AllowOverride None
    Order allow,deny
    Allow from all
    SetHandler 1c-application
    ManagedApplicationDescriptor "C:/1C_DB/1C_WEB/hs/default.vrd"
</Directory>
# -- 1c publication


Перенес файл vrd в каталог C:\1C_DB\1C_WEB\hs

Apache не стартует, в журнале системы ошибка:
Служба "Apache2.4" завершена из-за следующей внутренней ошибки:
Неверная функция.
   Admin_Net_1C
 
8 - 26.02.21 - 09:35
(7) ошибки в этих двух строках:
#    Order allow,deny
#    Allow from all

если раскомментирю любую из них, апач не стартует
   Admin_Net_1C
 
9 - 26.02.21 - 09:38
(6) при таком конфиге:
# ++ 1c publication

Alias  "/api/hs" "C:/1C_DB/1C_WEB/hs"

<Directory "C:/Apache24/1C_WEB/hs">
    Options Indexes FollowSymLinks
    AllowOverride None
    Require all granted
</Directory>

# hs


<Directory "C:/1C_DB/1C_WEB/hs">
    AllowOverride None
#    Order allow,deny
#    Allow from all
    SetHandler 1c-application
    ManagedApplicationDescriptor "C:/1C_DB/1C_WEB/hs/default.vrd"
</Directory>
# -- 1c publication


Ошибка при обращении к сервису:
{ОбщийМодуль.ОбщаяИБ.Модуль(174)}: 1C:Enterprise 8 application error:HTTP: Not found Ошибка при работе с ресурсом /ut_local/api/hs/prisesofsupplier/getprisesbyfulltextsearch (404)
   Йохохо
 
10 - 26.02.21 - 09:40
мб опубликовать любым рабочим способом, а потом блокнотом поправить алиас
   Admin_Net_1C
 
11 - 26.02.21 - 09:50
(10) рабочий способ, тот, который система создает автоматически при публикации из конфигуратора. В этом случае в httpd:
Alias "/ut_local" "C:/1C_DB/1C_WEB/UT_Local/"
<Directory "C:/1C_DB/1C_WEB/UT_Local/">
    AllowOverride All
    Options None
    Require all granted
    SetHandler 1c-application
    ManagedApplicationDescriptor "C:/1C_DB/1C_WEB/UT_Local/default.vrd"
</Directory>

и работает, НО поскольку в продакшене, в конфиге зашито обращение URL+"api/hs/"+ИмяСервиса, то каждый раз при разработке/отладке на локальной копии приходится заменять эту строку на URL+"hs/"+ИмяСервиса
   Йохохо
 
12 - 26.02.21 - 09:51
Alias "/api/hs" "C:/1C_DB/1C_WEB/UT_Local/"
не на чем потестить, почитай httpd /?
для теста можно сделать свой инстанс апача httpd -k -n xxx -f yyy

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.