ฉันมีการตั้งค่าเซิร์ฟเวอร์อย่างง่าย:
- อาปาเช่ 2.4.6
- JK Worker สำหรับการพูดคุยกับ Tomcat ที่บริการ REST อาศัยอยู่
- ทอมแคท 10
โฮสต์เสมือน
ในไฟล์โฮสต์เสมือนของฉัน ฉันมีการกำหนดค่านี้ (ตัวอย่างใน <VirtualHost *:443>
):
<ไดเรกทอรี "/var/www/frontends">
ต้องได้รับอนุญาตทั้งหมด
RewriteEngine เปิดอยู่
# [...]
RewriteRule co2avatar-app/sdp-api$ sdp-api/test/ [PT]
RewriteRule co2avatar-app/sdp-api/(.*)$ sdp-api/$1 [PT]
# สิ่งอื่นใดใน index.html
RewriteRule co2avatar-app/(.+) co2avatar-app/index.html [L]
</ไดเร็กทอรี>
#นิยามคนทำงาน
JkMount /sdp-api/* ajp13_worker_prod
JkMount /sdp-api ajp13_worker_prod
คนงาน
#คนงาน.properties -
# worker.tomcat_home=/opt/tomcat/latest/
#
# worker.java_home ควรชี้ไปที่การติดตั้ง Java ของคุณ โดยทั่วไป
# คุณควรมีไดเร็กทอรี bin และ lib อยู่ข้างใต้
#
คนงาน.java_home=/usr/lib/jvm/
ปล.=/
worker.list=ajp13_worker_prod,ajp13_worker_test,ajp13_worker_tomcat10_test,ajp_worker_tomcat10_prod
#
#------ ajp13_worker คำจำกัดความของคนงาน ------------------------------
#--------------------------------------------- --------------------
#
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
#เราไม่ได้ใช้โหลดบาลานซ์เลย
ฉันควรเพิ่มว่า ajp13_worker_prod พนักงานชี้ไปที่บริการใน Tomcat 9 เช่น ajp13_worker_tomcat10_prod ผู้ปฏิบัติงานไปยังอินสแตนซ์ Tomcat 10 แต่วิธีนี้ใช้ได้ดีกับโฮสต์เสมือนอื่น (ซึ่งเป็นระบบทดสอบที่มีประสิทธิภาพ)
ทุกอย่างทำงานได้ดีจนกว่าฉันจะเปลี่ยนบรรทัด
JkMount /sdp-api/* ajp13_worker_prod
JkMount /sdp-api ajp13_worker_prod
ถึง
JkMount /sdp-api/* ajp13_worker_tomcat10_prod
JkMount /sdp-api ajp13_worker_tomcat10_prod
บริการใน Tomcat ทำงานได้ดี ฉันสามารถติดต่อได้ทาง ขด http://localhost:6085/[...]
. ดังนั้นพอร์ตจึงเปิดให้ใช้งานจาก localhost
แต่ฉันไม่สามารถติดต่อพวกเขาได้ จากด้านนอกผ่านทาง Apache ที่นี่ฉันได้รับ 500 กับ เซิร์ฟเวอร์พบข้อผิดพลาดภายในหรือการกำหนดค่าที่ไม่ถูกต้อง และไม่สามารถดำเนินการตามคำขอของคุณได้
ฉันสแกนไฟล์บันทึกข้อผิดพลาดที่เป็นไปได้ทั้งหมดแล้ว แต่ไม่พบปัญหา โดยเฉพาะที่ไม่ได้อยู่ในบันทึกของ Apache
มีวิธีทดสอบพนักงาน JK หรือไม่?
มีวิธีทดสอบ Tomcat Connector หรือไม่?
ดูเหมือนว่าใน server.xml:
<Connector port="8019" proxyName="co2avatar.org" proxyPort="80" protocol="AJP/1.3" redirectPort="8443" secretRequired="false" />
. ตัวเชื่อมต่อ HTTP ใช้งานได้ แต่อาจไม่ใช่ตัวเชื่อมต่อนี้ มีปัญหาระหว่าง Apache (ผู้ปฏิบัติงาน ajp) และ Tomcat แต่การส่งคำขอกับ Apache นั้นยังไม่สามารถช่วยได้
(คำถามเริ่มต้น:) เป็นไปได้ไหมที่จะรีสตาร์ทโมดูล JK เท่านั้น
นี่คือข้อความที่ตัดตอนมาจาก Apache บันทึกข้อผิดพลาด (ไม่มีอะไรใน mod_jk.log):
[jk:warn] [pid 1286] ไม่มีการกำหนด JkShmFile ใน httpd.conf ใช้ค่าเริ่มต้น /etc/httpd/logs/jk-runtime-status
[slotmem_shm:debug] [pid 1286] mod_slotmem_shm.c(448): AH02301: แนบการค้นหา /run/httpd/slotmem-shm-mod_heartmonitor.shm
[lbmethod_heartbeat:notice] [pid 1286] AH02282: ไม่มี slotmem จาก mod_heartmonitor
[ssl:debug] [pid 1286] ssl_engine_pphrase.c(181): AH02199: SSL ไม่ได้เปิดใช้งานบน vhost h2862201.stratoserver.net:80 ข้ามการตั้งค่า SSL
[ssl:debug] [pid 1286] ssl_engine_pphrase.c(239): AH02202: Init: อ่านใบรับรองเซิร์ฟเวอร์จาก '/etc/letsencrypt/live/co2-avatar.com/cert.pem'
[ssl:debug] [pid 1286] ssl_engine_pphrase.c(239): AH02202: Init: อ่านใบรับรองเซิร์ฟเวอร์จาก '/etc/letsencrypt/live/co2-avatar.com/cert.pem'
[ssl:debug] [pid 1286] ssl_engine_pphrase.c(239): AH02202: Init: อ่านใบรับรองเซิร์ฟเวอร์จาก '/etc/letsencrypt/live/co2-avatar.com/fullchain.pem'
[ssl:debug] [pid 1286] ssl_engine_pphrase.c(239): AH02202: Init: อ่านใบรับรองเซิร์ฟเวอร์จาก '/etc/letsencrypt/live/co2-avatar.com/cert.pem'
[ssl:debug] [pid 1286] ssl_engine_pphrase.c(239): AH02202: Init: อ่านใบรับรองเซิร์ฟเวอร์จาก '/etc/letsencrypt/live/co2-avatar.com/cert.pem'
[socache_shmcb:debug] [pid 1286] mod_socache_shmcb.c(391): AH00821: shmcb_init จัดสรรหน่วยความจำที่ใช้ร่วมกัน 512,000 ไบต์
[socache_shmcb:debug] [pid 1286] mod_socache_shmcb.c(407): AH00822: สำหรับ 511912 ไบต์ (512000 รวมส่วนหัว) แนะนำแคชย่อย 32 รายการ ดัชนีละ 88 รายการ
[socache_shmcb:debug] [pid 1286] mod_socache_shmcb.c(440): AH00824: 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: เริ่มต้น socache หน่วยความจำที่ใช้ร่วมกัน
[ssl:info] [pid 1286] AH01887: Init: การเริ่มต้นเซิร์ฟเวอร์ (เสมือน) สำหรับ SSL
[ssl:debug] [pid 1286] ssl_engine_init.c(1502): Init: SSL server IP/port overlap: h2862201.stratoserver.net:443 (/etc/httpd/conf.d/ssl.conf:57) กับ co2-avatar.com:443 (/etc/httpd/conf.d/vhost-le-ssl.conf:4)
[ssl:debug] [pid 1286] ssl_engine_init.c(1502): Init: SSL server IP/port overlap: gitlab.sustainable-data-platform.org:443 (/etc/httpd/conf.d/gitlab-le- ssl.conf:2) กับ co2-avatar.com:443 (/etc/httpd/conf.d/vhost-le-ssl.conf:4)
[ssl:debug] [pid 1286] ssl_engine_init.c(1502): Init: SSL server IP/port overlap: 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: โฮสต์เสมือน SSL ตามชื่อใช้งานได้เฉพาะกับไคลเอนต์ที่รองรับการระบุชื่อเซิร์ฟเวอร์ TLS (RFC 4366)
[ssl:info] [pid 1286] AH01876: mod_ssl/2.4.6 คอมไพล์กับเซิร์ฟเวอร์: Apache/2.4.6, Library: OpenSSL/1.0.2k
[พร็อกซี:ดีบัก] [pid 1292] proxy_util.c(1843): AH00925: กำลังเริ่มต้นพร็อกซีของผู้ปฏิบัติงาน: แชร์ย้อนกลับ
[พร็อกซี:ดีบัก] [pid 1292] proxy_util.c(1888): AH00927: กำลังเริ่มต้นพร็อกซีของผู้ปฏิบัติงาน:ย้อนกลับภายในเครื่อง
[พร็อกซี:ดีบัก] [pid 1292] proxy_util.c(1939): AH00931: เริ่มต้นผู้ปฏิบัติงานการเชื่อมต่อเดี่ยวในชายด์ 1292 สำหรับ (*)
[พร็อกซี:ดีบัก] [pid 1293] proxy_util.c(1843): AH00925: กำลังเริ่มต้นพร็อกซีของผู้ปฏิบัติงาน: แชร์ย้อนกลับ
[พร็อกซี:ดีบัก] [pid 1293] proxy_util.c(1888): AH00927: กำลังเริ่มต้นพร็อกซีของผู้ปฏิบัติงาน:ย้อนกลับภายในเครื่อง
[พร็อกซี:ดีบัก] [pid 1293] proxy_util.c(1939): AH00931: เริ่มต้นผู้ปฏิบัติงานการเชื่อมต่อเดี่ยวในชายด์ 1293 สำหรับ (*)
[พร็อกซี:ดีบัก] [pid 1295] proxy_util.c(1843): AH00925: กำลังเริ่มต้นพร็อกซีของผู้ปฏิบัติงาน: แชร์ย้อนกลับ
[พร็อกซี:ดีบัก] [pid 1295] proxy_util.c(1888): AH00927: กำลังเริ่มต้นพร็อกซีของผู้ปฏิบัติงาน: ย้อนกลับภายในเครื่อง
[proxy:debug] [pid 1295] proxy_util.c(1939): AH00931: เริ่มต้นผู้ปฏิบัติงานการเชื่อมต่อเดี่ยวใน 1295 ย่อยสำหรับ (*)
[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 กำหนดค่า -- กลับมาดำเนินการตามปกติ
[mpm_prefork:info] [pid 1286] AH00164: เซิร์ฟเวอร์ที่สร้างขึ้น: 16 พ.ย. 2020 16:18:20 น.
[แกนหลัก: ประกาศ] [pid 1286] AH00094: บรรทัดคำสั่ง: '/usr/sbin/httpd -D FOREGGROUND'
[mpm_prefork:debug] [pid 1286] prefork.c(1005): AH00165: ยอมรับ mutex: sysvsem (ค่าเริ่มต้น: sysvsem)
[พร็อกซี:ดีบัก] [pid 1294] proxy_util.c(1843): AH00925: กำลังเริ่มต้นพร็อกซีของผู้ปฏิบัติงาน: แชร์ย้อนกลับ
[พร็อกซี:ดีบัก] [pid 1294] proxy_util.c(1888): AH00927: กำลังเริ่มต้นพร็อกซีของผู้ปฏิบัติงาน:ย้อนกลับภายในเครื่อง
[พร็อกซี:ดีบัก] [pid 1294] proxy_util.c(1939): AH00931: เริ่มต้นผู้ปฏิบัติงานการเชื่อมต่อเดี่ยวในชายด์ 1294 สำหรับ (*)
[พร็อกซี:ดีบัก] [pid 1296] proxy_util.c(1843): AH00925: กำลังเริ่มต้นพร็อกซีของผู้ปฏิบัติงาน: แชร์ย้อนกลับ
[พร็อกซี:ดีบัก] [pid 1296] proxy_util.c(1888): AH00927: กำลังเริ่มต้นพร็อกซีของผู้ปฏิบัติงาน:ย้อนกลับภายในเครื่อง
[พร็อกซี:ดีบัก] [pid 1296] proxy_util.c(1939): AH00931: เริ่มต้นผู้ปฏิบัติงานการเชื่อมต่อเดี่ยวในชายด์ 1296 สำหรับ (*)
[พร็อกซี:ดีบัก] [pid 1378] proxy_util.c(1843): AH00925: กำลังเริ่มต้นพร็อกซีของผู้ปฏิบัติงาน: แชร์ย้อนกลับ
[พร็อกซี:ดีบัก] [pid 1378] proxy_util.c(1888): AH00927: กำลังเริ่มต้นพร็อกซีของผู้ปฏิบัติงาน:ย้อนกลับภายในเครื่อง
[พร็อกซี:ดีบัก] [pid 1378] proxy_util.c(1939): AH00931: เริ่มต้นผู้ปฏิบัติงานการเชื่อมต่อเดี่ยวในชายด์ 1378 สำหรับ (*)
[พร็อกซี:ดีบัก] [pid 1408] proxy_util.c(1843): AH00925: กำลังเริ่มต้นพร็อกซีของผู้ปฏิบัติงาน: แชร์ย้อนกลับ
[พร็อกซี:ดีบัก] [pid 1408] proxy_util.c(1888): AH00927: กำลังเริ่มต้นพร็อกซีของผู้ปฏิบัติงาน: ย้อนกลับภายในเครื่อง
[พร็อกซี:ดีบัก] [pid 1408] proxy_util.c(1939): AH00931: เริ่มต้นผู้ปฏิบัติงานการเชื่อมต่อเดี่ยวในชายด์ 1408 สำหรับ (*)
[พร็อกซี:ดีบัก] [pid 1859] proxy_util.c(1843): AH00925: กำลังเริ่มต้นพร็อกซีของผู้ปฏิบัติงาน: แชร์ย้อนกลับ
[พร็อกซี:ดีบัก] [pid 1859] proxy_util.c(1888): AH00927: กำลังเริ่มต้นพร็อกซีของผู้ปฏิบัติงาน:ย้อนกลับภายในเครื่อง
[proxy:debug] [pid 1859] proxy_util.c(1939): AH00931: เริ่มต้นผู้ปฏิบัติงานการเชื่อมต่อเดี่ยวใน child 1859 สำหรับ (*)
[พร็อกซี:ดีบัก] [pid 15109] proxy_util.c(1843): AH00925: กำลังเริ่มต้นพร็อกซีของผู้ปฏิบัติงาน: แชร์ย้อนกลับ
[พร็อกซี:ดีบัก] [pid 15109] proxy_util.c(1888): AH00927: กำลังเริ่มต้นพร็อกซีของผู้ปฏิบัติงาน: ย้อนกลับภายในเครื่อง
[พร็อกซี:ดีบัก] [pid 15109] proxy_util.c(1939): AH00931: เริ่มต้นผู้ปฏิบัติงานการเชื่อมต่อเดี่ยวในชายด์ 15109 สำหรับ (*)
[พร็อกซี:ดีบัก] [pid 17029] proxy_util.c(1843): AH00925: กำลังเริ่มต้นพร็อกซีของผู้ปฏิบัติงาน: แชร์ย้อนกลับ
[พร็อกซี:ดีบัก] [pid 17029] proxy_util.c(1888): AH00927: กำลังเริ่มต้นพร็อกซีของผู้ปฏิบัติงาน:ย้อนกลับภายในเครื่อง
[พร็อกซี:ดีบัก] [pid 17029] proxy_util.c(1939): AH00931: เริ่มต้นผู้ปฏิบัติงานการเชื่อมต่อเดี่ยวในชายด์ 17029 สำหรับ (*)