{"id":4812,"date":"2021-08-26T10:59:26","date_gmt":"2021-08-26T10:59:26","guid":{"rendered":"https:\/\/tst-amo.net.ua\/blog\/?p=4812"},"modified":"2021-08-26T11:12:28","modified_gmt":"2021-08-26T11:12:28","slug":"seafile-nginx-ssl","status":"publish","type":"post","link":"https:\/\/tst-amo.net.ua\/blog\/?p=4812","title":{"rendered":"Seafile + Nginx + SSL"},"content":{"rendered":"<h3>Nginx<\/h3>\n<pre># vi \/etc\/nginx\/sites-available\/seafile\r\n\r\nserver {\r\n    listen 80;\r\n    server_name seafile.tst-amo.net.ua;\r\n    server_tokens off;\r\n    \r\n    location \/seafile {\r\n      rewrite ^ https:\/\/$http_host$request_uri? permanent; # force redirect http to https\r\n    }\r\n}\r\n\r\nserver {\r\n    listen 443 ssl http2;\r\n    server_name seafile.tst-amo.net.ua;\r\n    server_tokens off;\r\n\r\n    root \/home\/www\/seafile;\r\n\r\n# Let'sCript\r\ninclude acme.conf;\r\ninclude \/etc\/nginx\/conf.d\/hsts.conf;\r\ninclude \/etc\/nginx\/conf.d\/ssl.conf;\r\n\r\n     location \/ {\r\n         proxy_pass http:\/\/127.0.0.1:8999;\r\n         proxy_set_header Host $host;\r\n         proxy_connect_timeout 36000s;\r\n         proxy_read_timeout 36000s;\r\n         proxy_send_timeout 36000s;\r\n         send_timeout 36000s;\r\n\r\n         # used for view\/edit office file via Office Online Server\r\n         client_max_body_size 0;\r\n         \r\n         access_log \/var\/log\/nginx\/seahub.access.log;\r\n         error_log \/var\/log\/nginx\/seahub.error.log;\r\n       }\r\n\r\n     location \/seafhttp {\r\n         rewrite ^\/seafhttp(.*)$ $1 break;\r\n         proxy_pass http:\/\/127.0.0.1:8082;\r\n         client_max_body_size 0;\r\n         proxy_connect_timeout 36000s;\r\n         proxy_read_timeout 36000s;\r\n         proxy_send_timeout 36000s;\r\n         send_timeout 36000s;\r\n         proxy_request_buffering off;\r\n         proxy_http_version 1.1;\r\n      }\r\n\r\n     location \/seafmedia {\r\n         rewrite ^\/seafmedia(.*)$ \/media$1 break;\r\n         root \/home\/www\/seafile\/seafile-server-latest\/seahub;\r\n      }\r\n\r\n     location \/seafdav {\r\n         proxy_pass http:\/\/127.0.0.1:8080;\r\n         proxy_set_header Host $host;\r\n         proxy_set_header X-Real-IP $remote_addr;\r\n         proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;\r\n         proxy_set_header X-Forwarded-Host $server_name;\r\n         proxy_set_header X-Forwarded-Proto https;\r\n         proxy_http_version 1.1;\r\n         proxy_connect_timeout 36000s;\r\n         proxy_read_timeout 36000s;\r\n         proxy_send_timeout 36000s;\r\n         send_timeout 36000s;\r\n\r\n         # This option is only available for Nginx &gt;= 1.8.0.\r\n         client_max_body_size 0;\r\n         proxy_request_buffering off;\r\n\r\n         access_log \/var\/log\/nginx\/seafdav.access.log;\r\n         error_log \/var\/log\/nginx\/seafdav.error.log;\r\n       }\r\n}<\/pre>\n<pre># ln -s \/etc\/nginx\/sites-available\/seafile \/etc\/nginx\/sites-enabled\r\n# nginx -t\r\n# nginx -s reload<\/pre>\n<h3>Letsencrypt<\/h3>\n<p>\u0414\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442 \u0434\u043b\u044f \u0441\u0443\u0431\u0434\u043e\u043c\u0435\u043d\u0430, \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u043c:<\/p>\n<pre># certbot certonly --dry-run -d tst-amo.net.ua -d www.tst-amo.net.ua -d mail.tst-amo.net.ua -d cloud.tst-amo.net.ua <span style=\"color: #ff0000;\">-d seafile.tst-amo.net.ua<\/span><\/pre>\n<p>\u0415\u0441\u043b\u0438 \u0432\u0441\u0435 \u043d\u043e\u0440\u043c\u0430\u043b\u044c\u043d\u043e \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u043c \u0431\u0435\u0437 &#8211;dry-run:<\/p>\n<pre># certbot certonly -d tst-amo.net.ua -d www.tst-amo.net.ua -d mail.tst-amo.net.ua -d cloud.tst-amo.net.ua <span style=\"color: #ff0000;\">-d seafile.tst-amo.net.ua<\/span><\/pre>\n<h3>Seafile<\/h3>\n<p>\u0412\u043d\u0435\u0441\u0435\u043c \u043f\u0440\u0430\u0432\u043a\u0438 \u0432 \u043d\u0430\u0448\u0438 \u043a\u043e\u043d\u0444\u0438\u0433\u0438. \u0423 \u043c\u0435\u043d\u044f \u0432\u043b\u0430\u0434\u0435\u043b\u0435\u0446 nginx:www-data, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0433\u0440\u0443\u0436\u0443\u0441\u044c \u043f\u043e\u0434 \u043d\u0438\u043c (\u043f\u0440\u0435\u0434\u0432\u0430\u0440\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043f\u043e\u043f\u0440\u0430\u0432\u0438\u0432 vipw)<\/p>\n<pre># su nginx\r\n$ vi \/home\/www\/seafile\/conf\/ccnet.conf\r\n[General]\r\n#SERVICE_URL = http:\/\/192.168.1.41\/\r\n<span style=\"color: #ff0000;\">SERVICE_URL = https:\/\/seafile.tst-amo.net.ua\/<\/span><\/pre>\n<pre>$ vi \/home\/www\/seafile\/conf\/gunicorn.conf.py\r\n...\r\n# default localhost:8000\r\nbind = \"127.0.0.1:<span style=\"color: #ff0000;\">8999<\/span>\"<\/pre>\n<pre>$ vi \/home\/www\/seafile\/conf\/seahub_settings.py\u00a0\r\n<span style=\"color: #ff0000;\">FILE_SERVER_ROOT = 'https:\/\/seafile.tst-amo.net.ua\/seafhttp'<\/span><\/pre>\n<pre>$ cd \/home\/www\/seafile\/seafile-server-latest<\/pre>\n<pre>$ .\/seafile.sh restart\r\n$ .\/seahub.sh restart <span style=\"color: #ff0000;\">8999<\/span><\/pre>\n<p>\u0412\u043e\u0437\u043c\u043e\u0436\u043d\u043e \u043f\u043e\u043d\u0430\u0434\u043e\u0431\u0438\u0442\u0441\u044f \u043e\u0447\u0438\u0441\u0442\u0438\u0442\u044c \/tmp\/seahub_cache.<\/p>\n<p>\u041f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u043c:<\/p>\n<pre>https:\/\/seafile.tst-amo.net.ua<\/pre>\n<div class=\"pdfprnt-buttons pdfprnt-buttons-post pdfprnt-bottom-right\"><a href=\"https:\/\/tst-amo.net.ua\/blog\/index.php?rest_route=wpv2posts4812&print=pdf\" class=\"pdfprnt-button pdfprnt-button-pdf\" target=\"_blank\"><img decoding=\"async\" src=\"https:\/\/tst-amo.net.ua\/blog\/wp-content\/plugins\/pdf-print\/images\/pdf.png\" alt=\"image_pdf\" title=\"View PDF\" \/><\/a><a href=\"https:\/\/tst-amo.net.ua\/blog\/index.php?rest_route=wpv2posts4812&print=print\" class=\"pdfprnt-button pdfprnt-button-print\" target=\"_blank\"><img decoding=\"async\" src=\"https:\/\/tst-amo.net.ua\/blog\/wp-content\/plugins\/pdf-print\/images\/print.png\" alt=\"image_print\" title=\"Print Content\" \/><\/a><\/div>","protected":false},"excerpt":{"rendered":"<p>Nginx # vi \/etc\/nginx\/sites-available\/seafile server { listen 80; server_name seafile.tst-amo.net.ua; server_tokens off; location \/seafile { rewrite ^ https:\/\/$http_host$request_uri? permanent; # force redirect http to https } } server { listen 443 ssl http2; server_name seafile.tst-amo.net.ua; server_tokens off; root \/home\/www\/seafile; # Let&#8217;sCript include acme.conf; include \/etc\/nginx\/conf.d\/hsts.conf; include \/etc\/nginx\/conf.d\/ssl.conf; location \/ { proxy_pass http:\/\/127.0.0.1:8999; proxy_set_header Host $host; &#8230;<\/p>\n<p><a href=\"https:\/\/tst-amo.net.ua\/blog\/?p=4812\" class=\"more-link\">Continue reading &lsquo;Seafile + Nginx + SSL&rsquo; &raquo;<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[48,47,99,330],"tags":[],"class_list":["post-4812","post","type-post","status-publish","format-standard","hentry","category-centos","category-linux","category-nginx","category-seafile"],"_links":{"self":[{"href":"https:\/\/tst-amo.net.ua\/blog\/index.php?rest_route=\/wp\/v2\/posts\/4812"}],"collection":[{"href":"https:\/\/tst-amo.net.ua\/blog\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/tst-amo.net.ua\/blog\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/tst-amo.net.ua\/blog\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/tst-amo.net.ua\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=4812"}],"version-history":[{"count":4,"href":"https:\/\/tst-amo.net.ua\/blog\/index.php?rest_route=\/wp\/v2\/posts\/4812\/revisions"}],"predecessor-version":[{"id":4816,"href":"https:\/\/tst-amo.net.ua\/blog\/index.php?rest_route=\/wp\/v2\/posts\/4812\/revisions\/4816"}],"wp:attachment":[{"href":"https:\/\/tst-amo.net.ua\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=4812"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/tst-amo.net.ua\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=4812"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/tst-amo.net.ua\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=4812"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}