ড্রুপাল 7 সাইটগুলির জন্য কি কোনও সাধারণ এনগিনেক্স কনফারেন্স রয়েছে?


15

আমি কটাক্ষপাত গ্রহণ করেছি Perusio এর Drupal-সঙ্গে-nginx সংগ্রহস্থলের এবং যখন আমার মনে হয় এটা চিত্তাকর্ষক কিভাবে এটি ব্যাপক, এটি বড্ড আমার জন্য মুহূর্তে উন্নত হতে পারে, প্লাস আমি বিভিন্ন Symfony2 ভিত্তিক সাইট সার্ভারে বাস আছে এবং কনফিগারেশনগুলি পুরোপুরি না বুঝা পর্যন্ত আমি উল্লেখযোগ্য পরিবর্তন করা শুরু করব না।

সুতরাং আমি এটি একটি ব্লগে পেয়েছি এবং অনুভব করেছি যে এটি কাজটি করতে পারে। এনজিএনএক্স-এর উপর 7 টি ড্রুপাল পরিবেশন করার সাথে কি কোনও সাধারণ সমস্যা রয়েছে? এছাড়াও, যদি একই দ্রুপাল ইনস্টলেশনটি একাধিক সাইটকে পাওয়ার করে, তবে কনফিগারেশনটি কি অন্যরকম হবে?

server {
    server_name example.org;
    root /home/me/sites/example.org;

    index index.html index.htm index.php;

    access_log /var/log/nginx/example.org.access.log;
    error_log /var/log/nginx/example.org.error.log;

    location = /favicon.ico {
            log_not_found off;
            access_log off;
    }

    location = /robots.txt {
            allow all;
            log_not_found off;
            access_log off;
    }

    # For drush
    location = /backup {
            deny all;
    }

    # Prevent user from accessing settings.php directly
    location ~ ^/sites/[^/]+/settings.php$ {
            deny all;
    }

    ## Replicate the Apache <FilesMatch> directive of Drupal standard
    ## .htaccess. Disable access to any code files. Return a 404 to curtail
    ## information disclosure. Hide also the text files.
    location ~* ^(?:.+\.(?:htaccess|make|txt|log|engine|inc|info|install|module|profile|po|sh|.*sql|theme|tpl(?:\.php)?|xtmpl)|code-style\.pl|/Entries.*|/Repository|/Root|/Tag|/Template)$ {
            return 404;
    }

    location ~ \..*/.*\.php$ {
            return 403;
    }

    location / {
            # This is cool because no php is touched for static content
            try_files $uri @rewrite;
    }

    location @rewrite {
            # Some modules enforce no slash (/) at the end of the URL
            # Else this rewrite block wouldn't be needed (GlobalRedirect)
            #rewrite ^/(.*)$ /index.php?q=$1&$args;
            rewrite ^ /index.php last;
    }

    # Use an SSH tunnel to access those pages. They shouldn't be visible to
    # external peeping eyes.
    location = /install.php {
            allow 127.0.0.1;
            deny all;
    }

    location = /update.php {
            allow 127.0.0.1;
            deny all;
    }

    location ~ \.php$ {
            fastcgi_split_path_info ^(.+\.php)(/.+)$;
            #NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini
            include fastcgi_params;
            fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
            fastcgi_intercept_errors on;
            fastcgi_pass unix:/var/run/php5-cgi/php5.sock;
    }

    ## Drupal 7 generated image handling, i.e., imagecache in core. See:
    ## https://drupal.org/node/371374
    location ~* /sites/.*/files/styles/ {
            access_log off;
            expires 30d;
            try_files $uri @rewrite;
    }

    # Fighting with ImageCache? This little gem is amazing.
    location ~ ^/sites/.*/files/imagecache/ {
            try_files $uri @rewrite;
    }

    location ~* \.(js|css|png|jpg|jpeg|gif|ico)$ {
            expires max;
            log_not_found off;
    }
}

1
এমন কোনও সমস্যা নেই যা সম্পর্কে আমি অবহিত। এই এনজিএনএক্স কনফিগারেশনটি ইতিমধ্যে প্রতিটি / সাইট / * / মাল্টিসাইট ডিরেক্টরিটি বিচ্ছিন্নভাবে চিকিত্সা করছে ...
টেনেন

@ টেনেন সুন্দর আমি অবশ্যই এটি চেষ্টা করব। নেট থেকে পাওয়া বেশিরভাগ কনফিগারেশন ধরে নিয়েছিল যে এনগিনেক্স ইনস্টল করা হয়নি বা কোনও সাইট ইতিমধ্যে কনফিগার করা হয়নি, এজন্য আমি একটু সতর্ক রয়েছি। ধন্যবাদ
আদম-ই

উত্তর:


7

