وبسرور
[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` را آپلود کنید.