سرور ایران نسخه ۲.۱
(شنبه تا چهارشنبه ۹:۰۰ الی ۱۶:۰۰) ۶-۹۵۰۱۸۴۴۵-۰۳۱  
صفحه نخست     ناحیه کاربری     ثبت شکایات     وبلاگ
سرور ایران
  • دامنه
    • دامنه های ملی
    • دامنه های بین المللی
    • جستجو و ثبت دامنه
    • پنل مشتریان دامنه های ملی
    • پنل نمایندگان دامنه بین المللی
  • میزبانی وب
    • هاست لینوکس حرفه ای
    • هاست لینوکس اقتصادی
    • هاست لینوکس حرفه ای ایران
  • میزبانی فایل
    • هاست دانلود
  • نمایندگی هاست
    • نمایندگی هاست حجمی
    • نمایندگی هاست ایران
    • نمایندگی هاست نامحدود
    • نمایندگی مستر ریسلر نامحدود
  • گواهینامه SSL
  • قوانین و مقررات
  • درباره ما
  • ارتباط با ما
  • دامنه
    • دامنه های ملی
    • دامنه های بین المللی
    • جستجو و ثبت دامنه
    • پنل مشتریان دامنه های ملی
    • پنل نمایندگان دامنه بین المللی
  • میزبانی وب
    • هاست لینوکس حرفه ای
    • هاست لینوکس اقتصادی
    • هاست لینوکس حرفه ای ایران
  • میزبانی فایل
    • هاست دانلود
  • نمایندگی هاست
    • نمایندگی هاست حجمی
    • نمایندگی هاست ایران
    • نمایندگی هاست نامحدود
    • نمایندگی مستر ریسلر نامحدود
  • گواهینامه SSL
  • قوانین و مقررات
  • درباره ما
  • ارتباط با ما

کانفیگ وب سرور Nginx – بخش دوم

کانفیگ وب سرور Nginx – بخش دوم

بهینه سازی های فایل سیستم

در ادامه کانفیگ وب سرور Nginx – بخش دوم با بهینه سازی های فایل سیستم شروع میکنیم. این دستورات فایل سیستم، مدیریت حافظه سیستم را  بهبود می دهند و می توانید آنها را در فایل /etc/sysctl.conf  اضافه نمایید.

پورت های موقت

هنگامی که شما از وب سرور Nginx به عنوان یک پراکسی استفاده می کنید، هر اتصالی که به سرور ارسال می گردد از یک پورت بی دوام یا موقت استفاده می کند.

رنج پورت  IPورژن ۴ محلی،  محدوده رنج پورت را مشخص می کند. یک مثال از تنظیمات رایج پورت های موقت را در زیر می بینید:

1
net.ipv4.ip_local_port_range 1024 65000

 

وقفه پروتکل TCP FIN ، مقدار زمانی را که یک پورت باید قبل از اینکه بتواند برای اتصال دیگر دوباره مورد استفاده قرار بگیرد غیرفعال باشد را مشخص می کند. زمان پیشفرض برای این موضوع ۶۰ ثانیه است. اما معمولا برای امن تر بودن آن را به ۳۰ یا حتی ۱۵ ثانیه کاهش می دهند.

1
net.ipv4.tcp_fin_timeout 15

 

اندازه پنجره پروتکل کنترل انتقال یا TCP

گزینه اندازه پنجره TCP،  گزینه ای است که می تواند اندازه پنجره را نسبت به آنچه در پروتکل کنترل انتقال مجاز شمرده شده است افزایش دهد و آن را از مقدار پیشین آن که ۶۵۵۳۵ بایت است بالاتر ببرد. این امکان در TCP به همراه چند گزینه دیگر در  IETF RFCبا مقدار ۱۳۲۳  تعیین شده اند که برای کار در شبکه های بزرگ مناسب است. این گزینه می تواند در تگ   net.ipv4.tcp_window_scaling = ۱ مقدار دهی شود.

جمع کردن بسته ها قبل از رها کردن آنها

دستور net.ipv4.tcp_max_syn_backlog  تعداد بسته هایی را که باید قبل از اینکه هسته شروع به رها سازی آنها کند جمع آوری شود را مشخص می کند. یک مثال برای مقداردهی به  این متغیر چنین است:

1
net.ipv4.tcp_max_syn_backlog = 3240000

 

بستن اتصالات در پاسخ به کلاینت از دست رفته

