A nearly working apache config for Meet
-
Hi,
i want to post here my apache config for meet, for all that want to use apache instead of kwebd or nginx. It should be complete.
# Kopano API ProxyPass /api/gc/ http://localhost:8039/api/gc/ retry=0 RewriteCond %{HTTP:Connection} Upgrade [NC] RewriteCond %{HTTP:Upgrade} websocket [NC] RewriteRule /api/pubs/(.*) ws://localhost:8039/api/pubs/$1 [P,L] ProxyPass /api/pubs/ http://localhost:8039/api/pubs/ retry=0 # Kopano Konnect ProxyPass /.well-known/openid-configuration http://localhost:8777/.well-known/openid-configuration retry=0 ProxyPass /konnect/v1/jwks.json http://localhost:8777/konnect/v1/jwks.json retry=0 ProxyPass /konnect/v1/token http://localhost:8777/konnect/v1/token retry=0 ProxyPass /konnect/v1/userinfo http://localhost:8777/konnect/v1/userinfo retry=0 ProxyPass /konnect/v1/static http://localhost:8777/konnect/v1/static retry=0 ProxyPass /konnect/v1/session http://localhost:8777//konnect/v1/session retry=0 # Kopano Konnect login area ProxyPass /signin/ http://localhost:8777/signin/ retry=0 # Kopano Meet <Directory /usr/share/kopano-meet> Options Indexes FollowSymLinks MultiViews Order allow,deny Allow from all Require all granted <IfModule mod_expires.c> <FilesMatch "service-worker.js$"> ExpiresActive Off Header set Cache-Control "private, no-cache, no-store, proxy-revalidate, no-transform" Header set Pragma "no-cache" </FilesMatch> </IfModule> </Directory> RewriteRule ^/meet/r/(.*)$ /meet [NC] Alias /meet /usr/share/kopano-meet/meet-webapp Alias /api/config/v1/kopano/meet/config.json /usr/share/kopano-meet/config/kopano/meet.json RewriteCond %{HTTP:Connection} Upgrade [NC] RewriteCond %{HTTP:Upgrade} websocket [NC] RewriteRule /api/v1/websocket/(.*) ws://localhost:8778/api/v1/websocket/$1 [P,L] ProxyPass /api/v1/websocket/ http://localhost:8778/api/v1/websocket/ retry=0 Proxypass /api/v1/rtm.connect http://localhost:8778/api/v1/rtm.connect retry=0 Proxypass /api/v1/rtm.turn http://localhost:8778/api/v1/rtm.turn retry=0 RewriteCond %{HTTP:Connection} Upgrade [NC] RewriteCond %{HTTP:Upgrade} websocket [NC] RewriteRule /api/kwm/v2/(.*) ws://localhost:8778/api/kwm/v2/$1 [P,L] ProxyPass /api/kwm/v2/ http://localhost:8778/api/kwm/v2/ retry=0 RewriteCond %{HTTP:Connection} Upgrade [NC] RewriteCond %{HTTP:Upgrade} websocket [NC] RewriteRule /api/kvs/v1/(.*) ws://localhost:8039/api/kvs/v1/$1 [P,L] ProxyPass /api/kvs/v1/ http://localhost:8039/api/kvs/v1/ retry=0
With this config there is 1 issue left: the contact list is not updated. I got no errors in the
apache log-file. Could that be an caching problem ?many greetings to the kopano team for their excellent work
Michael -
This config seems a bit strange.
- You are mixing ProxyPass and RewriteRule - i would suggest to only use RewriteRule to simplify things
- All rules from your config starting with
/api/v1/
are obsolete and not used by any reasonably recent Meet version - /api/pubs is not used by Meet
- Lots of ProxyPass rules for Kopano Konnect, could be replaced by a single RewriteRule.
- Conditional around mandatory caching headers for service-worker.js, remove the condition
Contacts not updating is not a caching problem. Check all your logs. Contacts might also be empty or only appear on search based on the backend and the number of people in the global addressbook.
-
ok, i delete all Proxy-Pass rules where i have an Rewriterule, but i need to have
ProxyPass /api/kwm/v2/ http://localhost:8778/api/kwm/v2/ retry=0Without that rule it does not work.
if found /api/v1 and /api/pubs in the sources of kwebd, so i thougth we need them.
so, here is the simplified version:
# Kopano API ProxyPass /api/gc/ http://localhost:8039/api/gc/ retry=0 # Kopano Konnect ProxyPass /.well-known/openid-configuration http://localhost:8777/.well-known/openid-configuration retry=0 RewriteRule /konnect/v1/(.*) http://localhost:8777/konnect/v1/$1 [P,L] # Kopano Konnect login area ProxyPass /signin/ http://localhost:8777/signin/ retry=0 # Kopano Meet <Directory /usr/share/kopano-meet> Options Indexes FollowSymLinks MultiViews Order allow,deny Allow from all Require all granted <IfModule mod_expires.c> <FilesMatch "service-worker.js$"> ExpiresActive Off </FilesMatch> </IfModule> </Directory> RewriteRule ^/meet/r/(.*)$ /meet [NC] Alias /meet /usr/share/kopano-meet/meet-webapp Alias /api/config/v1/kopano/meet/config.json /usr/share/kopano-meet/config/kopano/meet.json RewriteCond %{HTTP:Connection} Upgrade [NC] RewriteCond %{HTTP:Upgrade} websocket [NC] RewriteRule /api/kwm/v2/(.*) ws://localhost:8778/api/kwm/v2/$1 [P,L] ProxyPass /api/kwm/v2/ http://localhost:8778/api/kwm/v2/ retry=0 RewriteCond %{HTTP:Connection} Upgrade [NC] RewriteCond %{HTTP:Upgrade} websocket [NC] RewriteRule /api/kvs/v1/(.*) ws://localhost:8039/api/kvs/v1/$1 [P,L]
About my GAB-Problem, it seem’s that it have nothing to do with the webserver, with kwebd i
also does not see new users in contacts. The same if i delete an user. He is still seen in the contacts. -
I still have problem’s with the contacts under apache. There are no error’s in the logs.
It work’s with kwebd.I can now test it in the following way with Firefox under LInux:
- first, clean up the .mozilla directory
- then logon in to meet with an account --> all GAB entries are shown correctly
- logout from meet
- delete or add an account in the GAB
- login again into meet --> the new created or deleted account is not shown in contact (with apache)
if i do the same with kwebd it work’s.
I found 1 difference in the kwebd-request log against the access.log from apache.
With kwebd the Urls/api/gc/v1/users?$top=1&$skip=100&$select=id HTTP/2.0" /api/gc/v1/users?$top=100&$skip=0
are called after every login. If i use acpache these URL’s are only called after the first login.
Do you have an idea, why that happens ?
best regards
Michael -
@mniehren said in A nearly working apache config for Meet:
Mhm i have no idea whats wrong with your Apache. Look at the requests in detail (in the browsers web console). At the start of meet, two requests to the
users
endpoints are made. First one withtop=1&skip=100
and then based on the result the next one to fetch the first 100 users withtop=100&skip=0
.