рдбреЙрдХрд░рд╕рд╣ рдПрдХрд╛рдЪ рд╕рд░реНрд╡реНрд╣рд░рд╡рд░ рдиреЗрдХреНрд╕реНрдЯрдХреНрд▓реЙрдб + рдУрдиреНрд▓реАрдСрдлрд┐рд╕ рд╕реЗрдЯ рдХрд░рдд рдЖрд╣реЗ

рдЕрд╣реЛ рд╣рд╛рдмреНрд░! рд▓реЗрдЦрд╛рдЪрд╛ рдЕрдиреБрд╡рд╛рдж рдореА рддреБрдордЪреНрдпрд╛ рд▓рдХреНрд╖рд╛рдд рдЖрдгреВрди рджреЗрдд рдЖрд╣реЗ "рдбреЙрдХрд░рд╕рд╣ рдПрдХрд╛рдЪ рд╕рд░реНрд╡реНрд╣рд░рд╡рд░ NextCloud рдЖрдгрд┐ ONLYOFFICE рд╕реЗрдЯ рдХрд░рдгреЗ".

рдЯреЗрдХ-рдУрд░рд┐рдПрдВрдЯреЗрдб рд▓реЛрдХрд╛рдВрдЪреНрдпрд╛ рдЬреАрд╡рдирд╛рдд Google рдбреЙрдХреНрд╕ рдЖрдгрд┐ рдХреНрд▓рд╛рдЙрдб рд╕реНрдЯреЛрд░реЗрдЬ рд╕рд╛рд░рдЦреНрдпрд╛ рдСрдирд▓рд╛рдЗрди рдСрдлрд┐рд╕ рд╕реВрдЯрдЪреЗ рдореВрд▓реНрдп рдХрдореА рд▓реЗрдЦрдгреЗ рдХрдареАрдг рдЖрд╣реЗ. рддрдВрддреНрд░рдЬреНрдЮрд╛рди рдЗрддрдХреЗ рд╡реНрдпрд╛рдкрдХ рдЭрд╛рд▓реЗ рдЖрд╣реЗ рдХреА, рдСрдлрд┐рд╕ рдЕреЕрдкреНрд▓рд┐рдХреЗрд╢рдиреНрд╕рдЪреНрдпрд╛ рдмрд╛рдЬрд╛рд░рдкреЗрдареЗрдд рджреАрд░реНрдШрдХрд╛рд│ рд╡рд░реНрдЪрд╕реНрд╡ рдЧрд╛рдЬрд╡рдгрд╛рд▒реНрдпрд╛ рдорд╛рдпрдХреНрд░реЛрд╕реЙрдлреНрдЯрдиреЗ рдЕрд▓реАрдХрдбреЗрдЪ Office 365 рд╡реЗрдм рдЕреЕрдкреНрд▓рд┐рдХреЗрд╢рди рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдгреНрдпрд╛рд╡рд░ рдЖрдгрд┐ рд╡рд╛рдкрд░рдХрд░реНрддреНрдпрд╛рдВрдирд╛ рддреНрдпрд╛рдВрдЪреНрдпрд╛ рд╕реНрд╡рдд:рдЪреНрдпрд╛ рд╕реЗрд╡рд╛ рд╡рд╛рдкрд░рдгреНрдпрд╛рд╕рд╛рдареА рд╕рдмрд╕реНрдХреНрд░рд┐рдкреНрд╢рди рдореЙрдбреЗрд▓рдХрдбреЗ рдЬрд╛рдгреНрдпрд╛рд╕рд╛рдареА рдкреНрд░рд╡реГрддреНрдд рдХрд░рдгреНрдпрд╛рд╡рд░ рд▓рдХреНрд╖ рдХреЗрдВрджреНрд░рд┐рдд рдХреЗрд▓реЗ рдЖрд╣реЗ. рдЖрдореНрд╣реА рдорд╛рдВрдЬрд░ рдЕрдВрддрд░реНрдЧрдд рддреНрдпрд╛рдВрдЪреНрдпрд╛ рд╕реНрд╡рдд: рдЪреНрдпрд╛ рд╕реНрдЯреЛрд░реЗрдЬ рд╕реНрдерд╛рдкрд┐рдд рдЖрдгрд┐ рдХреЙрдиреНрдлрд┐рдЧрд░ рдХрд░рдгреНрдпрд╛рдЪреНрдпрд╛ рдкреНрд░рдХреНрд░рд┐рдпреЗрдд рд╕реНрд╡рд╛рд░рд╕реНрдп рдЕрд╕рд▓реЗрд▓реНрдпрд╛рдВрдирд╛ рдЖрдордВрддреНрд░рд┐рдд рдХрд░рддреЛ.