دستور   reset_timedout_connection on; به سرور اجازه می دهد که بعد از اینکه پاسخگویی از سمت کلاینت متوقف شد اتصال را قطع کند.  این کار باعث می شود حافظه اختصاص داده شده به سوکت آزاد شود.

توصیف گر های فایل

شاید برای شما جالب باشد که بدانید توصیف گر فایل چیست و چه کاری انجام می دهد؟ توصیف گرهای فایل منابعی از سیستم عامل هستند که کارشان مدیریت کردن اموری مثل اتصالات و فایل های باز است.  وب سرور Nginx می تواند تا دو توصیف گر فایل را برای هر اتصال استفاده کند. به عنوان مثال، اگر از یک سرور به عنوان پراکسی استفاده می کنید، معمولا یک توصیف گر فایل برای اتصال کلاینت و دیگری برای اتصال به سرور پراکسی استفاده می گردد. هرچند اگر از Keep Alive استفاده کنید این مقدار بسیار پایین تر می آید. برای سیستمی که به تعداد بالایی از اتصالات پاسخگویی می کند این تنظیمات حتما باید انجام شود.

sys.fs.file_max  حد گستردگی سیستم را برای توصیف گر های فایل مشخص می کند. nofile  حد توصیف گر فایل کاربر را تعیین می کند، که در فایل /etc/security/limits.conf نوشته می شود.

1
2
soft nofile 4096
hard nofile 4096

 

لاگ گیری خطاها

در ادامه کانفیگ Nginx لاگ گیری و گزارش گیری خطاها را بررسی میکنیم. error_log logs/error.log warn; مکان و  سطوح متفاوت دقت نوشتن  در تنظیمات لاگ خطا ها را تعیین می کند. یک سطح لاگ گیری خاص، باعث می شود که تمام پیام های مربوط به آن سطح و بالاتر از آن لاگ شود. به عنوان مثال، اگر این مشخصه با مقدار پیش فرض در شود باعث می شود که پیام های error ، crit ، alert و emerg   لاگ شود.  اگر به این مشخصه پارامتر داده نشود، مقدار پیش فرض آن در نظر گرفته می شود.

emerg : موقعیت های اضطراری مثل مواقعی که سرور در حالت غیرقابل استفاده قرار گرفته است.

alert : موقعیت های سخت و شدید، مواقعی که باید کار بی درنگ انجام شود.

crit : مشکلات مهم که نیاز به آدرس دهی دارند.

error : خطایی اتفاق افتاده است و انجام کاری موفقیت آمیز نبوده است.
warn : رویدادی برخلاف روند مورد انتظار اتفاق افتاده است اما موجب نگرانی نیست.

notice :  رویدادی طبیعی اتفاق افتاده است که ارزش خاصی ندارد.

info : یک پیام اطلاعاتی که خوب است بدانیم.

debug : اطلاعات خطایابی که وقتی مشکلی روی سرور اتفاق می افتد به تشخیص و رفع آن کمک می کند.

log_format با access_log فرمت پیام های لاگ شده را تنظیم  می کنند.  و همچنین ممکن است access_log محل ذخیره لاگ ها و فرمت آنها را تواما مشخص کند.

1
2
3
4
5
6
7
http {
log_format compression '$remote_addr - $remote_user [$time_local] ' '"$request" $status $body_bytes_sent ' '"$http_referer" "$http_user_agent" "$gzip_ratio"';
server {
gzip on;
access_log /spool/logs/nginx-access.log compression;
}
}

 

لاگ گیری شرطی

اگر مدیر یک سرور بخواهد تنها از وقوع درخواست های خاصی لاگ گرفته شود  می تواند از لاگ گیری شرطی استفاده کند. دستوری که در زیر می بینید کدهای وضعیت HTTP ، ۲xx و ۳xx را لاگ نمی کند. و آنها را استثنا قرار می دهد.

1
2
3
4
map $status $loggable {
~^[23]  0;
default 1;
}

 

غیرفعال کردن کلی لاگ گیری

اگر شما به عنوان مدیر سرور از روش جایگزین دیگری برای لاگ گیری استفاده می کنید یا تمایل ندارید تک تک درخواست هایی که به سرور می رسد لاگ شود،  اینجاست که نیاز دارید کلا لاگ گیری را روی سرور غیرفعال کنید.  با دستورات زیر می توانید لاگ گیری سرور را غیر فعال نمایید:

1
2
3
4
5
6
server {
listen       80;
server_name  example.com;
access_log  off;
error_log off;
}

 

