Puncte:0

Cum pot testa un lucrător ajp (tomcat10, apache 2.4.6)?

drapel cn

Am o configurare simplă a serverului:

  1. Apache 2.4.6
  2. Lucrător JK pentru că a vorbit cu Tomcat, unde există un serviciu REST
  3. 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 (*)
Puncte:0
drapel cn

Ei bine, este jenant, dar am folosit un nume greșit în lista de muncitori.

ajp_worker_tomcat10_prod în loc de ajp13_worker_tomcat10_prod.

Partea interesantă este că nu a existat niciun mesaj de eroare ca muncitor nu a fost găsit sau lucrătorul nu are config. Doar mesajul ciudat de la Apache și nimic înăuntru mod_jk.log sau al lui Apache eroare.log.

Aceasta ar putea fi, de asemenea, o problemă de configurare.

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.