{"id":285731,"date":"2017-04-29T23:25:36","date_gmt":"2017-04-29T19:25:36","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=285731"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=285731","title":{"rendered":"MeteorJS, Nginx, mongodb, iptables\u2026 \u043f\u0440\u043e\u0434\u0430\u043a\u0448\u0435\u043d"},"content":{"rendered":"<p>\u0417\u0434\u0440\u0430\u0432\u0441\u0442\u0432\u0443\u0439\u0442\u0435, \u043c\u0435\u043d\u044f \u0437\u043e\u0432\u0443\u0442 <a href=\"http:\/\/zelenin1.moikrug.ru\/\">\u0410\u043b\u0435\u043a\u0441\u0430\u043d\u0434\u0440 \u0417\u0435\u043b\u0435\u043d\u0438\u043d<\/a>, \u0438 \u044f <del>\u0432\u0435\u0431-\u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a<\/del> \u0441\u0438\u0441\u0430\u0434\u043c\u0438\u043d.<\/p>\n<p>  <\/p>\n<p>\u041a \u0441\u043e\u0436\u0430\u043b\u0435\u043d\u0438\u044e, \u0432\u0441\u044f \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u043e \u043f\u043e\u043b\u043d\u043e\u0446\u0435\u043d\u043d\u043e\u0439 \u0440\u0430\u0437\u0432\u0451\u0442\u043a\u0438 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u043d\u0430 MeteorJS \u0434\u043e\u0432\u043e\u043b\u044c\u043d\u043e \u0440\u0430\u0437\u0440\u043e\u0437\u043d\u0435\u043d\u043d\u0430, \u0438 \u043f\u0440\u0438\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u0432 \u0440\u0443\u0447\u043d\u0443\u044e \u0440\u0435\u0448\u0430\u0442\u044c \u043c\u0438\u043b\u043b\u0438\u043e\u043d \u0437\u0430\u0434\u0430\u0447. \u0412 \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u044f \u0445\u043e\u0447\u0443 \u0440\u0430\u0437\u043e\u0431\u0440\u0430\u0442\u044c \u0441\u0430\u043c\u0443\u044e \u0431\u0430\u0437\u043e\u0432\u0443\u044e (\u043d\u043e \u0443\u0436\u0435 \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u0443\u044e \u0434\u043b\u044f \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0439 \u0440\u0430\u0431\u043e\u0442\u044b \u0432 \u043f\u0440\u043e\u0434\u0430\u043a\u0448\u0435\u043d\u0435) \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0443 \u0441\u0435\u0440\u0432\u0435\u0440\u0430 \u0438 \u043f\u043e\u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u043f\u0440\u043e\u0446\u0435\u0441\u0441 \u0440\u0443\u0447\u043d\u043e\u0433\u043e \u0434\u0435\u043f\u043b\u043e\u044f.<\/p>\n<p>  <\/p>\n<p>\u0420\u0430\u0437\u0432\u043e\u0440\u0430\u0447\u0438\u0432\u0430\u0442\u044c \u0431\u0443\u0434\u0435\u043c \u043d\u0430 Ubuntu 16, \u043d\u043e, \u0432 \u0446\u0435\u043b\u043e\u043c, \u0441\u0445\u0435\u043c\u0430 \u043d\u0430 99% \u0441\u043e\u0432\u043f\u0430\u0434\u0430\u0435\u0442 \u0438 \u0434\u043b\u044f Debian 8.<\/p>\n<p><a name=\"habracut\"><\/a>  <\/p>\n<p><em>\u041d\u0430 \u0441\u0430\u043c\u043e\u043c \u0434\u0435\u043b\u0435 \u044f \u0431\u043b\u0438\u0437\u043a\u043e \u043d\u0435 \u0441\u0438\u0441\u0430\u0434\u043c\u0438\u043d, \u0442\u0430\u043a \u0447\u0442\u043e \u0431\u0443\u0434\u0443 \u043e\u0447\u0435\u043d\u044c \u0440\u0430\u0434 \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u043d\u044b\u043c \u043f\u0440\u0430\u0432\u043a\u0430\u043c, \u043d\u043e \u0432 \u0446\u0435\u043b\u043e\u043c \u0441\u0445\u0435\u043c\u0430 \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0440\u0430\u0431\u043e\u0447\u0430\u044f.<\/em><\/p>\n<p>  <\/p>\n<p>\u0412 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0444\u0430\u0439\u043b\u043e\u0432\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u043f\u0440\u0438 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0435 \u0432\u044b\u0431\u0438\u0440\u0430\u0435\u043c XFS \u2014 \u043c\u043e\u043d\u0433\u0430 \u0441 \u043d\u0435\u0439 \u0445\u043e\u0440\u043e\u0448\u043e \u0434\u0440\u0443\u0436\u0438\u0442.<\/p>\n<p>  <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u0413\u043e\u0442\u043e\u0432\u0438\u043c SSH<\/b><\/p>\n<div class=\"spoiler_text\">\n<p>\u0415\u0441\u043b\u0438 \u0434\u043e\u0441\u0442\u0443\u043f \u0443 \u043d\u0430\u0441 \u0440\u0443\u0442\u043e\u0432\u044b\u0439, \u0442\u043e \u043f\u0435\u0440\u0432\u043e\u0435 \u0447\u0442\u043e \u043d\u0430\u0434\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u2014 \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f.<\/p>\n<p>  <\/p>\n<pre><code class=\"bash\">adduser zav # \u0418\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0439\u0442\u0435 \u0441\u0432\u043e\u0439 %username% \u0432\u043c\u0435\u0441\u0442\u043e zav apt-get install sudo  usermod -aG sudo zav # \u0414\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u043d\u0430\u0448\u0435\u0433\u043e \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f \u0432 \u0433\u0440\u0443\u043f\u043f\u0443 sudo,                       # \u0447\u0442\u043e \u0431\u044b \u0438\u043c\u0435\u0442\u044c \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0434\u0430\u043b\u0435\u0435 \u0432\u0441\u0451 \u0434\u0435\u043b\u0430\u0442\u044c \u0438\u0437-\u043f\u043e\u0434 \u043d\u0435\u0433\u043e vi \/etc\/ssh\/sshd_config # \u0415\u0441\u043b\u0438 \u0432\u044b \u0441\u043e\u0432\u0441\u0435\u043c \u043d\u0435 \u043c\u043e\u0436\u0435\u0442\u0435 \u0432 vi \u2014 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0439\u0442\u0435 \u0442\u0443\u0442 nano \u0432\u043c\u0435\u0441\u0442\u043e vi.                          # \u0415\u0441\u043b\u0438 \u043e\u043d \u043d\u0435 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d \u2014 apt-get install nano<\/code><\/pre>\n<p>  <\/p>\n<p>\u041d\u0430\u043c \u043d\u0430\u0434\u043e \u0438\u0437\u043c\u0435\u043d\u0438\u0442\u044c \u043f\u043e\u0440\u0442 \u043d\u0430 \u0441\u043b\u0443\u0447\u0430\u0439\u043d\u044b\u0439, \u043f\u043e \u0432\u0430\u0448\u0435\u043c\u0443 \u0432\u044b\u0431\u043e\u0440\u0443 \u2014 \u044d\u0442\u043e \u0441\u0440\u0430\u0437\u0443 \u0437\u0430\u0449\u0438\u0442\u0438\u0442 \u043e\u0442 \u0447\u0430\u0441\u0442\u0438 \u0430\u0442\u0430\u043a \u043d\u0430 ssh \u0441\u0435\u0440\u0432\u0435\u0440\u0430.<\/p>\n<p>  <\/p>\n<pre><code>Port 355 # \u041e\u0431\u044b\u0447\u043d\u043e \u0438\u0437\u043d\u0430\u0447\u0430\u043b\u044c\u043d\u043e \u0441\u0442\u043e\u0438\u0442 Port 22 PermitRootLogin no # \u0417\u0430\u043f\u0440\u0435\u0449\u0430\u0435\u043c \u0432\u0445\u043e\u0434 \u043f\u043e\u0434 \u0440\u0443\u0442\u043e\u043c<\/code><\/pre>\n<p>  <\/p>\n<p>\u041f\u0435\u0440\u0435\u0437\u0430\u0433\u0440\u0443\u0436\u0430\u0435\u043c SSH<\/p>\n<p>  <\/p>\n<pre><code class=\"bash\">\/etc\/init.d\/ssh restart<\/code><\/pre>\n<p>  <\/p>\n<p>\u0422\u0435\u043f\u0435\u0440\u044c \u043f\u0435\u0440\u0435\u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0430\u0435\u043c\u0441\u044f \u043f\u043e SSH \u043d\u0430 \u043d\u043e\u0432\u044b\u0439 \u043f\u043e\u0440\u0442 (355) \u043d\u0430 \u043d\u043e\u0432\u043e\u0433\u043e, \u0441\u0432\u0435\u0436\u0435\u0441\u043e\u0437\u0434\u0430\u043d\u043d\u043e\u0433\u043e \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f.<\/p>\n<\/div>\n<\/div>\n<p>  <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u041f\u043e\u0434\u0433\u043e\u0442\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u043c \u0432\u0442\u043e\u0440\u043e\u0439 \u0434\u0438\u0441\u043a \u0438 tmpfs (\u0447\u0442\u043e \u0431\u044b \u0440\u0430\u0437\u043c\u0435\u0441\u0442\u0438\u0442\u044c \u043c\u043e\u043d\u0433\u0443 \u0432 \u043f\u0430\u043c\u044f\u0442\u0438)<\/b><\/p>\n<div class=\"spoiler_text\">\n<p>\u042f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e 2 \u0440\u0430\u0437\u0434\u0435\u043b\u044c\u043d\u044b\u0445 \u0444\u0438\u0437\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u0434\u0438\u0441\u043a\u0430 \u0447\u0442\u043e \u0431\u044b \u043c\u0438\u043d\u0438\u043c\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0448\u0430\u043d\u0441 \u043e\u0442\u043a\u0430\u0437\u0430.<br \/>  \u0412\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u0440\u0430\u0437\u043c\u0435\u0449\u0430\u0442\u044c \u0432\u0441\u0451 \u043d\u0430 1 \u043d\u0430 \u0441\u0432\u043e\u0439 \u0441\u0442\u0440\u0430\u0445 \u0438 \u0440\u0438\u0441\u043a, \u0441\u0445\u0435\u043c\u0430 \u043e\u0442 \u044d\u0442\u043e\u0433\u043e \u043d\u0435 \u0438\u0437\u043c\u0435\u043d\u0438\u0442\u0441\u044f.<br \/>  \u0412 \u044d\u0442\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u043c\u043e\u0436\u0435\u0442\u0435 \u0442\u043e\u0447\u043d\u043e \u0442\u0430\u043a \u0436\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043f\u0430\u043f\u043a\u0443 \/secondary, \u043d\u043e \u043d\u0435 \u043c\u043e\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0432 \u043d\u0435\u0451 \u0434\u0438\u0441\u043a.<\/p>\n<p>  <\/p>\n<pre><code class=\"bash\">sudo cfdisk \/dev\/sdb # \u0438\u043c\u044f \u0432\u0442\u043e\u0440\u043e\u0433\u043e \u0434\u0438\u0441\u043a\u0430 (sdb) \u043c\u043e\u0436\u0435\u0442 \u043e\u0442\u043b\u0438\u0447\u0430\u0442\u044c\u0441\u044f.                      # \u0412\u044b\u0431\u0438\u0440\u0430\u0435\u043c \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u043d\u043e\u0432\u044b\u0439, 100% \u043c\u0435\u0441\u0442\u0430, \u0437\u0430\u043f\u0438\u0441\u044c sudo mkfs.xfs \/dev\/sdb1 # \u0441\u043e\u0437\u0434\u0430\u0435\u043c \u0424\u0421 \u043d\u0430 \u0432\u0442\u043e\u0440\u043e\u043c \u0434\u0438\u0441\u043a\u0435 sudo mkdir \/secondary sudo vi \/etc\/fstab # \u0434\u0435\u043b\u0430\u0435\u043c \u0430\u0432\u0442\u043e-\u043c\u043e\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u043f\u0440\u0438 \u0437\u0430\u043f\u0443\u0441\u043a\u0435 \u0441\u0438\u0441\u0442\u0435\u043c\u044b<\/code><\/pre>\n<p>  <\/p>\n<p>\u0414\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u0432 \u043a\u043e\u043d\u0435\u0446 (\u0435\u0441\u043b\u0438 \u0432\u0442\u043e\u0440\u043e\u0433\u043e \u0434\u0438\u0441\u043a\u0430 \u043d\u0435\u0442 \u2014 \u043f\u0435\u0440\u0432\u0443\u044e \u0441\u0442\u0440\u043e\u043a\u0443 \u043e\u043f\u0443\u0441\u043a\u0430\u0435\u043c)<br \/>  tmpfs \u2014 \u0444\u0430\u0439\u043b\u043e\u0432\u0430\u044f \u0441\u0438\u0441\u0442\u0435\u043c\u0430 \u0431\u0443\u0434\u0435\u0442 \u0440\u0430\u0441\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0430 \u0432 \u043e\u043f\u0435\u0440\u0430\u0442\u0438\u0432\u043d\u043e\u0439 \u043f\u0430\u043c\u044f\u0442\u0438. \u0422.\u0435. \u0437\u0430\u043f\u0438\u0441\u044c \u0432 \u0440\u0430\u0437\u0434\u0435\u043b \/data\/inmemory \u0431\u0443\u0434\u0435\u0442 \u0434\u0435\u043b\u0430\u0442\u044c \u0437\u0430\u043f\u0438\u0441\u044c \u0432 \u043e\u043f\u0435\u0440\u0430\u0442\u0438\u0432\u043d\u0443\u044e \u043f\u0430\u043c\u044f\u0442\u044c, \u0430 \u043d\u0435 \u043d\u0430 \u0434\u0438\u0441\u043a. \u041d\u0430\u0434\u043e \u043f\u043e\u043d\u0438\u043c\u0430\u0442\u044c \u0447\u0442\u043e \u043f\u0440\u0438 \u043f\u0435\u0440\u0435\u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0435 \u043e\u043d\u043e \u043e\u0447\u0438\u0449\u0430\u0435\u0442\u0441\u044f. size \u0437\u0430\u0434\u0430\u0435\u0442 \u0440\u0430\u0437\u043c\u0435\u0440 \u0434\u0430\u043d\u043d\u043e\u0439 \u043e\u0431\u043b\u0430\u0441\u0442\u0438. \u0412\u0430\u0448\u0430 \u0437\u0430\u0434\u0430\u0447\u0430 \u0447\u0442\u043e \u0431\u044b \u0435\u0451 \u0445\u0432\u0430\u0442\u0438\u043b\u043e \u043d\u0430 \u0440\u0430\u0437\u043c\u0435\u0449\u0435\u043d\u0438\u0435 \u043c\u043e\u043d\u0433\u0438 \u0441\u043e \u0432\u0441\u0435\u043c\u0438 \u0438\u043d\u0434\u0435\u043a\u0441\u0430\u043c\u0438. \u0412 \u043c\u043e\u0451\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u043e\u043f\u0435\u0440\u0430\u0442\u0438\u0432\u043d\u043e\u0439 \u043f\u0430\u043c\u044f\u0442\u0438 128Gb, \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u043f\u043e\u0434 tmpfs \u0432\u044b\u0434\u0435\u043b\u0435\u043d\u043e 32 \u0433\u0438\u0433\u0430\u0431\u0430\u0439\u0442\u0430.<\/p>\n<p>  <\/p>\n<pre><code>\/dev\/sdb1       \/secondary      xfs     defaults        0       2 tmpfs           \/data\/inmemory  tmpfs   size=25%        0       0<\/code><\/pre>\n<\/div>\n<\/div>\n<p>  <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u0421\u0442\u0430\u0432\u0438\u043c \u043c\u043e\u043d\u0433\u0443, \u043d\u0430\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0435\u043c \u0440\u0435\u043f\u043b\u0438\u043a\u0443, \u043f\u043e\u0434\u0433\u043e\u0442\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u043c \u0440\u0435\u0430\u043b\u0442\u0430\u0439\u043c \u0431\u0435\u043a\u0430\u043f<\/b><\/p>\n<div class=\"spoiler_text\">\n<p>\u0410\u043a\u0442\u0443\u0430\u043b\u044c\u043d\u044b\u0439 \u0441\u043f\u043e\u0441\u043e\u0431 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u043d\u0430 \u043e\u0444\u0438\u0446\u0438\u0430\u043b\u044c\u043d\u043e\u043c \u0441\u0430\u0439\u0442\u0435.<br \/>  \u0412 \u0434\u0430\u043d\u043d\u043e\u043c \u043f\u0440\u0438\u043c\u0435\u0440\u0435 \u0438\u0434\u0451\u0442 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 \u0432\u0435\u0440\u0441\u0438\u0438 3.4 \u043d\u0430 Ubuntu 16.<\/p>\n<p>  <\/p>\n<p>\u0423\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u043c:<\/p>\n<p>  <\/p>\n<pre><code class=\"bash\">sudo apt-key adv --keyserver hkp:\/\/keyserver.ubuntu.com:80 --recv 0C49F3730359A14518585931BC711F9BA15703C6 echo &quot;deb [ arch=amd64,arm64 ] http:\/\/repo.mongodb.org\/apt\/ubuntu xenial\/mongodb-org\/3.4 multiverse&quot; | sudo tee \/etc\/apt\/sources.list.d\/mongodb-org-3.4.list sudo apt-get update sudo apt-get install mongodb-org<\/code><\/pre>\n<p>  <\/p>\n<p>\u0421\u043e\u0437\u0434\u0430\u0435\u043c \u043f\u0430\u043f\u043a\u0438, \u043a\u043e\u043d\u0444\u0438\u0433\u0438 \u0438 \u0441\u0442\u0430\u0432\u0438\u043c \u043f\u0440\u0430\u0432\u0430:<\/p>\n<p>  <\/p>\n<pre><code class=\"bash\">sudo mkdir \/data sudo mkdir \/data\/db sudo mkdir \/data\/inmemory sudo mkdir \/secondary\/data sudo mkdir \/secondary\/data\/db sudo vi \/data\/mongod-memory.conf<\/code><\/pre>\n<p>  <\/p>\n<p>\u041f\u043e\u0434\u0445\u043e\u0434, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u043c primary \u0432 \u043f\u0430\u043c\u044f\u0442\u0438 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u043e\u043f\u0430\u0441\u0435\u043d, \u0442.\u043a. \u0432 \u0441\u043b\u0443\u0447\u0430\u0435 \u0432\u043d\u0435\u0437\u0430\u043f\u043d\u043e\u0433\u043e \u0432\u044b\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f \u043f\u0438\u0442\u0430\u043d\u0438\u044f \u0434\u0430\u043d\u043d\u044b\u0435, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043d\u0435 \u0443\u0441\u043f\u0435\u043b\u0438 \u043f\u0435\u0440\u0435\u0439\u0442\u0438 \u0432 \u0440\u0435\u043f\u043b\u0438\u043a\u0438 \u2014 \u0442\u0435\u0440\u044f\u044e\u0442\u0441\u044f. \u0412 \u043c\u043e\u0451\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u043f\u043e\u0442\u0435\u0440\u044f 1-2 \u0441\u0435\u043a\u0443\u043d\u0434 \u043d\u0435 \u0441\u0442\u0440\u0430\u0448\u043d\u0430, \u0442.\u043a. \u0432\u0441\u0451 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u043f\u0438\u0448\u0435\u0442\u0441\u044f \u0441 \u0443\u0447\u0435\u0442\u043e\u043c \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438 \u0432\u043e\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f \u0438\u0437 \u043b\u044e\u0431\u043e\u0439 \u043f\u043e\u0437\u0438\u0446\u0438\u0438. \u0424\u0438\u043d\u0430\u043d\u0441\u043e\u0432\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 \u043f\u0438\u0448\u0443\u0442\u0441\u044f \u0441 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u043c, \u043f\u043e\u0434\u0442\u0432\u0435\u0440\u0436\u0434\u0430\u044e\u0449\u0438\u043c \u0447\u0442\u043e \u0434\u0430\u043d\u043d\u044b\u0435 \u0443\u0436\u0435 \u0435\u0441\u0442\u044c \u043d\u0430 \u0440\u0435\u043f\u043b\u0438\u043a\u0435 (\u0442.\u0435. \u043d\u0430 \u0434\u0438\u0441\u043a\u0435).<br \/>  \u0415\u0441\u043b\u0438 \u0432\u0430\u0448\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u043a \u0442\u0430\u043a\u043e\u043c\u0443 \u043d\u0435 \u0433\u043e\u0442\u043e\u0432\u043e \u2014 \u0432\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u043e\u0442\u043a\u0430\u0437\u0430\u0442\u044c\u0441\u044f \u043e\u0442 memory \u0440\u0430\u0437\u0434\u0435\u043b\u0430 \u0438 \u0434\u0435\u043b\u0430\u0442\u044c \u0432\u0441\u0451 \u043a\u043b\u0430\u0441\u0441\u0438\u0447\u0435\u0441\u043a\u0438. \u0412 \u0446\u0435\u043b\u043e\u043c \u0434\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0431\u0443\u0434\u0435\u0442 \u0443\u0431\u0440\u0430\u0442\u044c \u043c\u043e\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 tmpfs \u0438 \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u0438\u0437\u043c\u0435\u043d\u0438\u0442\u044c \u043a\u043e\u043d\u0444\u0438\u0433, \u0441\u0434\u0435\u043b\u0430\u0432 \u0435\u0433\u043e \u0441\u0445\u043e\u0436\u0438\u043c \u0441 mongod-sec-d1.conf<\/p>\n<p>  <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">mongod-memory.conf \u2014 primary, in memory<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code>processManagement:   fork: true    pidFilePath: &quot;\/data\/inmemory\/mongod.pid&quot;  storage:   dbPath: &quot;\/data\/inmemory&quot;   journal:     enabled: false # \u041e\u0442\u043a\u043b\u044e\u0447\u0430\u0435\u043c \u0436\u0443\u0440\u043d\u0430\u043b\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435                    # \u0442.\u043a. \u0432 \u043f\u0430\u043c\u044f\u0442\u0438 \u0432 \u0441\u043b\u0443\u0447\u0430\u0435 \u043f\u0430\u0434\u0435\u043d\u0438\u044f \u043e\u043d\u043e \u043d\u0430\u0441 \u0432\u0441\u0451 \u0440\u0430\u0432\u043d\u043e \u043d\u0435 \u0441\u043f\u0430\u0441\u0451\u0442   indexBuildRetry: true   wiredTiger:     engineConfig:       cacheSizeGB: 8 # \u041e\u0433\u0440\u0430\u043d\u0438\u0447\u0438\u0432\u0430\u0435\u043c \u0440\u0430\u0437\u043c\u0435\u0440 \u043a\u0435\u0448\u0430.                       # \u042f, \u0447\u0435\u0441\u0442\u043d\u043e \u0433\u043e\u0432\u043e\u0440\u044f, \u043d\u0435 \u0443\u0432\u0435\u0440\u0435\u043d, \u043d\u043e \u0435\u0433\u043e \u043c\u043e\u0436\u043d\u043e \u0443\u0431\u0440\u0430\u0442\u044c \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e,                      # \u0442.\u043a. \u044d\u0442\u043e \u0442\u043e, \u0447\u0442\u043e \u043c\u043e\u043d\u0433\u0430 \u0434\u043b\u044f \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u0438 \u043f\u043e\u043c\u0435\u0441\u0442\u0438\u0442\u044c                       # \u0432 \u043e\u043f\u0435\u0440\u0430\u0442\u0438\u0432\u043d\u0443\u044e \u043f\u0430\u043c\u044f\u0442\u044c, \u0430 \u0434\u0430\u043d\u043d\u044b\u0439 \u0438\u043d\u0441\u0442\u0430\u043d\u0441 \u0443\u0436\u0435 \u0432\u0435\u0441\u044c \u0432 \u043d\u0435\u0439  systemLog:   destination: &quot;file&quot;   path: &quot;\/var\/log\/mongodb\/mongodb.log&quot; # \u0414\u043b\u044f \u0432\u0441\u0435\u0445 \u044d\u043a\u0437\u0435\u043c\u043f\u043b\u044f\u0440\u043e\u0432 \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u043c \u043e\u0434\u0438\u043d \u0438\u043d\u0441\u0442\u0430\u043d\u0441.                                        # \u0422\u0435\u043e\u0440\u0435\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0442\u0443\u0442 \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u043f\u0440\u043e\u0441\u0430\u0434\u043a\u0443,                                         # \u0435\u0441\u043b\u0438 \u043c\u043e\u043d\u0433\u0430 \u0432 \u043f\u0430\u043c\u044f\u0442\u0438 \u043d\u0430\u0447\u043d\u0451\u0442 \u043f\u0438\u0441\u0430\u0442\u044c                                        # \u043d\u0430 \u0434\u0438\u0441\u043a, \u043d\u043e \u043f\u0440\u0438 \u043d\u043e\u0440\u043c\u0430\u043b\u044c\u043d\u043e\u043c \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0438                                         # \u044d\u0442\u0438 \u0441\u043e\u0431\u044b\u0442\u0438\u044f \u0440\u0435\u0434\u043a\u0438 (\u043e\u0448\u0438\u0431\u043a\u0438, \u043c\u0435\u0434\u043b\u0435\u043d\u043d\u044b\u0439 \u0437\u0430\u043f\u0440\u043e\u0441\u044b)   logAppend: true   quiet: false   verbosity: 0   logRotate: &quot;reopen&quot;   timeStampFormat: &quot;iso8601-local&quot;  net:   bindIp: 127.0.0.1 # \u0414\u0435\u043b\u0430\u0435\u043c \u043c\u043e\u043d\u0433\u0443 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u043e\u0439 \u0442\u043e\u043b\u044c\u043a\u043e \u0434\u043b\u044f \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430                     # \u0432 \u0441\u043b\u0443\u0447\u0430\u0435 \u0435\u0441\u043b\u0438 \u043d\u0430\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0435\u043c \u0440\u0435\u0430\u043b\u0442\u0430\u0439\u043c \u0431\u0435\u043a\u0430\u043f \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u0432\u043d\u0435\u0448\u043d\u0438\u0439 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441   port: 27000 # \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u043c \u043d\u0430 \u043a\u0430\u043a\u0438\u0445 \u043f\u043e\u0440\u0442\u0430\u0445 \u0431\u0443\u0434\u0435\u043c \u0440\u0430\u0437\u043c\u0435\u0449\u0430\u0442\u044c,                # \u043e\u043d\u0438 \u0434\u043e\u043b\u0436\u043d\u044b \u0431\u044b\u0442\u044c \u0440\u0430\u0437\u043d\u044b\u0435 \u0434\u043b\u044f \u0440\u0430\u0437\u043d\u044b\u0445 \u0438\u043d\u0441\u0442\u0430\u043d\u0441\u043e\u0432 \u0432 \u043f\u0440\u0435\u0434\u0435\u043b\u0430\u0445 \u0441\u0435\u0440\u0432\u0435\u0440\u0430   http:     enabled: false # \u043e\u0442\u043a\u043b\u044e\u0447\u0430\u0435\u043c \u0434\u043e\u0441\u0442\u0443\u043f \u043f\u043e http \u0438 \u043f\u0440\u043e\u0447\u0438\u043c \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430\u043c     JSONPEnabled: false     RESTInterfaceEnabled: false   ssl: # ssl \u043d\u0430\u043c \u0442\u043e\u0436\u0435 \u043d\u0435 \u043d\u0443\u0436\u0435\u043d \u0432 \u0434\u0430\u043d\u043d\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435     mode: disabled  security: # \u041c\u044b \u0431\u0443\u0434\u0435\u043c \u043d\u0430\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0442\u044c \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u044b\u0439 \u0434\u043e\u0441\u0442\u0443\u043f \u043f\u043e \u043f\u0440\u0430\u0432\u0430\u043c,            #\u0447\u0442\u043e \u0431\u044b \u043a\u043b\u0438\u0435\u043d\u0442\u044b \u0432\u0438\u0434\u0435\u043b\u0438 \u0442\u043e\u043b\u044c\u043a\u043e \u0442\u043e, \u0447\u0442\u043e \u0438\u043c \u043d\u0430\u0434\u043e   authorization: &quot;enabled&quot;   keyFile: &quot;\/data\/mongod-keyfile&quot; # \u042d\u0442\u043e \u043a\u043b\u044e\u0447 \u0434\u043b\u044f \u043e\u0431\u0449\u0435\u043d\u0438\u044f \u0440\u0435\u043f\u043b\u0438\u043a \u043c\u0435\u0436\u0434\u0443 \u0441\u043e\u0431\u043e\u0439   javascriptEnabled: false # \u0417\u0430\u043f\u0440\u0435\u0449\u0430\u0435\u043c \u0438\u0441\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 JS \u0432 \u0411\u0414.  replication:   oplogSizeMB: 4096 # \u0423\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u043c \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u044b\u0439 \u0440\u0430\u0437\u043c\u0435\u0440 oplog'\u0430.                      # \u0441\u043b\u0443\u0447\u0430\u0435 \u043f\u0430\u0434\u0435\u043d\u0438\u044f \u0440\u0435\u043f\u043b\u0438\u043a \u0438\u0445 \u0432\u043e\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435 \u0431\u0443\u0434\u0435\u0442 \u0431\u044b\u0441\u0442\u0440\u044b\u043c                     # \u0442\u043e\u043b\u044c\u043a\u043e \u0435\u0441\u043b\u0438 \u043e\u043d\u0438 \u043e\u0442\u0441\u0442\u0430\u043b\u0438 \u043d\u0435 \u0431\u043e\u043b\u0435\u0435 \u0447\u0435\u043c \u043d\u0430 \u0440\u0430\u0437\u043c\u0435\u0440 oplog'a.                      # \u041a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u044b\u0439 \u0440\u0430\u0437\u043c\u0435\u0440 \u043c\u043e\u0436\u043d\u043e \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0442\u044c                     # \u0432 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438 \u043e\u0442 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u2014 \u043a\u0430\u043a \u0447\u0430\u0441\u0442\u043e \u0438\u0434\u0451\u0442 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0435 \u0411\u0414?   replSetName: &quot;consulwar&quot;   enableMajorityReadConcern: false # \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u043c \u0447\u0442\u043e \u043c\u044b \u041d\u0415 \u0434\u043e\u0436\u0438\u0434\u0430\u0435\u043c\u0441\u044f \u043f\u043e\u0434\u0442\u0432\u0435\u0440\u0436\u0434\u0435\u043d\u0438\u0435                                     # \u043e\u0442 \u0440\u0435\u043f\u043b\u0438\u043a\u0438 \u043d\u0430 \u0437\u0430\u043f\u0438\u0441\u044c \u0434\u043b\u044f \u0432\u043e\u0437\u0432\u0440\u0430\u0442\u0430 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 \u043f\u043e\u0438\u0441\u043a\u0430.  operationProfiling:   slowOpThresholdMs: 30 # \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u043c \u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043c\u0430\u043a\u0441\u0438\u043c\u0443\u043c \u043c\u043e\u0436\u0435\u0442 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0442\u0441\u044f \u0437\u0430\u043f\u0440\u043e\u0441,                          # \u043f\u043e\u0441\u043b\u0435 \u0447\u0435\u0433\u043e \u0431\u0443\u0434\u0435\u0442 \u0441\u0447\u0438\u0442\u0430\u0442\u044c\u0441\u044f \u043c\u0435\u0434\u043b\u0435\u043d\u043d\u044b\u043c                         # \u0438 \u0437\u0430\u043f\u0438\u0441\u0430\u043d \u0432 \u043b\u043e\u0433, \u0434\u043b\u044f \u043f\u043e\u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0439 \u0440\u0443\u0447\u043d\u043e\u0439 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438   mode: &quot;slowOp&quot;<\/code><\/pre>\n<\/div>\n<\/div>\n<p>  <\/p>\n<pre><code class=\"bash\">sudo vi \/data\/mongod-sec-d1.conf<\/code><\/pre>\n<p>  <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">mongod-sec-d1.conf \u2014 secondary, disk 1<\/b><\/p>\n<div class=\"spoiler_text\">\n<p>\u041f\u043e \u0431\u043e\u043b\u044c\u0448\u0435\u0439 \u0447\u0430\u0441\u0442\u0438 \u043a\u043e\u043d\u0444\u0438\u0433 \u043f\u043e\u0432\u0442\u043e\u0440\u044f\u0435\u0442\u0441\u044f, \u0440\u0430\u0437\u043d\u0438\u0446\u0430 \u0432\u0441\u0435\u0433\u043e \u0432 \u043f\u0430\u0440\u0435 \u043c\u0435\u0441\u0442.<br \/>  \u041d\u043e \u043e\u0441\u0442\u0430\u0432\u043b\u044f\u044e \u0434\u043b\u044f \u0443\u0434\u043e\u0431\u0441\u0442\u0432\u0430<\/p>\n<p>  <\/p>\n<pre><code>processManagement:   fork: true   pidFilePath: &quot;\/data\/db\/mongod.pid&quot;  storage:   dbPath: &quot;\/data\/db&quot;   journal:     enabled: true # \u041e\u0431\u0440\u0430\u0449\u0430\u0435\u043c \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435 \u0447\u0442\u043e \u0442\u0443\u0442 \u0436\u0443\u0440\u043d\u0430\u043b \u0443\u0436\u0435 \u0432\u043a\u043b\u044e\u0447\u0435\u043d,                    # \u0434\u0438\u0441\u043a \u0443 \u043d\u0430\u0441 \u0441\u0447\u0438\u0442\u0430\u0435\u0442\u0441\u044f \u043d\u0430\u0434\u0451\u043d\u044b\u043c \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a\u043e\u043c   indexBuildRetry: true   wiredTiger:     engineConfig:       cacheSizeGB: 8 # \u0424\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438, \u0434\u0430\u0436\u0435 \u0435\u0441\u043b\u0438 \u043f\u043e \u043a\u0430\u043a\u043e\u0439-\u0442\u043e \u043f\u0440\u0438\u0447\u0438\u043d\u0435 Primary \u0443\u043f\u0430\u0434\u0451\u0442,                       # secondary \u0431\u0443\u0434\u0435\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043f\u0430\u043c\u044f\u0442\u044c \u043d\u043e \u0442\u043e\u043b\u044c\u043a\u043e \u0434\u043b\u044f \u0447\u0442\u0435\u043d\u0438\u044f  systemLog:   destination: &quot;file&quot;   path: &quot;\/var\/log\/mongodb\/mongodb.log&quot;   logAppend: true   quiet: false   verbosity: 0   logRotate: &quot;reopen&quot;   timeStampFormat: &quot;iso8601-local&quot;  net:   bindIp: 127.0.0.1   port: 27001   http:     enabled: false     JSONPEnabled: false     RESTInterfaceEnabled: false   ssl:     mode: disabled  security:   authorization: &quot;enabled&quot;   keyFile: &quot;\/data\/mongod-keyfile&quot;   javascriptEnabled: false  replication:   oplogSizeMB: 4096   replSetName: &quot;consulwar&quot;   enableMajorityReadConcern: false  operationProfiling:   slowOpThresholdMs: 30   mode: &quot;slowOp&quot;<\/code><\/pre>\n<\/div>\n<\/div>\n<p>  <\/p>\n<pre><code class=\"bash\">sudo vi \/data\/mongod-sec-d2.conf<\/code><\/pre>\n<p>  <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">mongod-sec-d2.conf \u2014 secondary, disk 2<\/b><\/p>\n<div class=\"spoiler_text\">\n<p>\u0420\u0430\u0437\u043d\u0438\u0446\u0430, \u043f\u043e \u0441\u0443\u0442\u0438, \u0442\u043e\u043b\u044c\u043a\u043e \u0432 \u043f\u0443\u0442\u0438 \u0434\u043e \u0411\u0414 \u0438 \u0432 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438 \u043e\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u043e\u0433\u043e \u043f\u043e\u0440\u0442\u0430.<\/p>\n<p>  <\/p>\n<pre><code>processManagement:   fork: true   pidFilePath: &quot;\/secondary\/data\/db\/mongod.pid&quot;  storage:   dbPath: &quot;\/secondary\/data\/db&quot;   journal:     enabled: true   indexBuildRetry: true   wiredTiger:     engineConfig:       cacheSizeGB: 8  systemLog:   destination: &quot;file&quot;   path: &quot;\/var\/log\/mongodb\/mongodb.log&quot;   logAppend: true   quiet: false   verbosity: 0   logRotate: &quot;reopen&quot;   timeStampFormat: &quot;iso8601-local&quot;  net:   bindIp: 127.0.0.1   port: 27002   http:     enabled: false     JSONPEnabled: false     RESTInterfaceEnabled: false   ssl:     mode: disabled  security:   authorization: &quot;enabled&quot;   keyFile: &quot;\/data\/mongod-keyfile&quot;   javascriptEnabled: false  replication:   oplogSizeMB: 4096   replSetName: &quot;consulwar&quot;   enableMajorityReadConcern: false  operationProfiling:   slowOpThresholdMs: 30   mode: &quot;slowOp&quot;<\/code><\/pre>\n<\/div>\n<\/div>\n<p>  <\/p>\n<p>\u0414\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u043a\u043b\u044e\u0447 \u0434\u043b\u044f \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u043e\u0439 \u0440\u0430\u0431\u043e\u0442\u044b \u0440\u0435\u043f\u043b\u0438\u043a\u0438, \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u043c \u043f\u0440\u0430\u0432\u0430 \u043d\u0430 \u043f\u0430\u043f\u043a\u0438<\/p>\n<p>  <\/p>\n<pre><code class=\"bash\">sudo openssl rand -base64 741 &gt; ~\/mongod-keyfile sudo mv mongod-keyfile \/data\/mongod-keyfile sudo chmod 600 \/data\/mongod-keyfile sudo chown mongodb:mongodb -R \/data sudo chown mongodb:mongodb -R \/secondary\/data<\/code><\/pre>\n<p>  <\/p>\n<p>\u0421\u043e\u0437\u0434\u0430\u0435\u043c \u0441\u043a\u0440\u0438\u043f\u0442\u044b \u0430\u0432\u0442\u043e\u0437\u0430\u043f\u0443\u0441\u043a\u0430<\/p>\n<p>  <\/p>\n<pre><code class=\"bash\">sudo apt-get install numactl sudo mv \/lib\/systemd\/system\/mongod.service \/lib\/systemd\/system\/mongod@.service sudo vi \/lib\/systemd\/system\/mongod@.service<\/code><\/pre>\n<p>  <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">mongod@.service<\/b><\/p>\n<div class=\"spoiler_text\">\n<p>@ \u0432 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0438 \u0441\u0435\u0440\u0432\u0438\u0441\u0430 \u043e\u0437\u043d\u0430\u0447\u0430\u0435\u0442 \u0447\u0442\u043e \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0442\u044c \u0435\u0433\u043e \u0441 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430\u043c\u0438.<br \/>  \u0414\u0430\u043d\u043d\u044b\u0439 \u0441\u043a\u0440\u0438\u043f\u0442 \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u0442 \u0432\u0441\u0435 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u041e\u0421 \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u043c\u043e\u043d\u0433\u043e\u0439 \u2014 \u0443\u0434\u043e\u0431\u043d\u043e.<\/p>\n<p>  <\/p>\n<pre><code>[Unit] Description= Mongo Database on %i After=network.target  [Service] Type=forking ExecStartPre=\/bin\/sh -c '\/bin\/echo never &gt; \/sys\/kernel\/mm\/transparent_hugepage\/enabled' ExecStartPre=\/bin\/sh -c '\/bin\/echo never &gt; \/sys\/kernel\/mm\/transparent_hugepage\/defrag' User=mongodb Group=mongodb PermissionsStartOnly=true ExecStart=\/usr\/bin\/numactl --interleave=all \/usr\/bin\/mongod --config \/data\/mongod-%i.conf LimitFSIZE=infinity LimitCPU=infinity LimitAS=infinity LimitNOFILE=64000 LimitNPROC=64000 TasksMax=infinity TasksAccounting=false  [Install] WantedBy=multi-user.target<\/code><\/pre>\n<\/div>\n<\/div>\n<p>  <\/p>\n<p>\u0413\u043e\u0432\u043e\u0440\u0438\u043c \u0411\u0414 \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0442\u044c\u0441\u044f \u043f\u0440\u0438 \u0441\u0442\u0430\u0440\u0442\u0435 \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u0438 \u0442\u0430\u043a \u0436\u0435 \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u043c \u044d\u043a\u0437\u0435\u043c\u043f\u043b\u044f\u0440\u044b \u043f\u0440\u044f\u043c\u043e \u0441\u0435\u0439\u0447\u0430\u0441.<br \/>  \u041d\u0430\u0448 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u043f\u043e\u0441\u043b\u0435 @, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, memory \u0443\u043a\u0430\u0436\u0435\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043f\u0440\u0438 \u0437\u0430\u043f\u0443\u0441\u043a\u0435 \/data\/mongod-memory.conf<\/p>\n<p>  <\/p>\n<pre><code class=\"bash\">sudo systemctl enable mongod@memory sudo systemctl enable mongod@sec-d1 sudo systemctl enable mongod@sec-d2 sudo service start mongod@memory sudo service start mongod@sec-d1 sudo service start mongod@sec-d2<\/code><\/pre>\n<p>  <\/p>\n<p>\u041f\u043e\u0434\u043a\u043b\u044e\u0447\u0430\u0435\u043c\u0441\u044f \u043a \u043c\u043e\u043d\u0433\u0435, \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u0443\u0435\u043c \u0440\u0435\u043f\u043b\u0438\u043a\u0443, \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u043c \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439<\/p>\n<p>  <\/p>\n<pre><code class=\"bash\">mongo localhost:27000\/admin<\/code><\/pre>\n<p>  <\/p>\n<p>\u0412\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u043c \u0432 \u043a\u043e\u043d\u0441\u043e\u043b\u0438 \u043c\u043e\u043d\u0433\u0438<\/p>\n<p>  <\/p>\n<pre><code class=\"javascript\">rs.initiate({   _id: &quot;consulwar&quot;, \/\/ \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u0440\u0435\u043f\u043b\u0438\u043a\u0438   version: 1,   protocolVersion: 1,   writeConcernMajorityJournalDefault: false, \/\/ \u0413\u043e\u0432\u043e\u0440\u0438\u043c \u0447\u0442\u043e \u0431\u044b \u0440\u0435\u043f\u043b\u0438\u043a\u0430 \u043d\u0435 \u0434\u043e\u0436\u0438\u0434\u0430\u043b\u0430\u0441\u044c                                               \/\/ \u043f\u043e\u0434\u0442\u0432\u0435\u0440\u0436\u0434\u0435\u043d\u0438\u044f \u043e \u0437\u0430\u043f\u0438\u0441\u0438 \u043e\u0442 \u0434\u0440\u0443\u0433\u0438\u0445   configsvr: false, \/\/ \u0423\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u043c, \u0447\u0442\u043e \u044d\u0442\u043e \u043d\u0435 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u0439 \u0441\u0435\u0440\u0432\u0435\u0440 \u0434\u043b\u044f \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0430                      \/\/ (\u043a\u043b\u0430\u0441\u0442\u0435\u0440 \u2014 \u0442\u0435\u043c\u0430 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0438)   members: [     {       _id: 0, \/\/ id \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u043c \u043e\u0442 \u043d\u0443\u043b\u044f \u0438 \u0434\u0430\u043b\u0435\u0435 \u0438\u043d\u043a\u0440\u0435\u043c\u0435\u043d\u0442\u0438\u043c       host: 'localhost:27000', \/\/ \u043f\u043e \u043a\u0430\u043a\u043e\u043c\u0443 \u0430\u0434\u0440\u0435\u0441\u0443 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u0430 \u0434\u0430\u043d\u043d\u0430\u044f \u043c\u043e\u043d\u0433\u0430       arbiterOnly: false, \/\/ \u043c\u043e\u0436\u0435\u0442 \u043b\u0438 \u043e\u0442\u0434\u0430\u0432\u0430\u0442\u044c \u0438 \u0445\u0440\u0430\u043d\u0438\u0442\u044c \u0434\u0430\u043d\u043d\u044b\u0435       buildIndexes: true, \/\/ \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u043c \u0447\u0442\u043e \u0441\u0442\u0440\u043e\u0438\u0442\u044c \u0438\u043d\u0434\u0435\u043a\u0441\u044b \u043d\u0430\u0434\u043e       hidden: false, \/\/ \u043d\u0435 \u0441\u043a\u0440\u044b\u0442\u0430\u044f, \u0442.\u0435. \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u043a \u043d\u0435\u0439 \u043c\u043e\u0436\u0435\u0442 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0438\u0442\u044c\u0441\u044f       priority: 100, \/\/ \u043f\u0440\u0438\u043e\u0440\u0438\u0442\u0435\u0442 \u043f\u0440\u0438 \u0432\u044b\u0431\u043e\u0440\u0435 Primary \u2014 \u0447\u0435\u043c \u0431\u043e\u043b\u044c\u0448\u0435, \u0442\u0435\u043c \u043f\u0440\u0438\u043e\u0440\u0438\u0442\u0435\u0442\u043d\u0435\u0435       slaveDelay: 0, \/\/ \u0437\u0430\u0434\u0435\u0440\u0436\u043a\u0430 \u0440\u0435\u043f\u043b\u0438\u043a\u0430\u0446\u0438\u0438. \u041d\u0430\u043c \u0437\u0430\u0434\u0435\u0440\u0436\u043a\u0430 \u043d\u0435 \u043d\u0443\u0436\u043d\u0430.       votes: 1 \/\/ \u043c\u043e\u0436\u0435\u0442 \u043b\u0438 \u0433\u043e\u043b\u043e\u0441\u043e\u0432\u0430\u0442\u044c \u043f\u0440\u0438 \u0432\u044b\u0431\u043e\u0440\u0435 Primary     },     {       _id: 1,       host: 'localhost:27001',       arbiterOnly: false,       buildIndexes: true,       hidden: false,       priority: 99, \/\/ \u041f\u0440\u0438\u043e\u0440\u0438\u0442\u0435\u0442 \u043d\u0438\u0436\u0435       slaveDelay: 0,       votes: 1     },     {       _id: 2,       host: 'localhost:27002',       arbiterOnly: false,       buildIndexes: true,       hidden: false,       priority: 98,       slaveDelay: 0,       votes: 1     }   ],   settings: {     chainingAllowed : true, \/\/ \u0420\u0430\u0437\u0440\u0435\u0448\u0430\u0435\u043c \u0440\u0435\u043f\u043b\u0438\u043a\u0430\u043c \u0447\u0438\u0442\u0430\u0442\u044c \u0434\u0440\u0443\u0433 \u0441 \u0434\u0440\u0443\u0433\u0430, \u0430 \u043d\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u0441 \u043c\u0430\u0441\u0442\u0435\u0440\u0430     electionTimeoutMillis : 5000, \/\/ \u0423\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u043c \u0432\u0440\u0435\u043c\u044f \u043d\u0430 \u043f\u0435\u0440\u0435\u0433\u043e\u043b\u043e\u0441\u043e\u0432\u0430\u043d\u0438\u0435,                                    \/\/ \u0432 \u0441\u043b\u0443\u0447\u0430\u0435 \u043f\u0430\u0434\u0435\u043d\u0438\u044f \u043e\u0434\u043d\u043e\u0439 \u0438\u0437 \u0411\u0414. ~7 \u0441\u0435\u043a\u0443\u043d\u0434.                                    \/\/ \u0415\u0441\u043b\u0438 \u0432\u0441\u0435 \u044d\u043a\u0437\u0435\u043c\u043f\u043b\u044f\u0440\u044b \u0443 \u043d\u0430\u0441 \u043d\u0430 1 \u043c\u0430\u0448\u0438\u043d\u0435                                    \/\/ \u043c\u043e\u0436\u0435\u043c \u0443\u043c\u0435\u043d\u044c\u0448\u0438\u0442\u044c \u0434\u043e 500\u043c\u0441, \u0441\u043a\u0430\u0436\u0435\u043c     catchUpTimeoutMillis : 2000   } });  \/\/ \u0421\u043e\u0437\u0434\u0430\u0435\u043c \u043f\u0435\u0440\u0432\u043e\u0433\u043e \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f, \u043e\u043d \u0434\u043e\u043b\u0436\u0435\u043d \u0438\u043c\u0435\u0442\u044c \u043f\u0440\u0430\u0432\u0430 root'\u0430 db.createUser({user: 'zav', pwd: '7Am9859dcb82jJh', roles: ['root']});  \/\/ \u0412\u044b\u0445\u043e\u0434\u0438\u043c - ctrl+c, ctrl+c<\/code><\/pre>\n<p>  <\/p>\n<p>\u041f\u043e\u0434\u043a\u043b\u044e\u0447\u0430\u0435\u043c\u0441\u044f \u043f\u043e\u0434 \u043d\u0430\u0448\u0438\u043c \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u043c<\/p>\n<p>  <\/p>\n<pre><code class=\"bash\">mongo localhost:27000\/admin -u zav -p '7Am9859dcb82jJh' --authenticationDatabase admin<\/code><\/pre>\n<p>  <\/p>\n<p>\u0414\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435\u043c<\/p>\n<p>  <\/p>\n<pre><code class=\"javascript\">use consulwar \/\/ \u0432\u043c\u0435\u0441\u0442\u043e consulwar \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0439 \u0411\u0414 \u0432\u0430\u0448\u0435\u0433\u043e \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f db.createUser({     user: 'consulwar',      pwd: '37q4Re7m432dtDq',      roles: [{ \/\/ \u041f\u0440\u0430\u0432\u0430 \u043d\u0430 \u0447\u0442\u0435\u043d\u0438\u0435 \u0438 \u0437\u0430\u043f\u0438\u0441\u044c \u0432 \u043d\u0430\u0448\u0443 \u0411\u0414.                \/\/ \u0412\u043a\u043b\u044e\u0447\u0430\u0435\u0442 \u0435\u0449\u0451 \u0440\u044f\u0434 \u043f\u0440\u0430\u0432, \u0442\u0438\u043f\u0430 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0438\u043d\u0434\u0435\u043a\u0441\u043e\u0432 \u0438 \u0442.\u043f.         role: &quot;readWrite&quot;, db: &quot;consulwar&quot;      }, { \/\/ \u041f\u0440\u0430\u0432\u0430 \u043d\u0430 \u0447\u0442\u0435\u043d\u0438\u0435 oplog'\u0430, \u0434\u043b\u044f \u0431\u044b\u0441\u0442\u0440\u043e\u0439 \u0440\u0430\u0431\u043e\u0442\u044b \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u043c\u0435\u0442\u0435\u043e\u0440\u0430         role: 'read', db: 'local'     }] });<\/code><\/pre>\n<p>  <\/p>\n<p>\u0422\u0435\u043f\u0435\u0440\u044c \u0434\u043e\u0432\u043e\u043b\u044c\u043d\u043e \u0432\u0430\u0436\u043d\u044b\u0439 \u0438 \u0441\u043b\u043e\u0436\u043d\u044b\u0439 \u0432\u043e\u043f\u0440\u043e\u0441 \u2014 \u0440\u0435\u0430\u043b\u0442\u0430\u0439\u043c \u0440\u0435\u043f\u043b\u0438\u043a\u0430\u0446\u0438\u044f \u0434\u043b\u044f \u0431\u0435\u043a\u0430\u043f\u0430. \u0426\u0435\u043b\u0438\u043a\u043e\u043c \u043e\u043d \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0435\u043d \u043d\u0435 \u0431\u0443\u0434\u0435\u0442, \u0432\u0432\u0438\u0434\u0443 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0441\u0442\u0438 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u0435\u0449\u0451 \u0440\u044f\u0434\u0430 \u043e\u0431\u043e\u0440\u0443\u0434\u043e\u0432\u0430\u043d\u0438\u044f, \u0447\u0435\u0433\u043e \u044f \u0431\u044b \u0445\u043e\u0442\u0435\u043b \u0438\u0437\u0431\u0435\u0436\u0430\u0442\u044c \u0432 \u0434\u0430\u043d\u043d\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435.<\/p>\n<p>  <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u0440\u0435\u0430\u043b\u0442\u0430\u0439\u043c-\u0431\u0435\u043a\u0430\u043f\u0430<\/b><\/p>\n<div class=\"spoiler_text\">\n<p>\u0420\u0435\u043f\u043b\u0438\u0446\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043c\u044b \u0431\u0443\u0434\u0435\u043c \u043d\u0430 \u0432\u043d\u0435\u0448\u043d\u0438\u0439 \u0441\u0435\u0440\u0432\u0435\u0440 (\u0438\u043d\u0430\u0447\u0435 \u0432 \u0447\u0451\u043c \u0441\u043c\u044b\u0441\u043b \u0431\u0435\u043a\u043f\u0430\u043f? :-)).<br \/>  \u041d\u0430 \u0432\u043d\u0435\u0448\u043d\u0435\u043c \u0441\u0435\u0440\u0432\u0435\u0440\u0435 \u0434\u043e\u043b\u0436\u043d\u0430 \u0431\u044b\u0442\u044c \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u0430 \u043c\u043e\u043d\u0433\u0430 \u0441\u0445\u043e\u0436\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c.<br \/>  \u041f\u0440\u0438\u043c\u0435\u0440\u043d\u044b\u0439 \u043a\u043e\u043d\u0444\u0438\u0433:<\/p>\n<p>  <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">mongod-backup.conf<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code>processManagement:   fork: true   pidFilePath: &quot;\/data\/db\/mongod.pid&quot;  storage:   dbPath: &quot;\/data\/db&quot;   journal:     enabled: true   indexBuildRetry: false # \u041e\u0442\u043a\u043b\u044e\u0447\u0430\u0435\u043c \u043f\u043e\u0441\u0442\u0440\u043e\u0435\u043d\u0438\u0435 \u0438\u043d\u0434\u0435\u043a\u0441\u043e\u0432   wiredTiger:     engineConfig:       cacheSizeGB: 0 # \u041e\u0442\u043a\u043b\u044e\u0447\u0430\u0435\u043c \u043a\u0435\u0448  systemLog:   destination: &quot;file&quot;   path: &quot;\/var\/log\/mongodb\/mongodb.log&quot;   logAppend: true   quiet: false   verbosity: 0   logRotate: &quot;reopen&quot;   timeStampFormat: &quot;iso8601-local&quot;  net:   bindIp: 222.222.222.222 # \u0414\u0430\u043d\u043d\u044b\u0439 \u044d\u043a\u0437\u0435\u043c\u043f\u043b\u044f\u0440 \u0434\u043e\u043b\u0436\u0435\u043d \u0431\u044b\u0442\u044c \u0434\u043e\u0441\u0442\u0443\u043f\u0435\u043d \u0438\u0437-\u0432\u043d\u0435   port: 27000   http:     enabled: false # \u043d\u043e \u043d\u0435 \u043f\u043e http, \u0441\u0430\u043c\u043e \u0441\u043e\u0431\u043e\u0439     JSONPEnabled: false     RESTInterfaceEnabled: false   ssl:     mode: disabled  security:   authorization: &quot;enabled&quot;   keyFile: &quot;\/data\/mongod-keyfile&quot; # mongod-keyfile \u0431\u0435\u0440\u0435\u043c \u0441 \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0433\u043e \u0441\u0435\u0440\u0432\u0435\u0440\u0430   javascriptEnabled: false  replication:   oplogSizeMB: 0   replSetName: &quot;consulwar&quot;   enableMajorityReadConcern: false  operationProfiling:   mode: &quot;off&quot; # \u043d\u0430\u043c \u043d\u0435 \u043d\u0443\u0436\u043d\u043e \u043f\u0440\u043e\u0444\u0438\u043b\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u043d\u0430 \u0431\u0435\u043a\u0430\u043f\u0435<\/code><\/pre>\n<\/div>\n<\/div>\n<p>  <\/p>\n<p>\u0412 \u0444\u0430\u0435\u0440\u0432\u043e\u043b\u0435 \u0441\u0435\u0440\u0432\u0435\u0440\u0430-\u0431\u0435\u043a\u0430\u043f\u0430 \u0440\u0430\u0437\u0440\u0435\u0448\u0430\u0435\u043c \u043a\u043e\u043d\u043d\u0435\u043a\u0442 \u043d\u0430 27000 \u043f\u043e\u0440\u0442 \u0422\u041e\u041b\u042c\u041a\u041e \u0441 IP \u0441\u0435\u0440\u0432\u0435\u0440\u0430-\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f\/\u0431\u0434.<br \/>  \u0422\u043e\u0436\u0435 \u0441\u0430\u043c\u043e\u0435, \u043d\u0430 \u0441\u0435\u0440\u0432\u0435\u0440\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f\/\u0411\u0414 \u0432 bindIp \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u043c \u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u0435\u0449\u0451 \u0438 \u0432\u043e \u0432\u043d\u0435\u0448\u043d\u0438\u0439 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 (ip \u0432\u043d\u0435\u0448\u043d\u0438\u0439 \u0441\u0435\u0440\u0432\u0435\u0440\u0430), \u0438 \u0432 iptables \u0440\u0430\u0437\u0440\u0435\u0448\u0430\u0435\u043c \u0434\u043e\u0441\u0442\u0443\u043f \u043d\u0430 27000-27002 \u043f\u043e\u0440\u0442\u044b \u0422\u041e\u041b\u042c\u041a\u041e \u0441 ip \u0441\u0435\u0432\u0435\u0440\u0430-\u0431\u0435\u043a\u0430\u043f\u0430.<\/p>\n<p>  <\/p>\n<p>\u041f\u0440\u0438 \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438\/\u0440\u0435\u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0440\u0435\u043f\u043b\u0438\u043a\u0438 \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c<\/p>\n<p>  <\/p>\n<pre><code>{     _id: 4,     host: '222.222.222.222:27000', \/\/ \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u0438\u043d\u0442\u0435\u0440\u0435\u0439\u0441, \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0441\u043c\u043e\u0442\u0440\u0438\u0442 \u0431\u0435\u043a\u0430\u043f     arbiterOnly: false,     buildIndexes: false, \/\/ \u043d\u0435 \u0441\u0442\u0440\u043e\u0438\u043c \u0438\u043d\u0434\u0435\u043a\u0441\u044b \u0432\u043e\u043e\u0431\u0449\u0435 \u043d\u0430 \u0431\u0435\u043a\u0430\u043f\u0435      hidden: true, \/\/ \u0441\u043a\u0440\u044b\u0442\u044b\u0439! \u0418\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0422\u041e\u041b\u042c\u041a\u041e \u0434\u043b\u044f \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438     priority: 0, \/\/ \u041d\u0435 \u0443\u0447\u0430\u0441\u0442\u0432\u0443\u0435\u0442 \u0432 \u0432\u044b\u0431\u043e\u0440\u0430\u0445     slaveDelay: 0, \/\/ \u0417\u0430\u0434\u0435\u0440\u0436\u043a\u0430 \u0431\u0435\u043a\u0430\u043f\u0430 \u043d\u0430\u043c \u043d\u0435 \u043d\u0443\u0436\u043d\u0430,                     \/\/ \u043d\u043e \u043c\u043e\u0436\u0435\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u0435\u0441\u043b\u0438 \u043d\u0443\u0436\u043d\u043e \u043f\u0430\u0440\u0443 \u0431\u0435\u043a\u0430\u043f\u043e\u0432 \u0432 \u0440\u0435\u0430\u043b\u0442\u0430\u0439\u043c\u0435 &quot;\u0447\u0430\u0441 \u043d\u0430\u0437\u0430\u0434&quot;     votes: 0 \/\/ \u041d\u0435 \u0443\u0447\u0430\u0441\u0442\u0432\u0443\u0435\u0442 \u0432 \u0433\u043e\u043b\u043e\u0441\u043e\u0432\u0430\u043d\u0438\u0438 }<\/code><\/pre>\n<p>  <\/p>\n<p>\u0413\u043e\u0442\u043e\u0432\u043e! \u0422\u0435\u043f\u0435\u0440\u044c \u0434\u0430\u043d\u043d\u044b\u0435 \u0431\u0443\u0434\u0443\u0442 \u043b\u0438\u0442\u044c\u0441\u044f \u0432 \u0440\u0435\u0430\u043b\u0442\u0430\u0439\u043c\u0435 \u0435\u0449\u0451 \u0438 \u0432\u043e \u0432\u043d\u0435\u0448\u043d\u0438\u0439 \u0431\u0435\u043a\u0430\u043f, \u0447\u0442\u043e \u043e\u0447\u0435\u043d\u044c \u043a\u0440\u0443\u0442\u043e.<br \/>  \u0412 \u0441\u043b\u0443\u0447\u0430\u0435 \u043f\u043e\u043b\u043d\u043e\u0433\u043e \u043a\u0440\u0430\u0445\u0430 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0440\u0435\u043f\u043b\u0438\u043a\u0443 \u0442\u043e\u0447\u043d\u043e \u0442\u0430\u043a \u0436\u0435, \u0438 \u043e\u043d\u0430 \u0432\u043e\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0441\u044f \u0438\u0437 \u0431\u0435\u043a\u0430\u043f\u0430.<br \/>  \u041f\u043e\u0432\u0435\u0440\u044c\u0442\u0435, \u044d\u0442\u043e \u043d\u0430\u043c\u043d\u043e\u0433\u043e \u0431\u044b\u0441\u0442\u0440\u0435\u0435 \u0447\u0435\u043c mongodump\/mongorestore (\u043f\u043e \u043b\u0438\u0447\u043d\u044b\u043c \u043f\u0440\u0438\u043a\u0438\u0434\u043a\u0430\u043c \u0432 25-100 \u0440\u0430\u0437).<\/p>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<p>  <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">Nodejs, npm, app user, meteor build<\/b><\/p>\n<div class=\"spoiler_text\">\n<p>\u0423\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u043c \u043d\u043e\u0434\u0443, \u0441\u0442\u0430\u0432\u0438\u043c \u043c\u043e\u0434\u0443\u043b\u044c n, \u0441\u0442\u0430\u0432\u0438\u043c \u0438\u043c \u0432\u0435\u0440\u0441\u0438\u044e \u043d\u043e\u0434\u044b 4.8.1 (\u043f\u043e\u0441\u043b\u0435\u0434\u043d\u044f\u044f, \u043e\u0444\u0438\u0446\u0438\u0430\u043b\u044c\u043d\u043e \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u043c\u0430\u044f \u043c\u0435\u0442\u0435\u043e\u0440\u043e\u043c \u0432\u0435\u0440\u0441\u0438\u044f).<br \/>  \u0423\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u043c pm2, \u0442.\u043a. \u0438\u043c\u0435\u043d\u043d\u043e \u0438\u043c \u0431\u0443\u0434\u0435\u043c \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0442\u044c \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u044b.<\/p>\n<p>  <\/p>\n<pre><code class=\"bash\">sudo apt-get install nodejs sudo apt-get install npm sudo npm install -g n sudo n 4.8.1 sudo npm install pm2@latest -g<\/code><\/pre>\n<p>  <\/p>\n<p>\u0414\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f, \u0438\u0437-\u043f\u043e\u0434 \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u0431\u0443\u0434\u0435\u0442 \u0432\u0441\u0451 \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0442\u044c\u0441\u044f \u0438 \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0431\u0443\u0434\u0435\u0442 \u043e\u0442\u0432\u0435\u0447\u0430\u0442\u044c \u0437\u0430 \u0434\u0435\u043f\u043b\u043e\u0439<\/p>\n<p>  <\/p>\n<pre><code class=\"bash\">sudo adduser consulwar<\/code><\/pre>\n<p>  <\/p>\n<p>\u0417\u0430\u0445\u043e\u0434\u0438\u043c \u0437\u0430 \u0434\u0430\u043d\u043d\u043e\u0433\u043e \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f<\/p>\n<p>  <\/p>\n<pre><code class=\"bash\">su consulwar mkdir app mkdir app\/current<\/code><\/pre>\n<p>  <\/p>\n<p>\u041d\u0430 \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u043e\u0439 \u043c\u0430\u0448\u0438\u043d\u0435 \u0437\u0430\u0445\u043e\u0434\u0438\u043c \u0432 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044e \u0441 \u043d\u0430\u0448\u0438\u043c meteor \u043f\u0440\u043e\u0435\u043a\u0442\u043e\u043c.<br \/>  \u0421\u043e\u0437\u0434\u0430\u0435\u043c \u043f\u0430\u043f\u043a\u0443 \u0434\u043b\u044f \u0431\u0438\u043b\u0434\u043e\u0432, \u0441\u043e\u0431\u0438\u0440\u0430\u0435\u043c \u043f\u0440\u043e\u0435\u043a\u0442 \u0432 \u044d\u0442\u0443 \u043f\u0430\u043f\u043a\u0443.<\/p>\n<p>  <\/p>\n<pre><code class=\"bash\">mkdir ..\/build meteor build ..\/build\/ --architecture os.linux.x86_64<\/code><\/pre>\n<p>  <\/p>\n<p>\u041f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u044b\u0439 \u0430\u0440\u0445\u0438\u0432 \u0437\u0430\u0433\u0440\u0443\u0436\u0430\u0435\u043c \u043d\u0430 \u043d\u0430\u0448 \u0441\u0435\u0440\u0432\u0435\u0440, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043f\u043e sftp. \u0417\u0430\u0445\u043e\u0434\u0438\u043c \u043f\u043e\u0434 \u043d\u0430\u0448\u0438\u043c \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u043c \u0434\u043b\u044f \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f.<br \/>  \u0417\u0430\u0433\u0440\u0443\u0436\u0430\u0435\u043c \u0432 \u043f\u0430\u043f\u043a\u0443 ~\/app.<br \/>  \u0417\u0430\u0445\u043e\u0434\u0438\u043c \u043f\u043e ssh \u0437\u0430 \u043d\u0430\u0448\u0435\u0433\u043e \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f (consulwar \u0443 \u043c\u0435\u043d\u044f).<\/p>\n<p>  <\/p>\n<pre><code class=\"bash\">cd app mkdir 20170429 # \u0441\u043e\u0437\u0434\u0430\u0435\u043c \u043f\u0430\u043f\u043a\u0443 \u043f\u043e \u0441\u0435\u0433\u043e\u0434\u043d\u044f\u0448\u043d\u0435\u0439 \u0434\u0430\u0442\u0435 tar -xvzf consulwar-master.tar.gz -C 20170429 ln -s 20170429\/bundle ~\/app\/current # \u0421\u043e\u0437\u0434\u0430\u0435\u043c \u0441\u0438\u043c\u043b\u0438\u043d\u043a, \u0447\u0442\u043e \u0431\u044b \u0431\u044b\u0441\u0442\u0440\u043e \u043f\u0435\u0440\u0435\u043a\u043b\u044e\u0447\u0430\u0442\u044c\u0441\u044f (cd current\/programs\/server &amp;&amp; npm install) vi pm2.config.js # \u0441\u043e\u0437\u0434\u0430\u0435\u043c \u043a\u043e\u043d\u0444\u0438\u0433 \u0434\u043b\u044f \u043d\u0430\u0448\u0435\u0433\u043e pm2<\/code><\/pre>\n<p>  <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">pm2.config.js<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"javascript\">var settings = { ... }; \/\/ \u041e\u0431\u044a\u0435\u043a\u0442 \u0437\u0430\u043c\u0435\u043d\u044f\u0435\u043c \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u043c \u0438\u0437 settings.json \u0432\u0430\u0448\u0435\u0433\u043e \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f  var instances = 10; \/\/ \u0421\u043a\u043e\u043b\u044c\u043a\u043e \u044d\u043a\u0437\u0435\u043c\u043f\u043b\u044f\u0440\u043e\u0432 \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u043c? \u0421\u043e\u0432\u0435\u0442\u0443\u044e \u043d\u0435 \u0431\u043e\u043b\u0435\u0435 N-1                     \/\/ \u0413\u0434\u0435 N \u2014 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u044f\u0434\u0435\u0440  var apps = [];  for (var i = 0; i &lt; instances; i++) {   apps.push({     &quot;script&quot;: &quot;\/home\/consulwar\/app\/current\/bundle\/main.js&quot;, \/\/ \u0443\u043a\u0430\u0436\u0438\u0442\u0435 \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u044b\u0439 \u043f\u0443\u0442\u044c     &quot;exec_mode&quot;: &quot;fork&quot;, \/\/ \u0442.\u043a. \u0440\u0443\u043b\u0438\u0442\u044c \u0431\u0443\u0434\u0435\u043c \u0447\u0435\u0440\u0435\u0437 Nginx, \u0441\u043e\u0437\u0434\u0430\u0435\u043c \u0444\u043e\u0440\u043a\u0430\u043c\u0438     &quot;name&quot;: &quot;consulwar&quot;, \/\/ \u0438\u043c\u044f \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0432 \u0441\u043f\u0438\u0441\u043a\u0435 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0432     &quot;env&quot;: {       &quot;ROOT_URL&quot;: &quot;http:\/\/consulwar.ru\/&quot;, \/\/ \u0410\u0434\u0440\u0435\u0441 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f       &quot;HTTP_FORWARDED_COUNT&quot;: 1, \/\/ \u0423\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u043c \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u043f\u0440\u043e\u043a\u0441\u0438 \u043f\u0435\u0440\u0435\u0434 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435\u043c                                  \/\/ \u0427\u0442\u043e \u0431\u044b \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u043e \u0440\u0430\u0437\u0440\u0443\u043b\u0438\u0442\u044c IP \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f \u0432 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0438       &quot;PORT&quot;: 3000 + i, \/\/ \u041f\u043e\u0440\u0442\u044b \u043d\u0430\u0447\u0438\u043d\u0430\u044e\u0442 \u0441 3000 (3000, 3001, 3002...)       &quot;MONGO_URL&quot;: &quot;mongodb:\/\/consulwar:37q4Re7m432dtDq@localhost:27000,localhost:27001,localhost:27002\/consulwar?replicaSet=consulwar&amp;readPreference=primary&amp;authSource=consulwar&quot;,       &quot;MONGO_OPLOG_URL&quot;: &quot;mongodb:\/\/consulwar:37q4Re7m432dtDq@localhost:27000,clocalhost:27001,localhost:27002\/local?replicaSet=consulwar&amp;authSource=consulwar&quot;,       &quot;METEOR_SETTINGS&quot;: settings     }   }); }  module.exports = {   apps : apps }<\/code><\/pre>\n<\/div>\n<\/div>\n<p>  <\/p>\n<p>\u0418 \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u043c<\/p>\n<p>  <\/p>\n<pre><code class=\"bash\">pm2 startup pm2.js # \u0412\u044b\u0432\u0435\u0434\u0435\u0442 \u043a\u043e\u043c\u0430\u043d\u0434\u0443, \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u043d\u0430\u0434\u043e \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u0434\u043b\u044f \u0430\u0432\u0442\u043e\u0437\u0430\u043f\u0443\u0441\u043a\u0430 \u043f\u043e\u0441\u043b\u0435 \u043f\u0435\u0440\u0435\u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438 ... # \u0412\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u043c \u043a\u043e\u043c\u0430\u043d\u0434\u0443 pm2 start pm2.js pm2 status # \u0412\u0430\u043b\u0438\u0434\u0438\u0440\u0443\u0435\u043c, \u0447\u0442\u043e \u0432\u0441\u0451 \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u043b\u043e\u0441\u044c. \u0412 \u0441\u043b\u0443\u0447\u0430\u0435 \u043e\u0448\u0438\u0431\u043e\u043a \u043c\u043e\u0436\u0435\u043c \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c pm2 logs<\/code><\/pre>\n<p>  <\/p>\n<p>\u0413\u043e\u0442\u043e\u0432\u043e, \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0440\u0430\u0437\u0432\u0435\u0440\u043d\u0443\u0442\u043e \u0438 \u0443\u0436\u0435 \u0434\u043e\u043b\u0436\u043d\u043e \u0431\u044b\u0442\u044c \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u043e \u043f\u043e ip \u0441\u0435\u0440\u0432\u0435\u0440\u0430\/\u0430\u0434\u0440\u0435\u0441\u0443 \u0441 \u0443\u043a\u0430\u0437\u0430\u043d\u0438\u0435\u043c \u043f\u043e\u0440\u0442\u0430, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 <a href=\"http:\/\/consulwar.ru:3000\">http:\/\/consulwar.ru:3000<\/a><\/p>\n<\/div>\n<\/div>\n<p>  <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">Nginx \u0431\u0430\u043b\u0430\u043d\u0441\u0438\u0440\u043e\u0432\u043a\u0430<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"bash\">sudo apt-get install software-properties-common sudo add-apt-repository ppa:nginx\/stable sudo apt-get install nginx sudo vi \/etc\/nginx\/nginx.conf<\/code><\/pre>\n<p>  <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">nginx.conf<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code>user www-data; # \u0438\u0437-\u043f\u043e\u0434 \u043a\u043e\u0433\u043e \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u043c nginx worker_processes  6; # \u0423\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u043c \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0432\u043e\u0440\u043a\u0435\u0440\u043e\u0432 worker_rlimit_nofile 65535;  error_log  \/var\/log\/nginx\/error.log warn; pid        \/var\/run\/nginx.pid;  events {     worker_connections  4000; # \u041a\u043e\u043b-\u0432\u043e \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0439 \u043d\u0430 \u0432\u043e\u0440\u043a\u0435\u0440\u0430                               # \u0412 \u043d\u0430\u0448\u0435\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c 6 * 4000 = 24 000 \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432                                # \u0432 \u043c\u043e\u043c\u0435\u043d\u0442 \u0432\u0440\u0435\u043c\u0435\u043d\u0438 }  http {     map $http_upgrade $connection_upgrade { # \u0414\u043b\u044f \u043a\u043e\u0440\u0440\u0435\u0442\u043d\u043e\u0439 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 \u0441\u043e\u043a\u0435\u0442-\u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f         default upgrade;         ''      close;     }      include       \/etc\/nginx\/mime.types;     default_type  application\/octet-stream;      log_format  main  '$remote_addr - $remote_user [$time_local] &quot;$request&quot; '                       '$status $body_bytes_sent &quot;$http_referer&quot; '                       '&quot;$http_user_agent&quot; &quot;$http_x_forwarded_for&quot;';      access_log  \/var\/log\/nginx\/access.log  main;      server_tokens off;      sendfile on; # \u0414\u043b\u044f \u043e\u0442\u043f\u0440\u0430\u0432\u043a\u0438 \u0441\u0442\u0430\u0442\u0438\u043a\u0438     tcp_nopush on;     tcp_nodelay on;     keepalive_timeout 65;      gzip on; # \u0412\u043a\u043b\u044e\u0447\u0430\u0435\u043c gzip     gzip_comp_level 6;     gzip_vary on;     gzip_proxied any;     gzip_buffers 16 8k;     gzip_types text\/plain text\/css application\/json application\/x-javascript text\/xml application\/xml application\/xml+rss text\/javascript application\/javascript;     gzip_static on; # \u0420\u0430\u0437\u0440\u0435\u0448\u0430\u0435\u043c \u043e\u0442\u0434\u0430\u0447\u0443 \u0444\u0430\u0439\u043b\u043e\u0432 \u0441 .gz \u043d\u0430 \u043a\u043e\u043d\u0446\u0435. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, main.js.gz \u0431\u0443\u0434\u0435\u0442 \u043e\u0442\u0434\u0430\u0432\u0430\u0442\u044c\u0441\u044f \u043f\u0440\u0438 \u0437\u0430\u043f\u0440\u043e\u0441\u0435 main.js     gzip_http_version 1.1;     gzip_disable &quot;MSIE [1-6]\\.(?!.*SV1)&quot;      proxy_connect_timeout      60;     proxy_read_timeout         620;     proxy_send_timeout         320;     proxy_set_header        X-Real-IP       $remote_addr;     proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;      upstream backends {         #ip_hash; # \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u043c \u0435\u0441\u043b\u0438 \u043d\u0430\u043c \u043d\u0430\u0434\u043e \u0447\u0442\u043e \u0431\u044b \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c \u0432\u0441\u0435\u0433\u0434\u0430 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0430\u043b\u0441\u044f \u043a \u043e\u0434\u043d\u043e\u043c\u0443 \u0438 \u0442\u043e\u043c\u0443 \u0436\u0435 \u044d\u043a\u0437\u0435\u043c\u043f\u043b\u044f\u0440\u0443 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f         least_conn; # \u042f \u0432\u044b\u0431\u0440\u0430\u043b \u0447\u0442\u043e \u0431\u044b \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u043e\u0442\u0434\u0430\u0432\u0430\u043b\u043e\u0441\u044c \u043d\u0430\u0438\u043c\u0435\u043d\u0435\u0435 \u043d\u0430\u0433\u0440\u0443\u0436\u0435\u043d\u043d\u043e\u043c\u0443 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0443          # \u041f\u0440\u043e\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u043c \u043a\u0430\u0436\u0434\u044b\u0439 \u0438\u0437 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u043e\u0432         # \u042f \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u043b \u0438\u0445 10, \u0437\u043d\u0430\u0447\u0438\u0442 \u0442\u0443\u0442 10 \u0437\u0430\u043f\u0438\u0441\u0435\u0439         server 127.0.0.1:3000 weight=5 max_fails=3 fail_timeout=60;          server 127.0.0.1:3001 weight=5 max_fails=3 fail_timeout=60;         server 127.0.0.1:3002 weight=5 max_fails=3 fail_timeout=60;         server 127.0.0.1:3003 weight=5 max_fails=3 fail_timeout=60;         server 127.0.0.1:3004 weight=5 max_fails=3 fail_timeout=60;         server 127.0.0.1:3005 weight=5 max_fails=3 fail_timeout=60;         server 127.0.0.1:3006 weight=5 max_fails=3 fail_timeout=60;         server 127.0.0.1:3007 weight=5 max_fails=3 fail_timeout=60;         server 127.0.0.1:3008 weight=5 max_fails=3 fail_timeout=60;         server 127.0.0.1:3009 weight=5 max_fails=3 fail_timeout=60;          # \u0418\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0431\u0443\u0434\u0435\u0442 \u043e\u0442\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0442\u044c \u0432 \u0441\u043b\u0443\u0447\u0430\u0435 \u043d\u0435\u0434\u043e\u0441\u0442\u0443\u043f\u043d\u043e\u0441\u0442\u0438 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f         server 127.0.0.1:3100 backup;     }      # \u0423\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u043c \u043f\u0443\u0442\u0438 \u0434\u043e ssl \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0432. \u041c\u044b \u0438\u0445 \u0441\u043e\u0437\u0434\u0430\u0434\u0438\u043c \u0447\u0443\u0442\u044c \u043f\u043e\u0437\u0436\u0435     ssl_certificate \/etc\/letsencrypt\/live\/consulwar.ru\/fullchain.pem;     ssl_certificate_key \/etc\/letsencrypt\/live\/consulwar.ru\/privkey.pem;      ssl_dhparam \/etc\/ssl\/certs\/dhparam.pem;      ssl_stapling on;      ssl_protocols TLSv1 TLSv1.1 TLSv1.2;     ssl_prefer_server_ciphers on;     ssl_ciphers         'ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:AES:DES-CBC3-SHA:!RC4:!aNULL:!eNULL:!MD5:!EXPORT:!EXP:!LOW:!SEED:!CAMELLIA:!IDEA:!PSK:!SRP:!SSLv:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA';      server {         server_name consulwar.ru;         # \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u043c \u0441\u043b\u0443\u0448\u0430\u0442\u044c 80 \u0438 443 \u043f\u043e\u0440\u0442\u044b         listen 80;         listen 443 ssl http2;          # \u043b\u044e\u0431\u043e\u0439 \u0437\u0430\u043f\u0440\u043e\u0441 \u043f\u0435\u0440\u0435\u0430\u0434\u0440\u0435\u0441\u043e\u0432\u044b\u0432\u0430\u0435\u043c \u043d\u0430 \u043e\u0434\u043d\u043e \u0438\u0437 \u043d\u0430\u0448\u0438\u0445 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439          location \/ {             proxy_pass http:\/\/backends;              proxy_set_header Upgrade $http_upgrade;             proxy_set_header Connection $connection_upgrade;             proxy_set_header X-Forwarded-For $remote_addr;         }          # \u0421\u0442\u0430\u0442\u0438\u043a\u0443 \u0440\u0430\u0437\u0434\u0430\u0435\u043c \u0441 \u043f\u043e\u043c\u043e\u0448\u044c\u044e nginx         location ~* \\.(jpg|jpeg|gif|ico|png)$ {             root \/home\/consulwar\/app\/current\/programs\/web.browser\/app;         }          # \u041e\u0441\u043d\u043e\u0432\u043d\u043e\u0439 css \u0438 js \u0444\u0430\u0439\u043b \u043b\u0435\u0436\u0438\u0442 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e, \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u043f\u0440\u0430\u0432\u0438\u043b\u043e \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0435         location ~* &quot;^\/[a-z0-9]{40}\\.(css|js)$&quot; {             root \/home\/consulwar\/app\/current\/programs\/web.browser;         }          location ~ &quot;^\/packages&quot; {             root \/home\/consulwar\/app\/current\/programs\/web.browser;         }          # \u0412 \u0441\u043b\u0443\u0447\u0430\u0435 \u0435\u0441\u043b\u0438 \u0443 \u0432\u0430\u0441 \u043d\u0438\u043a\u0430\u043a\u0438\u0445 \u0441\u0438\u0441\u0442\u0435\u043c \u043c\u043e\u043d\u0438\u0442\u043e\u0440\u0438\u043d\u0433\u0430 \u043d\u0435 \u0441\u0442\u043e\u0438\u0442,          # \u043c\u043e\u0436\u043d\u043e \u0443\u0431\u0440\u0430\u0442\u044c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0443\u044e \u043a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u044e.         location \/nginx_status {             stub_status on;             access_log off;             allow 127.0.0.1;             deny all;         }          # \u0414\u043b\u044f \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u044f SSL \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u0430         location ~ &quot;^\/.well-known&quot; {             root \/home\/consulwar\/app\/current\/programs\/web.browser\/app\/.well-known;         }     }      include \/etc\/nginx\/conf.d\/*.conf;     client_max_body_size 128m; }<\/code><\/pre>\n<\/div>\n<\/div>\n<p>  <\/p>\n<p>\u041f\u0435\u0440\u0435\u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u043c nginx<\/p>\n<p>  <\/p>\n<pre><code class=\"bash\">sudo service nginx restart<\/code><\/pre>\n<p>  <\/p>\n<p>\u041f\u043e\u043b\u0443\u0447\u0430\u0435\u043c SSL \u043e\u0442 Let&#8217;s Enctypt.<br \/>  \u0421\u0430\u043c\u043e \u0441\u043e\u0431\u043e\u0439, \u0434\u043e\u043c\u0435\u043d \u0443\u0436\u0435 \u0434\u043e\u043b\u0436\u0435\u043d \u0431\u044b\u0442\u044c \u043f\u0440\u0438\u0432\u044f\u0437\u0430\u043d \u043a \u044d\u0442\u043e\u043c\u0443 IP \u0430\u0434\u0440\u0435\u0441\u0443.<\/p>\n<p>  <\/p>\n<pre><code class=\"bash\">sudo apt-get install letsencrypt sudo letsencrypt certonly -a webroot --webroot-path=\/home\/consulwar\/app\/current\/programs\/web.browser\/app -d consulwar.ru sudo openssl dhparam -out \/etc\/ssl\/certs\/dhparam.pem 2048 # \u0413\u0435\u043d\u0435\u0440\u0438\u0440\u0443\u0435\u043c \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0439 \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442 \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u0438<\/code><\/pre>\n<p>  <\/p>\n<p>\u0412\u0436\u0443\u0445! SSL \u0420\u0430\u0431\u043e\u0442\u0430\u0435\u0442<\/p>\n<\/div>\n<\/div>\n<p>  <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">iptables<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"bash\">sudo vi \/etc\/network\/if-up.d\/00-iptables<\/code><\/pre>\n<p>  <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">00-iptables<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code>#!\/bin\/sh iptables-restore &lt; \/etc\/firewall.conf ip6tables-restore &lt; \/etc\/firewall6.conf<\/code><\/pre>\n<\/div>\n<\/div>\n<p>  <\/p>\n<pre><code class=\"bash\">sudo chmod +x \/etc\/network\/if-up.d\/00-iptables apt-get install xtables-addons-dkms sudo vi \/etc\/firewall.conf<\/code><\/pre>\n<p>  <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">firewall.conf<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code>*filter :INPUT ACCEPT [193038:64086301] :FORWARD DROP [0:0] :OUTPUT ACCEPT [194475:60580083] -A INPUT -i lo -j ACCEPT # \u0420\u0430\u0437\u0440\u0435\u0448\u0430\u0435\u043c \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u043e\u0435 \u043e\u0431\u0449\u0435\u043d\u0438\u0435 -A INPUT -m state --state RELATED,ESTABLISHED -p all -j ACCEPT # \u0420\u0430\u0437\u0440\u0435\u0448\u0430\u0435\u043c \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0435 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f  # \u0420\u0430\u0437\u0440\u0435\u0448\u0430\u0435\u043c SSH -A INPUT -m state --state NEW -p tcp -m multiport --dport 355 -j ACCEPT  # \u0414\u043e\u0441\u0442\u0443\u043f \u043a Nginx -A INPUT -m state --state NEW -p tcp -m multiport --dport 80,443 -j ACCEPT  # \u041b\u043e\u0432\u0443\u0448\u043a\u0430 \u0434\u043b\u044f \u043a\u0440\u0438\u0432\u044b\u0445 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0439, \u0431\u0443\u0434\u0435\u0442 \u0442\u0440\u0430\u0442\u0438\u0442\u044c \u0440\u0435\u0441\u0443\u0440\u0441\u044b \u0430\u0442\u0430\u043a\u0443\u044e\u0449\u0435\u0433\u043e, \u0430 \u043d\u0435 \u0441\u0435\u0440\u0432\u0435\u0440\u0430 -A INPUT -p tcp -m tcp -j TARPIT  # \u0414\u0440\u043e\u043f\u0430\u0435\u043c \u0432\u0441\u044e \u0444\u0438\u0433\u043d\u044e -A INPUT -p udp -j DROP   COMMIT<\/code><\/pre>\n<\/div>\n<\/div>\n<p>  <\/p>\n<pre><code class=\"bash\">sudo vi \/etc\/firewall6.conf # \u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u043c \u043f\u0443\u0441\u0442\u044b\u043c \u0438\u043b\u0438 \u0437\u0430\u043f\u043e\u043b\u043d\u044f\u0435\u043c \u0447\u0442\u043e \u0432\u0430\u043c \u043d\u0430\u0434\u043e sudo iptables-restore &lt; \/etc\/firewall.conf<\/code><\/pre>\n<p>  <\/p>\n<p>itables \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043d\u044b, \u0438 \u043b\u0438\u0448\u043d\u0438\u0435 \u043f\u043e\u0440\u0442\u044b \u0437\u0430\u043a\u0440\u044b\u0442\u044b.<\/p>\n<\/div>\n<\/div>\n<p>  <\/p>\n<p>DONE!<\/p>\n<p>  <\/p>\n<p>\u0415\u0441\u043b\u0438 \u043f\u043e\u043d\u0440\u0430\u0432\u0438\u0442\u0441\u044f \u043f\u043e\u0434\u0445\u043e\u0434\/\u0444\u043e\u0440\u043c\u0430\u0442 \u2014 \u0432\u044b\u043b\u043e\u0436\u0443 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0443 \u043f\u043e\u0447\u0442\u043e\u0432\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u044b, \u043c\u043e\u043d\u0438\u0442\u043e\u0440\u0438\u043d\u0433\u0430 \u0438\u043d\u0444\u0440\u0430\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b, CI \u0447\u0435\u0440\u0435\u0437 Bamboo \u0438 \u0435\u0449\u0451 \u0440\u044f\u0434 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u044b\u0445 \u0443 \u043d\u0430\u0441 \u0432\u0435\u0449\u0435\u0439.<\/p>\n<p>  <\/p>\n<p>\u0412\u043f\u043e\u043b\u043d\u0435 \u0432\u0435\u0440\u043e\u044f\u0442\u043d\u043e \u0447\u0442\u043e \u0447\u0442\u043e-\u0442\u043e \u044f \u0443\u043f\u0443\u0441\u0442\u0438\u043b (\u043d\u043e \u0432 \u0446\u0435\u043b\u043e\u043c \u043f\u0440\u044f\u043c\u043e \u0432\u043e\u0442 \u0442\u0430\u043a \u0434\u043e\u043b\u0436\u043d\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c) \u2014 \u0441\u043f\u0440\u0430\u0448\u0438\u0432\u0430\u0439\u0442\u0435, \u0434\u043e\u043f\u043e\u043b\u043d\u044e.<br \/>  \u041d\u0430\u0434\u0435\u044e\u0441\u044c, \u0443 \u043a\u043e\u0433\u043e-\u0442\u043e \u044d\u0442\u043e \u0442\u0435\u043f\u0435\u0440\u044c \u0437\u0430\u0439\u043c\u0435\u0442 \u043c\u0435\u043d\u044c\u0448\u0435 \u0432\u0440\u0435\u043c\u0435\u043d\u0438, \u0447\u0435\u043c \u0443 \u043c\u0435\u043d\u044f \ud83d\ude42<\/p>\n<p>  <\/p>\n<p>PS: \u0423 \u043d\u0430\u0441 \u043e\u0442\u043a\u0440\u044b\u0442\u0430 <a href=\"https:\/\/moikrug.ru\/vacancies\/1000033368\">\u0432\u0430\u043a\u0430\u043d\u0441\u0438\u044f front-end \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0430<\/a>.<\/p>\n<p> \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 <a href=\"https:\/\/habrahabr.ru\/post\/327624\/\"> https:\/\/habrahabr.ru\/post\/327624\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u0417\u0434\u0440\u0430\u0432\u0441\u0442\u0432\u0443\u0439\u0442\u0435, \u043c\u0435\u043d\u044f \u0437\u043e\u0432\u0443\u0442 <a href=\"http:\/\/zelenin1.moikrug.ru\/\">\u0410\u043b\u0435\u043a\u0441\u0430\u043d\u0434\u0440 \u0417\u0435\u043b\u0435\u043d\u0438\u043d<\/a>, \u0438 \u044f <del>\u0432\u0435\u0431-\u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a<\/del> \u0441\u0438\u0441\u0430\u0434\u043c\u0438\u043d.<\/p>\n<p>  <\/p>\n<p>\u041a \u0441\u043e\u0436\u0430\u043b\u0435\u043d\u0438\u044e, \u0432\u0441\u044f \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u043e \u043f\u043e\u043b\u043d\u043e\u0446\u0435\u043d\u043d\u043e\u0439 \u0440\u0430\u0437\u0432\u0451\u0442\u043a\u0438 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u043d\u0430 MeteorJS \u0434\u043e\u0432\u043e\u043b\u044c\u043d\u043e \u0440\u0430\u0437\u0440\u043e\u0437\u043d\u0435\u043d\u043d\u0430, \u0438 \u043f\u0440\u0438\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u0432 \u0440\u0443\u0447\u043d\u0443\u044e \u0440\u0435\u0448\u0430\u0442\u044c \u043c\u0438\u043b\u043b\u0438\u043e\u043d \u0437\u0430\u0434\u0430\u0447. \u0412 \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u044f \u0445\u043e\u0447\u0443 \u0440\u0430\u0437\u043e\u0431\u0440\u0430\u0442\u044c \u0441\u0430\u043c\u0443\u044e \u0431\u0430\u0437\u043e\u0432\u0443\u044e (\u043d\u043e \u0443\u0436\u0435 \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u0443\u044e \u0434\u043b\u044f \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0439 \u0440\u0430\u0431\u043e\u0442\u044b \u0432 \u043f\u0440\u043e\u0434\u0430\u043a\u0448\u0435\u043d\u0435) \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0443 \u0441\u0435\u0440\u0432\u0435\u0440\u0430 \u0438 \u043f\u043e\u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u043f\u0440\u043e\u0446\u0435\u0441\u0441 \u0440\u0443\u0447\u043d\u043e\u0433\u043e \u0434\u0435\u043f\u043b\u043e\u044f.<\/p>\n<p>  <\/p>\n<p>\u0420\u0430\u0437\u0432\u043e\u0440\u0430\u0447\u0438\u0432\u0430\u0442\u044c \u0431\u0443\u0434\u0435\u043c \u043d\u0430 Ubuntu 16, \u043d\u043e, \u0432 \u0446\u0435\u043b\u043e\u043c, \u0441\u0445\u0435\u043c\u0430 \u043d\u0430 99% \u0441\u043e\u0432\u043f\u0430\u0434\u0430\u0435\u0442 \u0438 \u0434\u043b\u044f Debian 8.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-285731","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/285731","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=285731"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/285731\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=285731"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=285731"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=285731"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}