نظارت بر فعالیت های سرور

برخی مدیران سرور برای اینکه پاسخ هایJSON  را به صورت بلادرنگ مشاهده کنند نظارت بر فعالیت ها (Activity Monitoring) را روی سرور فعال می کنند. با انجام تنظیمات زیر صفحه ی status.html در /usr/share/nginx/html قرار می گیرد و توسط URLhttp://127.0.0.1/status.html فراخوانی می شود.

همچنین شما می توانید برای مشاهده این آمار سرور خود از Linode Longview استفاده کنید.  Long view یک مجموعه خدمات آماری و نموداری در سطح سیستم است که توسط عامل نرم افزاری متن باز Longview تولید شده است و روی هر سیستم لینوکسی قابل نصب است. عامل long view آمار سیستم را جمع آوری می کند و آنها را به Linode  ارسال می کند، در Linode این اطلاعات ذخیره می شود و سپس در قالب های زیبا و معنادار به نمایش گذاشته می شود.

نمونه فایل های تنظیمات افزایش کارایی سرور

هم اکنون ترفند های زیادی جهت افزایش کارایی سرور Nginx شما  در قالب سه فایل ایجاد شده است. جزئی از محتویات این سه فایل را می توانید در زیر مشاهده کنید:

فایل sysctl.conf

1
2
3
4
5
6
net.core.somaxconn = 65536
net.ipv4.tcp_max_tw_buckets = 1440000
net.ipv4.ip_local_port_range = 1024 65000
net.ipv4.tcp_fin_timeout = 15
net.ipv4.tcp_window_scaling = 1
net.ipv4.tcp_max_syn_backlog = 3240000
 

فایل limits.conf

1
2
soft nofile 4096
hard nofile 4096
 

فایل nginx.conf

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
pid /var/run/nginx.pid;
worker_processes  2;
events {
worker_connections   65536;
use epoll;
multi_accept on;
}
http {
keepalive_timeout 65;
keepalive_requests 100000;
sendfile         on;
tcp_nopush       on;
tcp_nodelay      on;
client_body_buffer_size    128k;
client_max_body_size       10m;
client_header_buffer_size    1k;
large_client_header_buffers  4 4k;
output_buffers   1 32k;
postpone_output  1460;
client_header_timeout  3m;
client_body_timeout    3m;
send_timeout           3m;
open_file_cache max=1000 inactive=20s;
open_file_cache_valid 30s;
open_file_cache_min_uses 5;
open_file_cache_errors off;
gzip on;
gzip_min_length  1000;
gzip_buffers     4 4k;
gzip_types       text/html application/x-javascript text/css application/javascript text/javascript text/plain text/xml application/json application/vnd.ms-fontobject application/x-font-opentype application/x-font-truetype application/x-font-ttf application/xml font/eot font/opentype font/otf image/svg+xml image/vnd.microsoft.icon;
gzip_disable "MSIE [1-6]\.";
# [ debug | info | notice | warn | error | crit | alert | emerg ]
error_log  /var/log/nginx.error_log  warn;
log_format main      '$remote_addr - $remote_user [$time_local]  '
'"$request" $status $bytes_sent '
'"$http_referer" "$http_user_agent" '
'"$gzip_ratio"';
log_format download  '$remote_addr - $remote_user [$time_local]  '
'"$request" $status $bytes_sent '
'"$http_referer" "$http_user_agent" '
'"$http_range" "$sent_http_content_range"';
map $status $loggable {
~^[23]  0;
default 1;
}
server {
listen        127.0.0.1;
server_name   127.0.0.1;
root         /var/www/html;
access_log   /var/log/nginx.access_log  main;
location / {
proxy_pass         http://127.0.0.1/;
proxy_redirect     off;
proxy_set_header   Host             $host;
proxy_set_header   X-Real-IP        $remote_addr;
proxy_set_header  X-Forwarded-For  $proxy_add_x_forwarded_for;
proxy_connect_timeout      90;
proxy_send_timeout         90;
proxy_read_timeout         90;
proxy_buffer_size          4k;
proxy_buffers              4 32k;
proxy_busy_buffers_size    64k;
proxy_temp_file_write_size 64k;
proxy_temp_path            /etc/nginx/proxy_temp;
}
location ~* .(woff|eot|ttf|svg|mp4|webm|jpg|jpeg|png|gif|ico|css|js)$ {
expires 365d;
}
}
}
 

 

 

مطالب مرتبط