দ্রুপাল n এর এনজিনেক্সের সাথে মূল সমস্যাটি হ'ল দ্রুপাল আপাচের জন্য ডিজাইন করা হয়েছে, এবং অনেকগুলি মডিউল ধরে নেয় যে অ্যাপাচি ইনস্টলড আছে (এবং আপনার "স্ট্যাটাস রিপোর্ট" এ আপনার সবসময় কিছুটা নীল প্রবেশ থাকবে যা আপনাকে জানায় যে আপনি পারবেন না আপলোড অগ্রগতি ব্যবহার করুন কারণ মোড_এফপি ইনস্টল করা হয়নি - বিরক্তিকর)।

বলা হচ্ছে, পেরাসিও এবং অন্যান্যদের জন্য ধন্যবাদ, অনেকগুলি মডিউল তৈরি করা হয়েছে যা এনজিনেক্সের সাথে আরও বেশি ডিল করে এবং এর কার্যকারিতা ভালভাবে ট্যাপ করে। এখনও অবধি, আমি এনগিনেক্সের সাথে কোনও সমস্যা করতে পারি নি যা অ্যাপাচি দ্বারা স্থির করা হয়েছে, এবং এনজিনেক্স আরও দ্রুত এবং এতে অনেক হালকা পায়ের ছাপ রয়েছে। এটি অনেক মানদণ্ড দ্বারা দেখানো হয়েছে, তবে এটি আমার অভিজ্ঞতাও। এটি পিএইচপি 5-এফপিএম-এর সাথে আরও ভাল সংহতকরণ করেছে যা মোড_এফপিকেও ছাড়িয়ে যায়।

ড্রুপাল বিকাশ করার সাথে সাথে এটি আরও ব্যাকএন্ড অজ্ঞেয় হয়ে উঠছে। আপনি এটি 7 এর ডাটাবেস বিমূর্ত স্তর সহ দেখতে পাচ্ছেন যা আরও বেশি ডাটাবেস ব্যাকএন্ডের জন্য মঞ্জুরি দেয় এবং তাই আমি ধরে নিয়েছি যে ভবিষ্যতের প্রকাশগুলি অন্যান্য ওয়েব সার্ভারগুলি বিবেচনায় রেখে ডিজাইন করা হবে।

সুতরাং, এমন কোনও অসুবিধা নেই যা আমি দেখেছি। কিছু মডিউল কী করে বা কমপক্ষে তারা যা বলে তারা যা করে তাতে আপনাকে কেবল একটু বেশি মনোযোগ দিতে হবে। যদি তারা .htaccess ফাইলগুলি উল্লেখ করে থাকে তবে নিশ্চিত হয়ে নিন যে আপনার এনজিনেক্স ফাইলগুলিতে একই কাজ করে correspond আমি আসলে এমন কোনও মামলা দেখিনি যেখানে এনগিনেক্স সঠিক কনফিগারেশনে ব্যর্থ হয় ails

পেরুসিয়োর এনগিনেক্স কনফিগারেশনটি একেবারে আশ্চর্যজনক, তবে এটির সমস্ত কিছু বুঝতে এবং এটি বুঝতে এটি বেশ সময় নেয়। আপনার নিজের জন্য এটি নিজেরাই অনুকূলিতকরণ করতে হবে এবং আপনি কিছু সমস্যা সমাধান করতে পারেন যা আপনি ইমেজক্যাচিং বা অ্যাডগ্যাগ বা অন্য কোনও জিনিসের জন্য অ-স্ট্যান্ডার্ড সেটআপ ব্যবহার করেন তবে আপনাকে ঠিক করতে হবে। এটি ধরেও নিয়েছে যে আপনি একাধিক পিএইচপি-এফপিএম পুল ব্যবহার করছেন। সুতরাং আপনাকে যেতে হবে এবং যা প্রয়োজন নেই তা টানতে হবে। তবে এগুলি সব সময় কাটাতে সময় নেওয়া উপযুক্ত কারণ আপনি এনজিএনেক্স কীভাবে কাজ করে সে সম্পর্কে আপনি অনেক কিছু শিখবেন।

আমি আমার এনজিএনএক্স / ড্রুপাল সাইটগুলির সাথে বেশ কয়েকটি ত্রুটিও ছড়িয়েছি কারণ আমার পিএইচপি-এফপিএম 5.4 বা 5.5 ব্যবহার করার প্রবণতা রয়েছে। ত্রুটিগুলি এনজিনেক্সের সাথে কিন্তু ড্রুপাল ফাংশনগুলির সাথে তাদের কোনও সম্পর্ক নেই কারণ দ্রুপাল সত্যই পিএইচপি 5.3 প্রয়োজনে একটি রূপান্তর শেষ করছে। আপনি যদি ইস্যু সারিগুলির চারপাশে ঘুরে দেখেন তবে পিএইচপি-র নতুন সংস্করণগুলির সাথে কাজ করার জন্য মডিউলগুলি ঠিক করার জন্য আপনি বেশ কয়েকটি প্যাচ এবং অন্যান্য সমাধান খুঁজে পাবেন।

