وبسرور 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/*;
}
از شما میخواهیم فایل /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
نیازمندی دوم
میخواهیم از بین فایلهای قسمت قبل، فایلهای 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
را آپلود کنید.
ارسال پاسخ برای این سؤال