এইচটিটিপিএসের জন্য ফরোয়ার্ড প্রক্সি হিসাবে এনগিনেক্স


23

আমি যখন এনজিএনক্সকে প্রক্সি এইচটিটিপি ট্র্যাফিকের ( এই নির্দেশিকাটি ব্যবহার করে ) সাফল্যের সাথে কনফিগার করতে সক্ষম হয়েছি তখন এইচটিটিপিএস অনুরোধের প্রক্সি করার সমস্ত প্রয়াসের ফলে কোড 400 হয়েছিল ( খারাপ অনুরোধ )।

Nginx ডিবাগ লগগুলি মোটেই সহায়ক ছিল না:

2013/06/05 14:38:33 [info] 74946#0: *589
    client sent invalid request while reading client request line, client: 127.0.0.1,
    server: google.com, request: "CONNECT google.com:443 HTTP/1.1"

এই CONNECTঅনুরোধগুলি কি? proxy_passএনজিএনএক্সে কি এইচটিটিপিএস অনুরোধ করা সম্ভব ?

হালনাগাদ

একটি প্রক্সি সার্ভারটি আমার ওয়েব বিকাশের ওয়ার্কফ্লো / সরঞ্জামকিটের অংশ বলে যুক্ত করা দরকার। উত্পাদন পরিবেশে ক্লায়েন্ট-সাইড জাভাস্ক্রিপ্ট পরীক্ষা / ডিবাগ করার একটি দুর্দান্ত উপায় (প্রক্সিটির আগে পুনর্লিখনগুলি ব্যবহার করে)।

এছাড়াও এনগিনেক্সের কনফিগারেশন ভাষাটি তত যুক্তিযুক্ত একটি প্রোগ্রামিং ভাষা নিজস্ব right এটিতে ভেরিয়েবল রয়েছে!

https  nginx  proxy 

উত্তর:


17

দেখে মনে হচ্ছে এনজিনেক্স এসএসএল সহ ফরোয়ার্ড প্রক্সি মোড সমর্থন করে না। পরিবর্তে আপনাকে স্কুইড জাতীয় কিছু ব্যবহার করতে হবে। এখানে এনগিনেক্সের লেখকের আরও ব্যাখ্যা সহ একটি লিঙ্ক রয়েছে: এইচটিটিপিএস এবং ফরোয়ার্ড প্রক্সি হিসাবে এনগিনেক্স।


1
ধন্যবাদ! আপনি যে থ্রেডটি সংযুক্ত করেছেন তা 4 বছরের পুরানো, তবে এটি এখনও আমার পক্ষে অসম্ভব বলে মনে হয়।

ডিবাগিংয়ের জন্য আপনার যদি প্রক্সি প্রয়োজন হয়, মিটমপ্রক্সি চেষ্টা করুন।
জোড়ায়ার

7

কেবল স্পষ্ট করে বলতে: যেমন আমি আমার ব্লগের মন্তব্য ফিডে লিখেছি, এনজিনেক্স সংযোগ পদ্ধতি কলগুলি হ্যান্ডেল করে না যা এইচটিটিপি প্রক্সির মাধ্যমে একটি রিমোট হোস্টের সাথে কাঁচা টিসিপি সংযোগ স্থাপনের জন্য ব্যবহৃত হয় - যা বিবেচ্য, বিবেচনা করে যে এনজিনেক্সের ধারণা করা হয় না একটি ফরোয়ার্ড প্রক্সি হিসাবে কাজ করুন, এটি নিয়মিত এইচটিটিপি নির্বিশেষে বেশ ভালভাবে কাজ করার জন্য ঘটে।

এনগিনেক্সের আক্ষরিক অর্থে এই পদ্ধতি কলগুলির সাথে কী করা যায় তার কোনও ধারণা নেই, এ কারণেই লগগুলিতে ত্রুটি বার্তাগুলি বরং অকেজো। আমি নিজেকে সর্বদা এইচটিটিপিএসের জন্য প্রাইভোক্সি ব্যবহার করে দেখেছি: http://www.privoxy.org/ - এটি সেট আপ করাও অত্যন্ত সহজ। তবে এইচটিটিপিএস রিলে সামগ্রীগুলি ফিল্টার করা বা ম্যাঙ্গেল করা এখনও অসম্ভব, কারণ এইচটিটিপিএস সংযোগগুলি সংযোগ পদ্ধতির মাধ্যমে কাঁচা সংযোগ দ্বারা পরিচালিত হয় এবং এটি কী রিলে করছে তা সার্ভারের কোনও ধারণা নেই।