рдХрд╛рд╣реА рдХрд╛рд│рд╛рдкреВрд░реНрд╡реА рдЖрдореНрд╣реА рдХреНрд▓рд╛рдЙрдб рд╕реНрдЯреЛрд░реЗрдЬ рд╕реЛрд▓реНрдпреВрд╢рдиреНрд╕ рдЖрдгрд┐ рдУрдкрди рд╕реЛрд░реНрд╕ рд╡реЗрдм рдСрдлрд┐рд╕ рд╕реВрдЯреНрд╕ рдкрд╛рд╣рд┐рд▓реЗ рдЬреЗ рдорд╛рдпрдХреНрд░реЛ-рдПрдВрдЯрд░рдкреНрд░рд╛рдЗрдЭрдордзреНрдпреЗ рд╡рд╛рдкрд░рдгреНрдпрд╛рд╕рд╛рдареА рд╕рд╣рдЬрдкрдгреЗ рддреИрдирд╛рдд рдХреЗрд▓реЗ рдЬрд╛рдК рд╢рдХрддрд╛рдд. рд╕рд░реНрд╡ рдХрд╛рдЧрджрдкрддреНрд░реЗ рдСрдирд▓рд╛рдЗрди рдареЗрд╡рдгреНрдпрд╛рдЪреА рдореБрдЦреНрдп рдкреНрд░реЗрд░рдгрд╛ рдореНрд╣рдгрдЬреЗ рдХрд╛рдЧрджрдкрддреНрд░реЗ рдХрдореАрдд рдХрдореА рдареЗрд╡рдгреЗ рдЖрдгрд┐ рд╡реНрдпрд╡рд╣рд╛рд░рд╛рдВрдЪреЗ рдкреНрд░рдорд╛рдг рдХрдореА рдЕрд╕реВрдирд╣реА рдЪрд╛рдВрдЧрд▓реНрдпрд╛ рд╡реНрдпрд╡рд╕рд╛рдп рдкрджреНрдзрддреА рд▓рд╛рдЧреВ рдХрд░рдгреЗ. рдирд╛рдгреНрдпрд╛рдЪреА рджреБрд╕рд░реА рдмрд╛рдЬреВ рдЕрд╢реА рдЖрд╣реЗ рдХреА рд╣реА рд╕реЗрд╡рд╛ рджреЗрдгреНрдпрд╛рд╕рд╛рдареА рдХреНрд▓рд╛рдЙрдб рд╕рд░реНрд╡реНрд╣рд░ рднрд╛рдбреНрдпрд╛рдиреЗ рдШреЗрдгреЗ рд╣реЗ рдереЗрдЯ рдПрдВрдЯрд░рдкреНрд░рд╛рдЗрдЭрдЪреНрдпрд╛ рдЖрд╡рд╛рд░рд╛рдд рд╕рд╛рдард╡рдгреНрдпрд╛рдкреЗрдХреНрд╖рд╛ рдХрдореА рд╕реБрд░рдХреНрд╖рд┐рдд рдЖрд╣реЗ, рдХрд╛рд░рдг рддреБрдордЪреНрдпрд╛рдХрдбреЗ рддреБрдордЪреНрдпрд╛ рд╕рд░реНрд╡реНрд╣рд░ рдХрд┐рдВрд╡рд╛ рд░рд╣рджрд╛рд░реАрд╡рд░ рдкреНрд░рддреНрдпрдХреНрд╖ рдкреНрд░рд╡реЗрд╢рд╛рдЪреЗ рдСрдбрд┐рдЯ рдХрд░рдгреНрдпрд╛рдЪреЗ рдХреЛрдгрддреЗрд╣реА рд╕рд╛рдзрди рдирд╛рд╣реА. рдореНрд╣рдгреВрди, рдПрдВрдб-рдЯреВ-рдПрдВрдб рдПрдиреНрдХреНрд░рд┐рдкреНрд╢рди рдЖрдгрд┐ рдУрдкрди рд╕реЛрд░реНрд╕ рд╕реЙрдлреНрдЯрд╡реЗрдЕрд░ рджреЗрдЦреАрд▓ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ.

рдУрдкрди рд╕реЛрд░реНрд╕ рд╕реЛрд▓реНрдпреВрд╢рдиреНрд╕рдмрджреНрджрд▓ рд╕рд░реНрд╡ рдЙрдкрд▓рдмреНрдз рдорд╛рд╣рд┐рддреА рд╡рд┐рдЪрд╛рд░рд╛рдд рдШреЗрдКрди, рдЖрдореНрд╣рд╛рд▓рд╛ рдХреНрд▓рд╛рдЙрдб рд╕реНрдЯреЛрд░реЗрдЬрд╕рд╛рдареА рд╡рд┐рдХрд╕рд┐рдд рдХреЗрд▓реЗрд▓реЗ рджреЛрди рд╕рдХреНрд░рд┐рдп рдкреНрд░рдХрд▓реНрдк (рдЧреЗрд▓реНрдпрд╛ 12 рдорд╣рд┐рдиреНрдпрд╛рдВрдкрд╛рд╕реВрди рдЧрд┐рдЯ рд░рд┐рдкреЙрдЭрд┐рдЯрд░реАрдордзреНрдпреЗ рдХрдорд┐рдЯрд╕рд╣) рдЖрдврд│рд▓реЗ: рдиреЗрдХреНрд╕реНрдЯрдХреНрд▓рд╛рдЙрдб рдЖрдгрд┐ рдУрд╡рдирдХреНрд▓рд╛рдЙрдб, рдЖрдгрд┐ рдПрдХрдореЗрд╡ рд╕рдХреНрд░рд┐рдп ONLYOFFICE рдСрдлрд┐рд╕ рд╕реВрдЯ. рджреЛрдиреНрд╣реА рдХреНрд▓рд╛рдЙрдб рд╕реНрдЯреЛрд░реЗрдЬ рдЯреВрд▓реНрд╕рдордзреНрдпреЗ рдЕрдВрджрд╛рдЬреЗ рд╕рдорд╛рди рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдЖрд╣реЗ рдЖрдгрд┐ рдиреЗрдХреНрд╕реНрдЯрдХреНрд▓рд╛рдЙрдб рдирд┐рд╡рдбрдгреНрдпрд╛рдЪрд╛ рдирд┐рд░реНрдгрдп рд╣рд╛ рд╕реЙрдлреНрдЯрд╡реЗрдЕрд░рд╕рд╣ рд╡рд╛рдкрд░рдХрд░реНрддреНрдпрд╛рдЪреНрдпрд╛ рд╕реЛрдпреАрд╕реНрдХрд░ рд╕рдВрд╡рд╛рджрд╛рд╕рд╛рдареА ONLYOFFICE рд╕рд╣ рд╕рдорд╛рдХрд▓рд┐рдд рдХреЗрд▓рд╛ рдЬрд╛рдК рд╢рдХрддреЛ рдпрд╛ рдкреБрд░рд╛рд╡реНрдпрд╛рдЪреНрдпрд╛ рдЕрд╕реНрддрд┐рддреНрд╡рд╛рд╡рд░ рдЖрдзрд╛рд░рд┐рдд рд╣реЛрддрд╛. рддрдерд╛рдкрд┐, рдЬреЗрд╡реНрд╣рд╛ рдЖрдореНрд╣реА рд╕реЗрд╡рд╛ рдЙрдкрдпреЛрдЬрд┐рдд рдХрд░рдгреНрдпрд╛рд╕ рд╕реБрд░реБрд╡рд╛рдд рдХреЗрд▓реА, рддреЗрд╡реНрд╣рд╛ рд╡рд░реАрд▓ рд╕реЗрд╡рд╛ рдПрдХрддреНрд░рд┐рдд рдХрд░рдгреНрдпрд╛рдЪреНрдпрд╛ рдорд╛рд╣рд┐рддреАрдЪрд╛ рдЕрднрд╛рд╡ рд╕реНрдкрд╖реНрдЯ рдЭрд╛рд▓рд╛. рдХрд╕реЗ рд╕рдорд╛рдХрд▓рд┐рдд рдХрд░рд╛рдпрдЪреЗ рдпрд╛рдмрджреНрджрд▓ рдЖрдореНрд╣рд╛рд▓рд╛ 3 рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рд╡реНрд╣рд┐рдбрд┐рдУ рд╕рд╛рдкрдбрд▓реЗ:

