আমি টমকেট এজেপি-সংযোজকরা কীভাবে কাজ করব?


9

আমি সংযোগকারীগুলি ব্যবহার করে অ্যাপাচি-ওয়েবসার্ভারের মাধ্যমে টমকেট অ্যাক্সেস করতে চাই। আমি ডকুমেন্টেশনের সাথে আঁকড়েছি : http://tomcat.apache.org/connectors-doc/generic_howto/quick.html আমি কেবল এটি আমার ডেবিয়ান- (স্কিজ)-সিস্টেমে ব্যবহৃত ডিরেক্টরি-কাঠামোর সাথে মেলে সামান্য পরিবর্তন করেছি।

সুতরাং আমি /etc/apache2/httpd.conf এ নিম্নলিখিতগুলি যুক্ত করেছি:

# Load mod_jk module
# Update this path to match your modules location
#LoadModule    jk_module  libexec/mod_jk.so
# Declare the module for <IfModule directive> (remove this line on Apache 2.x)
#AddModule     mod_jk.c
# Where to find workers.properties
# Update this path to match your conf directory location (put workers.properties next to httpd.conf)
JkWorkersFile /etc/apache2/workers.properties
# Where to put jk shared memory
# Update this path to match your local state directory or logs directory
JkShmFile     /var/log/apache2/mod_jk.shm
# Where to put jk logs
# Update this path to match your logs directory location (put mod_jk.log next to access_log)
JkLogFile     /var/log/apache2/mod_jk.log
# Set the jk log level [debug/error/info]
JkLogLevel    info
# Select the timestamp log format
JkLogStampFormat "[%a %b %d %H:%M:%S %Y] "
# Send everything for context /examples to worker named worker1 (ajp13)
JkMount  /tomcat7/* worker1

আমি মডিউলটির লোডিং সম্পর্কে মন্তব্য করেছি, কারণ প্যাকেজ-সিস্টেমের মাধ্যমে mod_jk ইনস্টল করার পরে এটি ইতিমধ্যে ঘটেছিল (libapache2-mod-jk)।

আমার কর্মীরা

# Define 1 real worker using ajp13
worker.list=worker1
# Set properties for worker1 (ajp13)
worker.worker1.type=ajp13
worker.worker1.host=localhost
worker.worker1.port=8009

টমক্যাট 7 অ্যাপাচি থেকে সংরক্ষণাগার থেকে সরাসরি ইনস্টল করা হয়েছে, কারণ এটি স্কুয়েজে কোনও প্যাকেজ নয়। টমক্যাট 7 চলছে এবং এটি নিজস্ব বন্দরের অধীনে পৌঁছনীয় (8180, প্যাকেজ-সিস্টেম থেকে টমক্যাট 6 এর সাথে সংঘর্ষ না করার জন্য)। আমি যতদূর বুঝতে পেরেছি, আমার এখন http: // হোস্ট / টমক্যাট 7 / টমক্যাট সাইটটি দেখতে হবে । তবে আমি পরিবর্তে একটি 404 পাই। কি সমস্যা?


কোয়ান্টা লগ-স্তরটি ডিবাগ-এ সেট করার ইঙ্গিত দেওয়ার পরে (ধন্যবাদ) আমি তা করেছিলাম এবং মোড_জেক.লগে নিম্নলিখিত ত্রুটি-বার্তাটি পেয়েছি: 'জে কে_ম্যাপ_ টোস্টোর :: মোড_জেক.সি (3585): 176.9.9.55:/tomcat7 এর জন্য ইউরি মানচিত্রটি অনুপস্থিত / '। আমি এটির জন্য গুগল করেছিলাম এবং http://old.nabble.com/mod_jk%2C-missing-uri-map-td23984359.html

সুতরাং httpd.conf এ সেট করা বিকল্পগুলি ভার্চুয়ালহোস্টগুলিতে ব্যবহার করা হয়নি। আমি আমার ভার্চুয়ালহোস্টে 'জেকমাউন্টকপি অন' যুক্ত করেছি - এবং প্রথমে একটি টমক্যাট 404 পেয়েছি (httpd 404 এর পরিবর্তে)। এখানে সমস্যা, যে তিনি ঠিক একই ইউআরআই আরোহণের চেষ্টা করেছেন, তাই আমার ক্ষেত্রে / টমক্যাট 7। আমি পরিবর্তে ওয়েব অ্যাপের নামটি মাউন্ট হিসাবে ব্যবহার করেছি এবং আমার পক্ষে সবকিছু ঠিক আছে।

উত্তর:


4

নিশ্চিত করো যে:

  1. আপনি একটি পিছনে স্ল্যাশ টাইপ করেন HTTP: // হোস্ট / টমক্যাট 7 / , না http: // হোস্ট / টমক্যাট 7
  2. আপনার কাছে একটি এজেপি 1.3 সংযোগকারী 8008 পোর্টে শুনতে পাবেন server.xml:

    <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
    

যদি এটি এখনও কাজ না করে, আমি আপনাকে ডিবাগটি চালু করার এবং একবার নজর দেওয়ার পরামর্শ দিই mod_jk.log


সম্পাদনা করুন:

আপনি যদি ব্যবহার করেন:

JkMount  /tomcat7/* worker1

এবং HTTP: // হোস্ট / টমক্যাট 7 এর মাধ্যমে অ্যাক্সেস , আমি নিশ্চিত আপনি অ্যাপাচি 404 ত্রুটি পাবেন।

আপনি JkMountচান এমন একটি ভার্চুয়াল হোস্ট বিভাগে নির্দিষ্ট করতে পারেন:

<VirtualHost *:80>
    ServerName  xx
    ServerAdmin xx

    JkMount /tomcat7 worker1
    JkMount /tomcat7/* worker1
</VirtualHost>

আমি স্ল্যাশ সহ এবং এর বাইরে চেষ্টা করেছি এবং সার্ভার.এক্সএমএলটিতে উল্লিখিত লাইন রয়েছে। মোড_জেক.লগে আকর্ষণীয় কিছু নেই, কেবলমাত্র বার্তাটি, যে মোড_জেকে শুরু করা হয়েছিল।
মেনেমেন্ট

1
আপনি অ্যাপাচি সেট JkLogLevelকরে debugআবার লোড / পুনঃসূচনা করেছেন? এই চেষ্টা করুন: http://host/tomcat7/xx। এর সম্পূর্ণ সামগ্রী পোস্ট করুন server.xml
কোয়ান্টা

আহ, লগ-স্তর সহ ইঙ্গিতটির জন্য ধন্যবাদ।
মেনিমেথ

আমার উপরের সম্পাদিত উত্তরটি পরীক্ষা করে দেখুন।
কোয়ান্টা

1

আমারও একই সমস্যা ছিল। সমাধান পরিবর্তন JkMount /tomcat7* worker1করতে হয় JkMount /your-servlet-app* worker1। আপনি JkMountচান হিসাবে অনেক পেতে পারেন।

উদাহরণস্বরূপ, যোগ করার পরে JkMount /manager* worker1, আপনি অ্যাক্সেস করতে সক্ষম হবেনhttp://host/manager/html

আমি এজেপি এবং এইচপি উভয়ই চেষ্টা করার পরে আমি এই সমস্যাটি বুঝতে পেরেছি। আমার নিম্নলিখিত প্রবেশাধিকার লগ ছিল/var/log/tomcat7/localhost_access_log.txt

10.215.22.132 - - [04/Mar/2016:13:14:39 +0800] "GET /tomcat-demo/manager/ HTTP/1.1" 404 1009
10.215.22.132 - - [04/Mar/2016:13:26:05 +0800] "GET /tomcat-demo/manager/http/ HTTP/1.1" 404 1019
10.215.22.132 - - [04/Mar/2016:13:40:33 +0800] "GET /manager/ HTTP/1.1" 302 -
10.215.22.132 - - [04/Mar/2016:13:40:33 +0800] "GET /manager/html?org.apache.catalina.filters.CSRF_NONCE=E68B5F7E6E96D09C75A8D6854ECE9092 HTTP/1.1" 401 2474
10.215.22.132 - yz [04/Mar/2016:13:40:35 +0800] "GET /manager/html?org.apache.catalina.filters.CSRF_NONCE=E68B5F7E6E96D09C75A8D6854ECE9092 HTTP/1.1" 200 12405

আমি এজেপি ব্যবহার করার সময় প্রথম দুটি লগ লাইন তৈরি হয়েছিল। সর্বশেষ তিনটি তৈরি হয়েছিল যখন আমি সরাসরি টমকাট অ্যাক্সেস করতে HTTP ব্যবহার করি। সুতরাং অ্যাপাচি jkmount উপসর্গটি সরিয়ে না দিয়ে পুরো URL টি টোমকেটে পাস করছে।


আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.