وبسرور
[Nginx](http://nginx.org/en/)
یکی از بهترین وبسرورهای متنباز با کارایی بالا و
امکانات زیاد است که اولین بار در سال ۲۰۰۴ منتشر شد.
این وبسرور به دلیل کارایی بالا، در بسیاری سایتهای پرترافیک
مانند 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/` |
برای انتقال از کد
[۳۰۲](https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/302)
یا
[۳۰۷](https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/307)
(انتقال موقت) استفاده کنید.
## نیازمندی چهارم
میخواهیم فایلهای پوشه static (که در نیازمندی اول serve شد) تا ۲۴ ساعت
در مرورگر cache شوند.
## نیازمندی پنجم
میخواهیم درخواستهایی که از طرف curl ارسال میشود با پاسخ ۴۰۳ مواجه شود.
# نکات
- توجه کنید که در این مسئله امکان تغییر فایل اصلی
تنظیمات (`nginx.conf`) وجود ندارد.
- یک فایل Zip شامل فایل `mysite.conf` را آپلود کنید.
ارسال پاسخ برای این سؤال
در حال حاضر شما دسترسی ندارید.