рддреАрдирдкреИрдХреА рдПрдХрд╛рд╣реА рд╡реНрд╣рд┐рдбрд┐рдУрдиреЗ рдиреЗрдХреНрд╕реНрдЯрдХреНрд▓рд╛рдЙрдб рд╕рд╛рд░рдЦреНрдпрд╛рдЪ рднреМрддрд┐рдХ рд╕рд░реНрд╡реНрд╣рд░рд╡рд░ ONLYOFFICE рджрд╕реНрддрдРрд╡рдЬ рд╕реЗрд╡рд╛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдгреНрдпрд╛рдЪреНрдпрд╛ рдкреНрд░рд╢реНрдирд╛рдЪреЗ рдЙрддреНрддрд░ рджрд┐рд▓реЗ рдирд╛рд╣реА. рддреНрдпрд╛рдРрд╡рдЬреА, рддреНрдпрд╛рдВрдиреА рдкреГрдердХреНрдХрд░рдг рддрдВрддреНрд░ рд╡рд╛рдкрд░рд▓реЗ рдЬрд╕реЗ рдХреА рджрд╕реНрддрдРрд╡рдЬ рд╕реЗрд╡рд╛ API рд╕рд╛рдареА рд╕реНрд╡рддрдВрддреНрд░ рдкреЛрд░реНрдЯ рд╡рд╛рдкрд░рдгреЗ. рджреБрд╕рд░рд╛ рд╕реБрдЪрд╡рд▓реЗрд▓рд╛ рдкрд░реНрдпрд╛рдп рдореНрд╣рдгрдЬреЗ рджрд╕реНрддрдРрд╡рдЬ рд╕реЗрд╡реЗрд╕рд╛рдареА рд╕реНрд╡рддрдВрддреНрд░ рд╕рд░реНрд╡реНрд╣рд░ рддреИрдирд╛рдд рдХрд░рдгреЗ, рдкреНрд░рд╡реЗрд╢ рдХреА (рдбреЗрдЯрд╛ рдХреНрд▓рд╛рдЙрдбрдордзреНрдпреЗ рдкреНрд░рд╡реЗрд╢ рдХрд░рдгреНрдпрд╛рдЪреНрдпрд╛ рдЕрдзрд┐рдХрд╛рд░рд╛рдЪреА рдкреБрд╖реНрдЯреА рдХрд░рдгрд╛рд░реА рдкреВрд░реНрд╡-рдЬреНрдЮрд╛рдд рдНрдХреНрд╕реЗрд╕ рдХреА) рдЖрдгрд┐ TLS рдкреНрд░рдорд╛рдгрдкрддреНрд░реЗ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рджрд╕реНрддрдРрд╡рдЬ рд╕реЗрд╡реЗрдордзреНрдпреЗ рддрдпрд╛рд░ рдХреЗрд▓реЗрд▓реЗ nginx рдЙрджрд╛рд╣рд░рдг рд╡реНрдпрдХреНрддрд┐рдЪрд▓рд┐рддрдкрдгреЗ рдХреЙрдиреНрдлрд┐рдЧрд░ рдХрд░рдгреЗ. рд╡рд░реАрд▓ рдкрджреНрдзрддреА рд╕реБрд░рдХреНрд╖рд┐рдд рдирд╛рд╣реАрдд рдЖрдгрд┐ рдкреБрд░реЗрд╢рд╛ рдкреНрд░рднрд╛рд╡реА рдирд╛рд╣реАрдд рдЕрд╕реЗ рдорд╛рдирд▓реЗ рдЬрд╛рдд рд╣реЛрддреЗ, рдореНрд╣рдгреВрди рдЖрдореНрд╣реА рдиреЗрдХреНрд╕реНрдЯрдХреНрд▓рд╛рдЙрдб, ONLYOFFICE рдЖрдгрд┐ рдПрдХ рд╕рд╛рдорд╛рдиреНрдп nginx рдПрдХрддреНрд░рд┐рдд рдХреЗрд▓реЗ, рдЬреЗ рдбреЙрдХрд░-рдХрдВрдкреЛрдЬ рд╡рд╛рдкрд░реВрди рдбреЛрдореЗрди рдирд╛рд╡рд╛рдВрджреНрд╡рд╛рд░реЗ рд╡рд┐рдирдВрддреНрдпрд╛ рд╡реЗрдЧрд│реЗ рдХрд░рддрд╛рдд. рддреЗ рдХрд╕реЗ рдХрд░рд╛рд╡реЗ рдпрд╛рдмрджреНрджрд▓ рдЪрд░рдг-рджрд░-рдЪрд░рдг рдорд╛рд╣рд┐рддреА рдпреЗрдереЗ рдЖрд╣реЗ.

