nginx $scheme
এর log_format
লাইনে পরিবর্তনশীল ব্যবহারযোগ্য has
%H
অনুরোধ প্রোটোকল (যেমন "HTTP / 1.1")।
আমি কীভাবে আপাচে একই কাজ করতে পারি?
nginx $scheme
এর log_format
লাইনে পরিবর্তনশীল ব্যবহারযোগ্য has
%H
অনুরোধ প্রোটোকল (যেমন "HTTP / 1.1")।
আমি কীভাবে আপাচে একই কাজ করতে পারি?
উত্তর:
এটি করার একটি উপায় হ'ল দুটি শর্তসাপেক্ষ CustomLog
নির্দেশনা, HTTPS
ভেরিয়েবল সেট করা আছে কিনা তা দ্বারা নিয়ন্ত্রিত ।
CustomLog logs/access.log "https://..." env=HTTPS
CustomLog logs/access.log "http://..." env=!HTTPS
আমি SetEnvIf
নিম্নলিখিত পদ্ধতিতে ব্যবহার করার চেষ্টা করেছি , তবে এটি কার্যকর হয় না (এটি লগ হয় -
):
SetEnv URL_SCHEME=http
SetEnvIf HTTPS on URL_SCHEME=https
CustomLog logs/access.log "%{URL_SCHEME}e://..."
SetEnvIf
লাইনটি অ্যাপাচি <2.4.1-তে কাজ করে না কারণ mod_setenvif
স্পষ্টতই এসএসএল পরিবেশে অ্যাক্সেস নেই । প্রায় আমাকে ২.২.২২-তে পাগল করে দিয়েছে।
mod_ssl
আপনি যদি পরিবেশের পরিবর্তনশীল সেট করেন তবে আপনি যদি এটির মাধ্যমে এটি করতে স্পষ্টভাবে বলেন SSLOptions
।
কোনও কারণে আমি উপরের উদাহরণগুলি কাজ করতে পারি না, সুতরাং অন্য একটি উপায় খুঁজে পেয়েছি: আপনি আপনার কনফিগারেশনে 2 টি পুনর্লিখনের নিয়মগুলি নীচে যুক্ত করতে পারেন:
RewriteCond %{HTTPS} !=on
RewriteRule ^(.*)$ - [E=SCHEME:HTTP]
RewriteCond %{HTTPS} =on
RewriteRule ^(.*)$ - [E=SCHEME:HTTPS]
তারপরে এটি আপনার লগফর্ম্যাট সংজ্ঞাতে যুক্ত করুন।
scheme=\"%{SCHEME}e\"
ইউআরএল স্কিমটি অ্যাপাচি লগ ফর্ম্যাটে সরাসরি উপলভ্য না হওয়ায় আপনি বিকল্প হিসাবে% p ব্যবহার করে অনুরোধটি পরিবেশন করা সার্ভারের ক্যানোনিকাল পোর্টটি (যেমন 80/443) লগ করতে পারেন:
CustomLog access.log "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-agent}i\" port:%p"
এটি অ্যাপাচি ২.৪.২৩ এর সাথে আমার জন্য কাজ করে:
LogFormat "%{REQUEST_SCHEME}x ..." my_log_format
%{varname}x
মোড_এসএসএল লোড হলে কেবল উপলভ্য থাকে, দেখুন: https://httpd.apache.org/docs/trunk/mod/mod_ssl.html#logformats
আপনার লগ আউটপুট সংজ্ঞায়িত করুন এবং এটিতে% H যুক্ত করুন। এটি আপাচি-র ক্ষেত্রে একই রকম।
সুতরাং, আপনি LogFormat
এটির মতো একটি নির্মাণ করেন এবং আফিক সেখানে ডিফল্ট অ্যাপাচি কনফিগারেশনে সংজ্ঞায়িত একটি দম্পতি রয়েছে।
LogFormat "%h %l %u %t \"%r\" %>s %b" common
এবং লগফর্ম্যাটটির নাম যুক্ত করুন (এই ক্ষেত্রে "সাধারণ") আপনার লগফিল কলটির শেষে
CustomLog logs/access_log common
শুধু এখানে বিষয়ে আরও তথ্য জন্য চেহারা লগ এবং এখানে আলাদা ফর্ম্যাট স্ট্রিং সম্পর্কে।
%H
বলেছি যে আমার যা প্রয়োজন তা করে না।
mod_env
কারণে আপনার প্রচেষ্টা ব্যর্থ হতে পারে । একটি সমান চিহ্ন ছাড়া তার পরিবর্তনশীল এবং মান লাগে: ।SetEnv
SetEnv URL_SCHEME http