2

যদি আপনি উত্স থেকে এনজিনেক্স সংকলন করতে আপত্তি না করেন তবে আপনি এনজিএক্স_এইচটিপি_প্রক্সি_কনেক্ট_মডিউল ইনস্টল করতে পারেন । নিম্নলিখিতটি আমার জন্য একটি রাস্পবেরি পাইয়ে ডেবিয়ান 9 "স্ট্রেচ" তে কাজ করেছে (আমি /etc/apt/source.list- এ ডেবি-সিআরএল ইউআরএল যুক্ত করার পরে এবং আপডেট আপডেট করেছি):

cd /tmp &&
apt-get source nginx &&
git clone https://github.com/chobits/ngx_http_proxy_connect_module &&
cd nginx-* &&
patch -p1 < ../ngx_http_proxy_connect_module/proxy_connect.patch &&
sudo apt-get install libpcre3-dev &&
./configure --add-module=/tmp/ngx_http_proxy_connect_module &&
make && sudo make install

তারপরে সম্পাদনা করুন /usr/local/nginx/conf/nginx.confএবং এটিকে দেখতে এমন করুন (আমি যে ডোমেনগুলিকে ব্লক করতে চাইছি তার একটি উদাহরণ আমি অন্তর্ভুক্ত করেছি, যা এসএসএল এবং নন-এসএসএল উভয়ই প্রক্সিংয়ের সাথে কাজ করে):

user www-data;
worker_processes auto;
events { }
http {
    server_names_hash_bucket_size 128;
    server {
        listen       8888;
        server_name  spam.example.com *.spam.example.com;
        server_name  spam2.example.com *.spam2.example.com;
        access_log off;
        return 404;
    }
    server {
        listen       8888;
        server_name ~.+;
        proxy_connect;
        proxy_max_temp_file_size 0;
        resolver 8.8.8.8;
        location / {
           proxy_pass http://$http_host;
           proxy_set_header Host $http_host;
        }
    }
}

তারপরে দৌড়াও /usr/local/nginx/sbin/nginx। এটি আপনি খুব সুন্দরভাবে দেবিয়ান স্টক nginxপ্যাকেজের সাথে সহাবস্থান করবেন যদি আপনি ৮০ বন্দরটিতে একটি প্রোডাকশন ওয়েবসভারও চালাচ্ছেন এবং এটির সাথে জগাখিচির ঝুঁকি নিতে না চান (তবে /usr/localবুটটিতে আলাদাভাবে সংস্করণ শুরু করার বিষয়টি নিশ্চিত করুন); বিকল্পভাবে, আরও কনফিগারেশনের সাহায্যে আপনি সংকলিত এনজিনেক্স থেকে উভয় পরিষেবা চালাতে পারেন। তবে আপনি যদি আপনার ফায়ারওয়াল ট্রাফিকের অনুমতি দেয় এমন কোনও পোর্টে আপনার সংকলিত এনজিনেক্স সেট করে থাকেন তবে সাবধান হন যে আপনাকে দেবী প্যাকেজ সিস্টেমটি আর আপনার জন্য এটি করবে না বলে এনজিনেক্স সুরক্ষা আপডেটের জন্য ম্যানুয়ালি পরীক্ষা করতে হবে।


আমাকে কয়েকটি কমান্ড টুইঙ্ক করতে হয়েছিল তবে সামগ্রিকভাবে আপনার উত্তর আমার পক্ষে কাজ করেছিল। অনেক ধন্যবাদ!
রবার্ট রেইজ

0

আমি সিলাস এস ব্রাউন এর নির্দেশাবলী অনুসরণ করেছি এবং আমি একটি এনগিনেক্স বাইনারি সংকলন করতে সক্ষম হয়েছি যা ফরওয়ার্ডিং এবং এসএসএল মোকাবেলা করতে পারে। আমি সমস্ত কিছু এক সাথে ডকার ইমেজে বান্ডিল করেছি। ডকফায়াইল এবং কনফিগারেশনটি এখানে গিটহাব: https://github.com/reiz/nginx_proxy এ রয়েছে

এই ডকার হাব সংগ্রহস্থলের Nginx ডকার চিত্রটি এসএসএল সংযোগ এবং ফরোয়ার্ডিং পরিচালনা করতে পারে: https://hub.docker.com/r/reiz/nginx_proxy/

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