рдкрд╛рдпрд░реА 1: nginx рдХрдВрдЯреЗрдирд░

рд╣рд╛ рдПрдХ рдЕрддрд┐рд╢рдп рд╕реЛрдкрд╛ рд╕реЗрдЯрдЕрдк рдЖрд╣реЗ, рдкрд░рдВрддреБ рд░рд┐рд╡реНрд╣рд░реНрд╕ рдкреНрд░реЙрдХреНрд╕реА рд╕рд░реНрд╡реНрд╣рд░ рдХреЙрдиреНрдлрд┐рдЧрд░ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдпрд╛ рдЪрд░рдгрд╛рдд рд╕рд░реНрд╡рд╛рдд рдЬрд╛рд╕реНрдд рдХрд╛рдо рдХрд░рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ. рдЖрдореНрд╣реА рдкреНрд░рдердо nginx: рд╕реНрдерд┐рд░ рдкреНрд░рддрд┐рдореЗрд╕рд╛рдареА рдбреЙрдХрд░-рдХрдВрдкреЛрдЬ рдХреЙрдиреНрдлрд┐рдЧрд░реЗрд╢рди рддрдпрд╛рд░ рдХреЗрд▓реЗ.

version: '2'
services:
  nginx:
    image : nginx:stable
    restart: always
    volumes:
      - ./nginx/nginx-vhost.conf:/etc/nginx/conf.d/default.conf:ro
      - ./nginx/certificates:/mycerts 
    ports:
      - 443:443
      - 80:80

рд╣реЗ рдкреЛрд░реНрдЯреНрд╕ 80 рдЖрдгрд┐ 443 рд▓реЛрдХрд╛рдВрд╕рд╛рдареА рдЦреБрд▓реЗ рдЕрд╕рд▓реЗрд▓реЗ рдХрдВрдЯреЗрдирд░ рддрдпрд╛рд░ рдХрд░рддреЗ, nginx/nginx-vhost.conf рд╡рд░ рдХреЙрдиреНрдлрд┐рдЧрд░реЗрд╢рди рдореЕрдк рдХрд░рддреЗ рдЖрдгрд┐ рд╕реНрд╡рдпрдВ-рд╕реНрд╡рд╛рдХреНрд╖рд░реА рдХреЗрд▓реЗрд▓реЗ рдкреНрд░рдорд╛рдгрдкрддреНрд░реЗ рдореНрд╣рдгреВрди рдХрд┐рдВрд╡рд╛ /nginx/certificates рдордзреНрдпреЗ Let's encrypt's certbot рд╡рд╛рдкрд░реВрди рддрдпрд╛рд░ рдХреЗрд▓реЗрд▓реНрдпрд╛ рдкреНрд░рдорд╛рдгрдкрддреНрд░рд╛рдВрд╕рд╛рдареА рд╕реНрдЯреЛрдЕрд░ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддреЗ. рдпрд╛ рд╕реНрдерд╛рдирд╛рдордзреНрдпреЗ office.yourdomain.com рдЖрдгрд┐ cloud.yourdomain.com рд╕рд╛рдареА рдлреЛрд▓реНрдбрд░ рдЕрд╕рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ, рдЕрдиреБрдХреНрд░рдореЗ рдкреНрд░рдорд╛рдгрдкрддреНрд░ рд╢реГрдВрдЦрд▓рд╛ рдЖрдгрд┐ рд╕рд░реНрд╡реНрд╣рд░ рдЦрд╛рдЬрдЧреА рдХреАрд╕рд╛рдареА рдкреНрд░рддреНрдпреЗрдХрд╛рдордзреНрдпреЗ fullchain1.pem рдЖрдгрд┐ privkey1.pem рдлрд╛рдпрд▓реА рдЖрд╣реЗрдд. рд╕реНрд╡-рд╕реНрд╡рд╛рдХреНрд╖рд░реА рдХреЗрд▓реЗрд▓реЗ рдкреНрд░рдорд╛рдгрдкрддреНрд░ рдХрд╕реЗ рддрдпрд╛рд░ рдХрд░рд╛рд╡реЗ рдпрд╛рдмрджреНрджрд▓ рддреБрдореНрд╣реА рдпреЗрдереЗ рдЕрдзрд┐рдХ рд╡рд╛рдЪреВ рд╢рдХрддрд╛. www.akadia.com/services/ssh_test_certificate.html (.key рдЖрдгрд┐ .crt рддреЗ .pem рдЪреЗ рдирд╛рд╡ рдмрджрд▓рдгреЗ nginx рд╕рд╛рдареА рдлрд╛рдЗрд▓ рд╕рдВрд░рдЪрдирд╛ рд░реВрдкрд╛рдВрддрд░рд┐рдд рди рдХрд░рддрд╛ рдХрд╛рд░реНрдп рдХрд░рддреЗ).

