وب‌سرور Nginx یکی از بهترین وب‌سرورهای متن‌باز با کارایی بالا و امکانات زیاد است که اولین بار در سال ۲۰۰۴ منتشر شد. این وب‌سرور به دلیل کارایی بالا، در بسیاری سایت‌های پرترافیک مانند Dropbox و Netflix استفاده شده است. بله! وب‌سرور مورد استفاده Quera نیز Nginx است.

در این سؤال می‌خواهیم تنظیماتی در این وب‌سرور (در لینوکس) انجام دهیم.

جزئیات

در سرور موردنظر فایل nginx.conf به صورت زیر تنظیم شده است:

worker_processes 1;

events {
    worker_connections 200;
}

http {
    # Basic Settings
    sendfile on;
    tcp_nopush on;
    tcp_nodelay on;
    keepalive_timeout 65;
    types_hash_max_size 2048;
    include /etc/nginx/mime.types;
    default_type application/octet-stream;

    # Logging Settings
    access_log /var/log/nginx/access.log;
    error_log /var/log/nginx/error.log;

    # Include Other Configs
    include /etc/nginx/conf.d/*.conf;
    include /etc/nginx/sites-enabled/*;
}
Plain text

از شما می‌خواهیم فایل /etc/nginx/conf.d/mysite.conf را ایجاد کنید و طبق نیازمندی‌های زیر تنظیمات مورد نیاز را در آن انجام دهید.

نیازمندی اول

می‌خواهیم با رسیدن درخواست به http://localhost/static/، فایل‌های پوشه /usr/share/nginx/static سرو (serve) شود. مثلاً در صورتی که محتوای این پوشه به شکل زیر باشد، با مراجعه به آدرس http://localhost/static/style/style.css باید فایل style.css ارسال شود.

/usr/share/nginx/static
├── image.jpg
├── style
│   ├── style.css
│   └── bootstrap.min.css
└── js
    ├── utils.js
    └── bootstrap.min.js
Plain text

نیازمندی دوم

می‌خواهیم از بین فایل‌های قسمت قبل، فایل‌های CSS و JS با gzip فشرده شوند. توجه کنید که سایر فایل‌ها نباید فشرده شوند.

نیازمندی سوم

می‌خواهیم هر درخواستی که به http://localhost/blog رسید به https://blog.quera.ir منتقل (redirect) شود.

چند مثال:

آدرس درخواست انتقال به
http://localhost/blog https://blog.quera.ir
http://localhost/blog/ https://blog.quera.ir/
http://localhost/blog/category/feature/ https://blog.quera.ir/category/feature/

برای انتقال از کد ۳۰۲ یا ۳۰۷ (انتقال موقت) استفاده کنید.

نیازمندی چهارم

می‌خواهیم فایل‌های پوشه static (که در نیازمندی اول serve شد) تا ۲۴ ساعت در مرورگر cache شوند.

نیازمندی پنجم

می‌خواهیم درخواست‌هایی که از طرف curl ارسال می‌شود با پاسخ ۴۰۳ مواجه شود.

نکات

  • توجه کنید که در این مسئله امکان تغییر فایل اصلی تنظیمات (nginx.conf) وجود ندارد.
  • یک فایل Zip شامل فایل mysite.conf را آپلود کنید.

ارسال پاسخ برای این سؤال
فایلی انتخاب نشده است.