ngnixکانفیگ وب سرور Nginx – بخش اول nginxبهینه سازی وب سرور nginx ngnixوب سرور Nginx چیست؟ ngnixجلوگیری از حملات bruteforce وردپرس در nginx
Tags: nginx
Related Posts
  • بهینه سازی وب سرور nginx

  • جلوگیری از حملات bruteforce وردپرس در nginx

  • کانفیگ وب سرور Nginx – بخش اول

  • وب سرور Nginx چیست؟

← کانفیگ وب سرور Nginx – بخش اول
جلوگیری از حملات bruteforce وردپرس در nginx →

دسته‌ها

  • آموزش cPanel
  • آموزش امنیت
  • آموزش دایرکت ادمین
  • آموزش سئو و بهینه سازی
  • آموزش کانفیگ سرور
  • آموزش میزبانی وب
  • آموزش های دامنه
  • آموزش های وب سایت
  • آموزش وردپرس

نوشته های اخیر

  • نحوه اضافه کردن دامنه جدید به هاست سی پنل
    نحوه اضافه کردن دامنه جدید به هاست سی پنل

    نحوه اضافه کردن دامنه به هاست سی پنل (cPanel) در این مقاله ر...

  • تحریم ها و سیاست‌های جدید محدودیت Resello
    تحریم ها و سیاست‌های جدید محدودیت Resello

    اخیرا ریسلو ( Resello ) –  یک مرکز ثبت دامنه یا Registrar –...

  • بهینه سازی وب سرور nginx
    بهینه سازی وب سرور nginx

    Nginx در قیاس با PHP و MySQL نیاز به بهینه سازی کمتری دارد و...

  • جلوگیری از حملات bruteforce وردپرس در nginx
    جلوگیری از حملات bruteforce وردپرس در nginx

    در این مقاله جلوگیری از حملات bruteforce وردپرس در nginx به...

  • کانفیگ وب سرور Nginx – بخش دوم
    کانفیگ وب سرور Nginx – بخش دوم

    بهینه سازی های فایل سیستم در ادامه کانفیگ وب سرور Nginx – بخ...

نوشته های تصادفی

  • نحوه ساخت شناسه در ایرنیک nic.ir جهت ثبت دامنه ملینحوه ساخت شناسه در ایرنیک nic.ir جهت ثبت دامنه ملی
  • Google Analytics چیست؟Google Analytics چیست؟
  • پایگاه داده MongoDB و ویژگی های آنپایگاه داده MongoDB و ویژگی های آن
  • سرویس ابری SaaS چیست؟سرویس ابری SaaS چیست؟
  • نحوه اتصال subdomain به هاست دیگرنحوه اتصال subdomain به هاست دیگر
  • مزایای استفاده از وردپرس در طراحی سایتمزایای استفاده از وردپرس در طراحی سایت
  • تغییر رمز ادمین دایرکت ادمین از طریق SSHتغییر رمز ادمین دایرکت ادمین از طریق SSH
  • رفع خطای Make fewer HTTP requests سایت Gtmetrix در وردپرسرفع خطای Make fewer HTTP requests سایت Gtmetrix در وردپرس
  • وردپرس چیست؟وردپرس چیست؟
  • تاثیر دامنه ir ملی در بهبود سئو و موتورهای جستجوتاثیر دامنه ir ملی در بهبود سئو و موتورهای جستجو

آخرین مطالب وبلاگ

  • نحوه اضافه کردن دامنه جدید به هاست سی پنل
    نحوه اضافه کردن دامنه جدید به هاست سی پنل

    نحوه اضافه کردن دامنه به هاست...

  • تحریم ها و سیاست‌های جدید محدودیت Resello
    تحریم ها و سیاست‌های جدید محدودیت Resello

    اخیرا ریسلو ( Resello ) –  یک...

  • بهینه سازی وب سرور nginx
    بهینه سازی وب سرور nginx

    Nginx در قیاس با PHP و MySQL ن...

مطالب تصادفی وبلاگ

  • نحوه ساخت شناسه در ایرنیک nic.ir جهت ثبت دامنه ملینحوه ساخت شناسه در ایرنیک nic.ir جهت ثبت دامنه ملی
  • فیشینگ چیست و راه های مقابله با آنفیشینگ چیست و راه های مقابله با آن
  • نحوه آپدیت دایرکت ادمین به آخرین نسخهنحوه آپدیت دایرکت ادمین به آخرین نسخه
Copyright © 2011-2025 ServerIran - All Rights Reserved