рддреНрдпрд╛рдирдВрддрд░, рдЖрдореНрд╣реА vhost рдлрд╛рдЗрд▓ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХреЗрд▓реА. рдЖрдореНрд╣реА рдкреНрд░рдердо рдкреЛрд░реНрдЯ 80 рдЪреЗ рд╡рд░реНрддрди https рд╡рд░ рд╕рд╛рдзреЗ рдкреБрдирд░реНрдирд┐рд░реНрджреЗрд╢рди рдореНрд╣рдгреВрди рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддреЛ, рдХрд╛рд░рдг рдЖрдореНрд╣реА рдХреЛрдгрддреНрдпрд╛рд╣реА http рд░рд╣рджрд╛рд░реАрд▓рд╛ рдкрд░рд╡рд╛рдирдЧреА рджреЗрдК рдЗрдЪреНрдЫрд┐рдд рдирд╛рд╣реА

server {
    listen 80;
    location / {
        return 301
            https://$host$request_uri;
    }
}

рддреНрдпрд╛рдирдВрддрд░ рдЖрдореНрд╣реА рдЖрдордЪреНрдпрд╛ рд╕реЗрд╡рд╛рдВрд╕рд╛рдареА рдкреЛрд░реНрдЯ 443 рд╡рд░ рджреЛрди рдЖрднрд╛рд╕реА рд╕рд░реНрд╡реНрд╣рд░ рддрдпрд╛рд░ рдХреЗрд▓реЗ:

server {
    listen 443 ssl;
    server_name cloud.yourdomain.com ;
    root /var/www/html;

    ssl_certificate     /mycerts/cloud.yourdomain.com/fullchain1.pem;
    ssl_certificate_key /mycerts/cloud.yourdomain.com/privkey1.pem;
    ssl_protocols       TLSv1 TLSv1.1 TLSv1.2;
    ssl_ciphers         HIGH:!aNULL:!MD5;

    location / {
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_set_header Host $http_host;
        proxy_redirect off;
        proxy_pass http://app:80;
    }
}
server {
    listen 443 ssl;
    server_name office.yourdomain.com;
    root /var/www/html;

    ssl_certificate     /mycerts/office.yourdomain.com/fullchain1.pem;
    ssl_certificate_key /mycerts/office.yourdomain.com/privkey1.pem;
    ssl_protocols       TLSv1 TLSv1.1 TLSv1.2;
    ssl_ciphers         HIGH:!aNULL:!MD5;

    location / {
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_set_header Host $http_host;
        proxy_redirect off;
        proxy_pass http://onlyoffice:80;
    }
}

рдкрд╛рдпрд░реА 2: рджрд╕реНрддрдРрд╡рдЬ рд╕реЗрд╡рд╛

рдЖрддрд╛ рдЖрдореНрд╣рд╛рд▓рд╛ рдЖрдордЪреНрдпрд╛ docker-compose.yml рдордзреНрдпреЗ рджрд╕реНрддрдРрд╡рдЬ рд╕реЗрд╡рд╛ рдХрдВрдЯреЗрдирд░ рдЬреЛрдбрдгреНрдпрд╛рдЪреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдЖрд╣реЗ. рдпреЗрдереЗ рдХреЙрдиреНрдлрд┐рдЧрд░ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рд╡рд┐рд╢реЗрд╖ рдХрд╛рд╣реАрд╣реА рдирд╛рд╣реА.

services:
...
  onlyoffice:
    image: onlyoffice/documentserver
    restart: always

рдкрд░рдВрддреБ рджрд╕реНрддрдРрд╡рдЬ рд╕реЗрд╡реЗрд╢реА nginx рдХрдВрдЯреЗрдирд░ рд▓рд┐рдВрдХ рдХрд░рдгреНрдпрд╛рд╕ рд╡рд┐рд╕рд░реВ рдирдХрд╛:

services:
...
  nginx:
    ...
    depends_on:
      - onlyoffice

рдкрд╛рдпрд░реА 3: NextCloud

рдкреНрд░рдердо, рдирд╡реАрди рд╕реЗрд╡рд╛ рдЬреЛрдбрд╛:

services:
...
  db:
    image: mariadb
    command: --transaction-isolation=READ-COMMITTED --binlog-format=ROW
    restart: always
    volumes:
      - /data/nextcloud_db:/var/lib/mysql
    environment:
      - MYSQL_ROOT_PASSWORD=#put some password here
      - MYSQL_PASSWORD=#put some other password here
      - MYSQL_DATABASE=nextcloud
      - MYSQL_USER=nextcloud
  app:
    image: nextcloud
    depends_on:
      - db
      - onlyoffice
    restart: always

рдЖрдгрд┐ nginx рд▓рд╛ рд▓рд┐рдВрдХ рдЬреЛрдбрд╛:

services:
...
  nginx:
    ...
    depends_on:
      - app 

рдЖрддрд╛ рдХрдВрдЯреЗрдирд░ рд▓реЛрдб рдХрд░рдгреНрдпрд╛рдЪреА рд╡реЗрд│ рдЖрд▓реА рдЖрд╣реЗ.