দিনের শেষে, আমি সুপারিশ করব যে যে কেউ একটি নতুন সার্ভার দিয়ে শুরু করছেন তিনি অ্যাপাচের পরিবর্তে এনজিনেক্স ব্যবহার করুন। এটা আরও ভাল।


4

আমি পড়েছি যে এনগিনেক্স সব কিছু করতে পারে না, এটি আপাচের সাথে তুলনা করে সীমাবদ্ধ। "অ্যাপাচি প্রতিটি কাজের জন্য একটি মডিউল আছে"। আমার সংক্ষিপ্ত অভিজ্ঞতায় আমি কয়েক মাস ধরে ড্রপালের সাথে এনগিনেক্স ব্যবহার করছি এবং সবকিছু ঠিকঠাক কাজ করে। আপনি যদি দ্রুপাল এবং এনগিনেক্সের জন্য একটি মাল্টিসাইট ইনস্টল ব্যবহার করছেন তবে আপনি একই সার্ভার কনফিগারেশনে একাধিক সার্ভারের নাম সেট করতে পারবেন তবে প্রতিটি সাইটের জন্য আপনার আলাদা লগ থাকতে সক্ষম হবেন না। আমি কোনও সমস্যা ছাড়াই (প্রায়) এই কনফিগারেশনটি ব্যবহার করি: https://www.nginx.com/resources/wiki/start/topics/recines/drupal/


4
অ্যাপাচি মাইক্রোসফ্ট ওয়ার্ডের মতো, এটিতে মিলিয়ন বিকল্প রয়েছে তবে আপনার কেবল ছয়টি দরকার। এনগিনেক্স এই ছয়টি জিনিস করে এবং এটি আপাচের চেয়ে ৫০ গুণ বেশি দ্রুতগতির মধ্যে পাঁচটি করে। - ক্রিস লে
এনজিঙ্কস

2

আমি আপনার সাথে সম্পূর্ণরূপে একমত যে দ্রুপালের জন্য পেরুসিয়োর এনগিনেক্স কনফিগারেশন চিত্তাকর্ষক, তবে স্থানীয়ভাবে এনজিনেক্সের জন্য অতিমাত্রায় k আমি গিটহাবের উপর মুলকভের এনগিনেক্স কনফিগারেশন ফাইলটি খুঁজে পেয়েছি এনজিএনএক্সে ড্রুপাল 7 চালানোর জন্য সবচেয়ে ব্যবহারিক, লাইটওয়েট কনফিগারেশন।


0
server {

    listen *:80;

    access_log /var/log/nginx/test.access.log;
    error_log /var/log/nginx/test.error.log;

    root /srv/test;
    index index.html index.htm index.php;

    # Enable compression, this will help if you have for instance advagg‎ module
    # by serving Gzip versions of the files.
    gzip_static on;

    location = /favicon.ico {
        log_not_found off;
        access_log off;
    }

    location = /robots.txt {
        allow all;
        log_not_found off;
        access_log off;
    }

    # This matters if you use drush prior to 5.x
    # After 5.x backups are stored outside the Drupal install.
    #location = /backup {
    #        deny all;
    #}

    # Very rarely should these ever be accessed outside of your lan
    location ~* \.(txt|log)$ {
        allow 192.168.0.0/16;
        deny all;
    }

    location ~ \..*/.*\.php$ {
        return 403;
    }

    # No no for private
    location ~ ^/sites/.*/private/ {
        return 403;
    }

    # Block access to "hidden" files and directories whose names begin with a
    # period. This includes directories used by version control systems such
    # as Subversion or Git to store control files.
    location ~ (^|/)\. {
        return 403;
    }

    location / {
        # This is cool because no php is touched for static content
        try_files $uri @rewrite;
    }

    location @rewrite {
        # You have 2 options here
        # For D7 and above:
        # Clean URLs are handled in drupal_environment_initialize().
        rewrite ^ /index.php last;
        # For Drupal 6 and bwlow:
        # Some modules enforce no slash (/) at the end of the URL
        # Else this rewrite block wouldn't be needed (GlobalRedirect)
        #rewrite ^/(.*)$ /index.php?q=$1;
    }

    # Fighting with Styles? This little gem is amazing.
    # This is for D6
    #location ~ ^/sites/.*/files/imagecache/ {
    # This is for D7 and D8
    location ~* files/styles {
        access_log off;
        expires 30d;
        try_files $uri @rewrite;
    }

    location ~* \.(js|css|png|jpg|jpeg|gif|ico)$ {
        expires max;
        log_not_found off;
    }

    location ~ [^/]\.php(/|$) {
        fastcgi_index index.php;
        include fcgi.conf;
        fastcgi_pass unix:/var/run/ajenti-v-php-fcgi-test-php-fcgi-0.sock;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    }
}
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.