Am o configurare simplă a serverului:
- Apache 2.4.6
- Lucrător JK pentru că a vorbit cu Tomcat, unde există un serviciu REST
- Tomcat 10
Gazdă virtuală
În fișierul meu gazdă virtuală am această configurație (fragment în <VirtualHost *:443>
):
<Directorul „/var/www/frontends”>
Solicitați toate acordate
RewriteEngine Pornit
# [...]
RewriteRule co2avatar-app/sdp-api$ sdp-api/test/ [PT]
RewriteRule co2avatar-app/sdp-api/(.*)$ sdp-api/$1 [PT]
# orice altceva la index.html
RewriteRule co2avatar-app/(.+) co2avatar-app/index.html [L]
</Director>
# definiție lucrător
JkMount /sdp-api/* ajp13_worker_prod
JkMount /sdp-api ajp13_worker_prod
Muncitorii
# lucrători.proprietăți -
# workers.tomcat_home=/opt/tomcat/latest/
#
# workers.java_home ar trebui să indice instalarea ta Java. În mod normal
# ar trebui să aveți directoare bin și lib sub el.
#
workers.java_home=/usr/lib/jvm/
ps=/
worker.list=ajp13_worker_prod,ajp13_worker_test,ajp13_worker_tomcat10_test,ajp_worker_tomcat10_prod
#
#------ ajp13_worker DEFINIȚIA LUCRĂTORULUI ------------------------------
#--------------------------------------------- --------------------
#
worker.ajp13_worker_prod.port=8009
worker.ajp13_worker_prod.host=localhost
worker.ajp13_worker_prod.type=ajp13
worker.ajp13_worker_test.port=8010
worker.ajp13_worker_test.host=localhost
worker.ajp13_worker_test.type=ajp13
worker.ajp13_worker_tomcat10_test.port=8020
worker.ajp13_worker_tomcat10_test.host=localhost
worker.ajp13_worker_tomcat10_test.type=ajp13
worker.ajp13_worker_tomcat10_prod.port=8019
worker.ajp13_worker_tomcat10_prod.host=localhost
worker.ajp13_worker_tomcat10_prod.type=ajp13
# nu folosim deloc echilibrarea sarcinii.
Ar trebui să adaug că ajp13_worker_prod lucrătorul indică un serviciu într-o instanță Tomcat 9, the ajp13_worker_tomcat10_prod lucrător la o instanță Tomcat 10. Dar acest lucru funcționează foarte bine pentru o gazdă virtuală diferită (care este efectiv sistemul de testare).
Totul merge bine până când schimb liniile
JkMount /sdp-api/* ajp13_worker_prod
JkMount /sdp-api ajp13_worker_prod
la
JkMount /sdp-api/* ajp13_worker_tomcat10_prod
JkMount /sdp-api ajp13_worker_tomcat10_prod
Serviciile din Tomcat funcționează bine, le pot contacta prin intermediul curl http://localhost:6085/[...]
. Deci porturile sunt deschise pentru utilizare de la localhost.
Dar nu pot ajunge la ei din afara, prin Apache. Aici primesc un 500 cu Serverul a întâmpinat o eroare internă sau o configurare greșită și nu a putut finaliza solicitarea dvs.
Am scanat toate fișierele jurnal de erori posibile, dar nu pot vedea problema, mai ales nu în jurnalele Apache.
Există vreo modalitate de a testa un lucrător JK?
Există vreo modalitate de a testa conectorul Tomcat?
Arata asa in server.xml:
<Connector port="8019" proxyName="co2avatar.org" proxyPort="80" protocol="AJP/1.3" redirectPort="8443" secretRequired="false" />
. Conectorul HTTP funcționează, dar poate nu acesta? Există o problemă între Apache (lucrătorul ajp) și Tomcat, dar doar lansarea cererii împotriva Apache nu ajută încă.
(Întrebare pentru începători:) Este posibil să reporniți numai modulul JK?
Iată un extras din Apache error_log (nu există nimic în mod_jk.log):
[jk:warn] [pid 1286] Niciun fișier JkShm definit în httpd.conf. Folosind implicit /etc/httpd/logs/jk-runtime-status
[slotmem_shm:debug] [pid 1286] mod_slotmem_shm.c(448): AH02301: atașați căutând /run/httpd/slotmem-shm-mod_heartmonitor.shm
[lbmethod_heartbeat:notice] [pid 1286] AH02282: Fără slotmem de la mod_heartmonitor
[ssl:debug] [pid 1286] ssl_engine_pphrase.c(181): AH02199: SSL nu este activat pe vhost h2862201.stratoserver.net:80, se omite configurarea SSL
[ssl:debug] [pid 1286] ssl_engine_pphrase.c(239): AH02202: Init: Citiți certificatul serverului de la „/etc/letsencrypt/live/co2-avatar.com/cert.pem”
[ssl:debug] [pid 1286] ssl_engine_pphrase.c(239): AH02202: Init: Citiți certificatul serverului de la „/etc/letsencrypt/live/co2-avatar.com/cert.pem”
[ssl:debug] [pid 1286] ssl_engine_pphrase.c(239): AH02202: Init: Citiți certificatul serverului de la „/etc/letsencrypt/live/co2-avatar.com/fullchain.pem”
[ssl:debug] [pid 1286] ssl_engine_pphrase.c(239): AH02202: Init: Citiți certificatul serverului de la „/etc/letsencrypt/live/co2-avatar.com/cert.pem”
[ssl:debug] [pid 1286] ssl_engine_pphrase.c(239): AH02202: Init: Citiți certificatul serverului de la „/etc/letsencrypt/live/co2-avatar.com/cert.pem”
[socache_shmcb:debug] [pid 1286] mod_socache_shmcb.c(391): AH00821: shmcb_init a alocat 512000 de octeți de memorie partajată
[socache_shmcb:debug] [pid 1286] mod_socache_shmcb.c(407): AH00822: pentru 511912 octeți (512000 inclusiv antetul), recomandând 32 de subcache-uri, câte 88 de indici fiecare
[socache_shmcb:debug] [pid 1286] mod_socache_shmcb.c(440): AH00824: urmează alegerile shmcb_init_memory
[socache_shmcb:debug] [pid 1286] mod_socache_shmcb.c(442): AH00825: subcache_num = 32
[socache_shmcb:debug] [pid 1286] mod_socache_shmcb.c(444): AH00826: subcache_size = 15992
[socache_shmcb:debug] [pid 1286] mod_socache_shmcb.c(446): AH00827: subcache_data_offset = 2128
[socache_shmcb:debug] [pid 1286] mod_socache_shmcb.c(448): AH00828: subcache_data_size = 13864
[socache_shmcb:debug] [pid 1286] mod_socache_shmcb.c(450): AH00829: index_num = 88
[socache_shmcb:info] [pid 1286] AH00830: memoria partajată socache inițializată
[ssl:info] [pid 1286] AH01887: Init: Inițializarea serverelor (virtuale) pentru SSL
[ssl:debug] [pid 1286] ssl_engine_init.c(1502): Init: suprapunere IP/port server SSL: h2862201.stratoserver.net:443 (/etc/httpd/conf.d/ssl.conf:57) vs. co2-avatar.com:443 (/etc/httpd/conf.d/vhost-le-ssl.conf:4)
[ssl:debug] [pid 1286] ssl_engine_init.c(1502): Init: IP-ul serverului SSL/suprapunere porturi: gitlab.sustainable-data-platform.org:443 (/etc/httpd/conf.d/gitlab-le- ssl.conf:2) vs. co2-avatar.com:443 (/etc/httpd/conf.d/vhost-le-ssl.conf:4)
[ssl:debug] [pid 1286] ssl_engine_init.c(1502): Init: suprapunere IP/port server SSL: co2avatar.org:443 (/etc/httpd/conf.d/co2avatar.conf:66) vs. co2- avatar.com:443 (/etc/httpd/conf.d/vhost-le-ssl.conf:4)
[ssl:warn] [pid 1286] AH02292: Init: gazdele virtuale SSL bazate pe nume funcționează numai pentru clienții cu suport pentru indicarea numelui serverului TLS (RFC 4366)
[ssl:info] [pid 1286] AH01876: mod_ssl/2.4.6 compilat pe Server: Apache/2.4.6, Biblioteca: OpenSSL/1.0.2k
[proxy:debug] [pid 1292] proxy_util.c(1843): AH00925: inițializarea lucrătorului proxy: partajat invers
[proxy:debug] [pid 1292] proxy_util.c(1888): AH00927: inițializarea worker proxy:reverse local
[proxy:debug] [pid 1292] proxy_util.c(1939): AH00931: lucrător cu o singură conexiune inițializat în copilul 1292 pentru (*)
[proxy:debug] [pid 1293] proxy_util.c(1843): AH00925: inițializarea worker proxy:reverse shared
[proxy:debug] [pid 1293] proxy_util.c(1888): AH00927: inițializarea worker proxy:reverse local
[proxy:debug] [pid 1293] proxy_util.c(1939): AH00931: lucrător cu o singură conexiune inițializat în copilul 1293 pentru (*)
[proxy:debug] [pid 1295] proxy_util.c(1843): AH00925: inițializarea worker proxy:reverse shared
[proxy:debug] [pid 1295] proxy_util.c(1888): AH00927: inițializarea worker proxy:reverse local
[proxy:debug] [pid 1295] proxy_util.c(1939): AH00931: lucrător cu o singură conexiune inițializat în copilul 1295 pentru (*)
[mpm_prefork:notice] [pid 1286] AH00163: Apache/2.4.6 (CentOS) mod_jk/1.2.48 OpenSSL/1.0.2k-fips PHP/7.2.29 configurat -- reluarea operațiunilor normale
[mpm_prefork:info] [pid 1286] AH00164: Server construit: 16 noiembrie 2020 16:18:20
[core:notice] [pid 1286] AH00094: Linia de comandă: „/usr/sbin/httpd -D PRIMUL PLAN”
[mpm_prefork:debug] [pid 1286] prefork.c(1005): AH00165: Accept mutex: sysvsem (implicit: sysvsem)
[proxy:debug] [pid 1294] proxy_util.c(1843): AH00925: inițializarea worker proxy:reverse shared
[proxy:debug] [pid 1294] proxy_util.c(1888): AH00927: inițializarea worker proxy:reverse local
[proxy:debug] [pid 1294] proxy_util.c(1939): AH00931: lucrător cu o singură conexiune inițializat în copilul 1294 pentru (*)
[proxy:debug] [pid 1296] proxy_util.c(1843): AH00925: inițializarea worker proxy:reverse shared
[proxy:debug] [pid 1296] proxy_util.c(1888): AH00927: inițializarea worker proxy:reverse local
[proxy:debug] [pid 1296] proxy_util.c(1939): AH00931: lucrător cu o singură conexiune inițializat în copilul 1296 pentru (*)
[proxy:debug] [pid 1378] proxy_util.c(1843): AH00925: inițializarea worker proxy:reverse shared
[proxy:debug] [pid 1378] proxy_util.c(1888): AH00927: inițializarea worker proxy:reverse local
[proxy:debug] [pid 1378] proxy_util.c(1939): AH00931: lucrător cu o singură conexiune inițializat în copilul 1378 pentru (*)
[proxy:debug] [pid 1408] proxy_util.c(1843): AH00925: inițializarea worker proxy:reverse shared
[proxy:debug] [pid 1408] proxy_util.c(1888): AH00927: inițializarea worker proxy:reverse local
[proxy:debug] [pid 1408] proxy_util.c(1939): AH00931: lucrător cu o singură conexiune inițializat în copilul 1408 pentru (*)
[proxy:debug] [pid 1859] proxy_util.c(1843): AH00925: inițializarea worker proxy:reverse shared
[proxy:debug] [pid 1859] proxy_util.c(1888): AH00927: inițializarea worker proxy:reverse local
[proxy:debug] [pid 1859] proxy_util.c(1939): AH00931: lucrător cu o singură conexiune inițializat în copilul 1859 pentru (*)
[proxy:debug] [pid 15109] proxy_util.c(1843): AH00925: inițializarea worker proxy:reverse shared
[proxy:debug] [pid 15109] proxy_util.c(1888): AH00927: inițializarea worker proxy:reverse local
[proxy:debug] [pid 15109] proxy_util.c(1939): AH00931: lucrător cu o singură conexiune inițializat în copilul 15109 pentru (*)
[proxy:debug] [pid 17029] proxy_util.c(1843): AH00925: inițializarea worker proxy:reverse shared
[proxy:debug] [pid 17029] proxy_util.c(1888): AH00927: inițializarea worker proxy:reverse local
[proxy:debug] [pid 17029] proxy_util.c(1939): AH00931: lucrător cu o singură conexiune inițializat în copilul 17029 pentru (*)