docker-compose up -d  

рдХрд╛рд╣реА рдХрд╛рд│рд╛рдирдВрддрд░, nginx рддреБрдореНрд╣рд╛рд▓рд╛ рдиреЗрдХреНрд╕реНрдЯрдХреНрд▓рд╛рдЙрдб рдлреНрд░рдВрдЯ рдПрдВрдбрд╡рд░ рдкреБрдирд░реНрдирд┐рд░реНрджреЗрд╢рд┐рдд рдХрд░рдгреНрдпрд╛рд╕ рдкреНрд░рд╛рд░рдВрдн рдХрд░реЗрд▓, рдЬреЗ рдбреАрдлреЙрд▓реНрдЯ рдХреЙрдиреНрдлрд┐рдЧрд░реЗрд╢рди рдкреГрд╖реНрда рдЖрд╣реЗ. рддреБрдореНрд╣рд╛рд▓рд╛ рддреБрдордЪреНрдпрд╛ рдкрд╣рд┐рд▓реНрдпрд╛ рдкреНрд░рд╢рд╛рд╕рдХ рд╡рд╛рдкрд░рдХрд░реНрддреНрдпрд╛рд╕рд╛рдареА рд╡рд╛рдкрд░рдХрд░реНрддрд╛рдирд╛рд╡ рдЖрдгрд┐ рдкрд╛рд╕рд╡рд░реНрдб рдЖрдгрд┐ рддреБрдореНрд╣реА docker-compose.yml рдордзреНрдпреЗ рдкреНрд░рджрд╛рди рдХреЗрд▓реЗрд▓реА рдбреЗрдЯрд╛рдмреЗрд╕ рдХреНрд░реЗрдбреЗрдиреНрд╢рд┐рдпрд▓реНрд╕ рдПрдВрдЯрд░ рдХрд░рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ рдПрдХрджрд╛ рд╕реЗрдЯрдЕрдк рдкреВрд░реНрдг рдЭрд╛рд▓реНрдпрд╛рд╡рд░, рддреБрдореНрд╣реА рд▓реЙрдЧ рдЗрди рдХрд░рдгреНрдпрд╛рд╕ рд╕рдХреНрд╖рдо рдЕрд╕рд╛рд▓. рдЖрдордЪреНрдпрд╛ рдмрд╛рдмрддреАрдд, рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдЬрд╡рд│рдЬрд╡рд│ рдПрдХ рдорд┐рдирд┐рдЯ рд▓рд╛рдЧрд▓рд╛ рдЖрдгрд┐ рдЖрдореНрд╣реА рдХреНрд▓рд╛рдЙрдб рд╕реЗрд╡реЗрдордзреНрдпреЗ рд▓реЙрдЧ рдЗрди рдХрд░рдгреНрдпрд╛рдкреВрд░реНрд╡реА рд▓реЙрдЧрд┐рди рдкреГрд╖реНрда рдЕрддрд┐рд░рд┐рдХреНрдд рд░рд┐рдлреНрд░реЗрд╢ рдХрд░рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ.

NextCloud рд╕реЗрд╡рд╛ рд╕реЗрдЯрд┐рдВрдЧреНрдЬ рд╡рд┐рдВрдбреЛрдбреЙрдХрд░рд╕рд╣ рдПрдХрд╛рдЪ рд╕рд░реНрд╡реНрд╣рд░рд╡рд░ рдиреЗрдХреНрд╕реНрдЯрдХреНрд▓реЙрдб + рдУрдиреНрд▓реАрдСрдлрд┐рд╕ рд╕реЗрдЯ рдХрд░рдд рдЖрд╣реЗ

рдЪрд░рдг 4: рдиреЗрдХреНрд╕реНрдЯрдХреНрд▓рд╛рдЙрдб рдЖрдгрд┐ рдУрдиреНрд▓реАрдСрдлрд┐рд╕ рдХрдиреЗрдХреНрдЯ рдХрд░рдгреЗ

рдпрд╛ рдЪрд░рдгрд╛рд╡рд░, рддреБрдореНрд╣рд╛рд▓рд╛ рдиреЗрдХреНрд╕реНрдЯрдХреНрд▓рд╛рдЙрдбрд╕рд╛рдареА ре▓рдкреНрд▓рд┐рдХреЗрд╢рди рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░рд╛рд╡реЗ рд▓рд╛рдЧреЗрд▓, рдЬреЛ ONLYOFFICE рдХрд╛рд░реНрдпрдХреНрд╖рдорддреЗрд▓рд╛ рдЬреЛрдбрддреЛ. рдЪрд▓рд╛ рдореЗрдиреВрдЪреНрдпрд╛ рд╡рд░рдЪреНрдпрд╛ рдЙрдЬрд╡реНрдпрд╛ рдХреЛрдкрд░реНрдпрд╛рдд рдЕрд╕рд▓реЗрд▓реНрдпрд╛ рдНрдкреНрд▓рд┐рдХреЗрд╢рди рдХрдВрдЯреНрд░реЛрд▓ рдкреЕрдиреЗрд▓рд╕рд╣ рдкреНрд░рд╛рд░рдВрдн рдХрд░реВрдпрд╛. ONLYOFFICE рдЕреЕрдк рд╢реЛрдзрд╛ (рдСрдлрд┐рд╕ рдЖрдгрд┐ рдордЬрдХреВрд░ рдЕрдВрддрд░реНрдЧрдд рдХрд┐рдВрд╡рд╛ рд╢реЛрдз рд╡рд╛рдкрд░реВрди), рддреЗ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рд╛ рдЖрдгрд┐ рд╕рдХреНрд░рд┐рдп рдХрд░рд╛.

рддреНрдпрд╛рдирдВрддрд░ рд╡рд░рдЪреНрдпрд╛ рдЙрдЬрд╡реНрдпрд╛ рдХреЛрдкрд░реНтАНрдпрд╛рддреАрд▓ рдореЗрдиреВрджреНрд╡рд╛рд░реЗ рд╕реЗрдЯрд┐рдВрдЧреНрдЬрдХрдбреЗ рдЬрд╛ рдЖрдгрд┐ рддреБрдореНрд╣рд╛рд▓рд╛ рдбрд╛рд╡реНрдпрд╛ рдореЗрдиреВрдордзреНрдпреЗ ONLYOFFICE рдЖрдпрдЯрдо рд╕рд╛рдкрдбрд▓рд╛ рдкрд╛рд╣рд┐рдЬреЗ. рддреНрдпрд╛рдд рдЬрд╛. рдЦрд╛рд▓реА рджрд░реНрд╢рд╡рд┐рд▓реНрдпрд╛рдкреНрд░рдорд╛рдгреЗ рддреБрдореНрд╣рд╛рд▓рд╛ рдкрддреНрддреЗ рдиреЛрдВрджрдгреА рдХрд░рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ.

рдПрдХрддреНрд░реАрдХрд░рдг рдЕрдиреБрдкреНрд░рдпреЛрдЧ рд╕реЗрдЯрд┐рдВрдЧреНрдЬрдбреЙрдХрд░рд╕рд╣ рдПрдХрд╛рдЪ рд╕рд░реНрд╡реНрд╣рд░рд╡рд░ рдиреЗрдХреНрд╕реНрдЯрдХреНрд▓реЙрдб + рдУрдиреНрд▓реАрдСрдлрд┐рд╕ рд╕реЗрдЯ рдХрд░рдд рдЖрд╣реЗ

рдмреНрд░рд╛рдЙрдЭрд░рдордзреНрдпреЗ рдЪрд╛рд▓реВ рдЕрд╕рд▓реЗрд▓реНрдпрд╛ рдНрдкреНрд▓рд┐рдХреЗрд╢рдирдордзреВрди рдереЗрдЯ рдХрд╛рд╣реА js рдЖрдгрд┐ css рдлрд╛рдпрд▓реАрдВрд╢реА рд▓рд┐рдВрдХ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдкрд╣рд┐рд▓рд╛ рдкрддреНрддрд╛ рд╡рд╛рдкрд░рд▓рд╛ рдЬрд╛рддреЛ (рдПрдирдЬреАрдПрдирдПрдХреНрд╕рджреНрд╡рд╛рд░реЗ ONLYOFFICE рд╕реЗрд╡реЗрдордзреНрдпреЗ рдкреНрд░рд╡реЗрд╢ рдЙрдШрдбрдгреНрдпрд╛рд╕рд╛рдареА рдЖрдкрд▓реНрдпрд╛рд▓рд╛ рд╣реЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ). рдЧреБрдкреНрдд рдХреА рд╡рд╛рдкрд░рд▓реА рдЬрд╛рдд рдирд╛рд╣реА рдХрд╛рд░рдг рдЖрдордЪрд╛ рдкрд░реНрд╕рд┐рд╕реНрдЯрдВрдЯ рдСрдереЗрдВрдЯрд┐рдХреЗрд╢рди рдХреА рдкреЗрдХреНрд╖рд╛ рдбреЙрдХрд░ рдЖрдпрд╕реЛрд▓реЗрд╢рди рд▓реЗрдпрд░рд╡рд░ рдЬрд╛рд╕реНрдд рд╡рд┐рд╢реНрд╡рд╛рд╕ рдЖрд╣реЗ. ONLYOFFICE API рд╢реА рдереЗрдЯ рдХрдиреЗрдХреНрдЯ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдиреЗрдХреНрд╕реНрдЯрдХреНрд▓рд╛рдЙрдб рдХрдВрдЯреЗрдирд░рджреНрд╡рд╛рд░реЗ рддрд┐рд╕рд░рд╛ рдкрддреНрддрд╛ рд╡рд╛рдкрд░рд▓рд╛ рдЬрд╛рддреЛ рдЖрдгрд┐ рддреЛ рдбреЙрдХрд░рдХрдбреВрди рдбреАрдлреЙрд▓реНрдЯ рдЕрдВрддрд░реНрдЧрдд рд╣реЛрд╕реНрдЯрдирд╛рд╡ рд╡рд╛рдкрд░рддреЛ. рдмрд░рдВ, рд╢реЗрд╡рдЯрдЪрдВ рдлреАрд▓реНрдб рд╡рд╛рдкрд░рд▓рдВ рдЬрд╛рддрдВ рдЬреЗрдгреЗрдХрд░реБрди ONLYOFFICE рдиреЗрдХреНрд╕реНрдЯрдХреНрд▓рд╛рдЙрдб API рд▓рд╛ рдмрд╛рд╣реНрдп IP рдкрддреНрддрд╛ рдХрд┐рдВрд╡рд╛ рдЕрдВрддрд░реНрдЧрдд рдбреЙрдХрд░ рдкрддреНрддрд╛ рд╡рд╛рдкрд░реВрди рд╡рд┐рдирдВрддреА рдХрд░реВ рд╢рдХреЗрд▓ рдЬрд░ рддреБрдореНрд╣реА рдбреЙрдХрд░ рдиреЗрдЯрд╡рд░реНрдХ рд╡рд╛рдкрд░рдд рдЕрд╕рд╛рд▓, рдкрд░рдВрддреБ рдЖрдордЪреНрдпрд╛ рдмрд╛рдмрддреАрдд рд╣реЗ рд╡рд╛рдкрд░рд▓реЗ рдЬрд╛рдд рдирд╛рд╣реА. рддреБрдордЪреНрдпрд╛ рдлрд╛рдпрд░рд╡реЙрд▓ рд╕реЗрдЯрд┐рдВрдЧреНрдЬ рдпрд╛ рдкреНрд░рдХрд╛рд░рдЪреНрдпрд╛ рдкрд░рд╕реНрдкрд░рд╕рдВрд╡рд╛рджрд╛рдВрдирд╛ рдЕрдиреБрдорддреА рджреЗрдд тАЛтАЛрдЕрд╕рд▓реНрдпрд╛рдЪреА рдЦрд╛рддреНрд░реА рдХрд░рд╛.

рд╕реЗрд╡реНрд╣ рдХреЗрд▓реНрдпрд╛рдирдВрддрд░, рдиреЗрдХреНрд╕реНрдЯрдХреНрд▓реЙрдб рдХрдиреЗрдХреНрд╢рдирдЪреА рдЪрд╛рдЪрдгреА рдХрд░реЗрд▓ рдЖрдгрд┐ рд╕рд░реНрд╡рдХрд╛рд╣реА рдмрд░реЛрдмрд░ рдЕрд╕рд▓реНрдпрд╛рд╕, рддреБрдореНрд╣рд╛рд▓рд╛ рдПрдХрддреНрд░реАрдХрд░рдгрд╛рд╢реА рд╕рдВрдмрдВрдзрд┐рдд рд╕реЗрдЯрд┐рдВрдЧреНрдЬ рджрд░реНрд╢рд╡реЗрд▓ - рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, рдпрд╛ рдПрдХрддреНрд░реАрдХрд░рдгрд╛рджреНрд╡рд╛рд░реЗ рдХреЛрдгрддреНрдпрд╛ рдкреНрд░рдХрд╛рд░рдЪреНрдпрд╛ рдлрд╛рдЗрд▓реНрд╕ рд╕рдВрдкрд╛рджрд┐рдд рдХреЗрд▓реНрдпрд╛ рдЬрд╛рдК рд╢рдХрддрд╛рдд. рддреБрдореНрд╣рд╛рд▓рд╛ рдпреЛрдЧреНрдп рд╡рд╛рдЯреЗрд▓ рддрд╕реЗ рд╕рд╛рдиреБрдХреВрд▓рд┐рдд рдХрд░рд╛.

рдЕрдВрддрд┐рдо рдЯрдкреНрдкрд╛: рд╕рдВрдкрд╛рджрдХ рдХреБрдареЗ рд╢реЛрдзрд╛рдпрдЪрд╛

рддреБрдореНрд╣реА рддреБрдордЪреНрдпрд╛ рдХреНрд▓рд╛рдЙрдб рд╕реНрдЯреЛрд░реЗрдЬ рдлреЛрд▓реНрдбрд░реНрд╕рд╡рд░ рдкрд░рдд рдЧреЗрд▓реНрдпрд╛рд╕ рдЖрдгрд┐ рдирд╡реАрди рдлрд╛рдЗрд▓ рддрдпрд╛рд░ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА тАЬ+тАЭ рд╡рд░ рдХреНрд▓рд┐рдХ рдХреЗрд▓реНрдпрд╛рд╕, рддреБрдордЪреНрдпрд╛рдХрдбреЗ рджрд╕реНрддрдРрд╡рдЬ, рд╕реНрдкреНрд░реЗрдбрд╢реАрдЯ рдХрд┐рдВрд╡рд╛ рд╕рд╛рджрд░реАрдХрд░рдг рддрдпрд╛рд░ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдПрдХ рдирд╡реАрди рдкрд░реНрдпрд╛рдп рдЕрд╕реЗрд▓. рддреНрдпрд╛рдВрдЪреНрдпрд╛ рдорджрддреАрдиреЗ, рддреБрдореНрд╣реА ONLYOFFICE рд╡рд╛рдкрд░реВрди рдпрд╛ рдкреНрд░рдХрд╛рд░рдЪреНрдпрд╛ рдлрд╛рдЗрд▓реНрд╕ рддрдпрд╛рд░ рдХрд░рд╛рд▓ рдЖрдгрд┐ рд▓рдЧреЗрдЪ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реВ рд╢рдХрд╛рд▓.

рдлрд╛рдЗрд▓ рдирд┐рд░реНрдорд┐рддреА рдореЗрдиреВрдбреЙрдХрд░рд╕рд╣ рдПрдХрд╛рдЪ рд╕рд░реНрд╡реНрд╣рд░рд╡рд░ рдиреЗрдХреНрд╕реНрдЯрдХреНрд▓реЙрдб + рдУрдиреНрд▓реАрдСрдлрд┐рд╕ рд╕реЗрдЯ рдХрд░рдд рдЖрд╣реЗ

рдкреБрд░рд╡рдгреА 1

docker-compose.yml рдЪреА рд╕рдВрдкреВрд░реНрдг рд╕рд╛рдордЧреНрд░реА рдпреЗрдереЗ рдЖрдврд│реВ рд╢рдХрддреЗ: https://pastebin.com/z1Ti1fTZ

рд╕реНрддреНрд░реЛрдд: www.habr.com

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдЬреЛрдбрд╛