docker-compose部署onlyoffice8.3.0并支持ssl,且支持通過nginx代理,關閉JWT配置

編寫docker-compose文件


mkdir -p /data/onlyoffice && echo "version: '3'services:onlyoffice:container_name: OnlyOfficeimage: onlyoffice/documentserver:8.3.0restart: alwaysports:- 8088:80- 64431:443environment:TZ: Asia/ShanghaiJWT_ENABLED: 'false'volumes:- ./app/onlyoffice/DocumentServer/logs:/var/log/onlyoffice- ./app/onlyoffice/DocumentServer/data:/var/www/onlyoffice/Data- ./app/onlyoffice/DocumentServer/lib:/var/lib/onlyoffice- ./app/onlyoffice/DocumentServer/db:/var/lib/postgresql- ./certs:/etc/onlyoffice/certs- ./certs/ds.conf:/etc/onlyoffice/documentserver/nginx/ds.conf- ./default.json:/etc/onlyoffice/documentserver/default.json" > /data/onlyoffice/docker-compose.yml && echo '{"statsd": {"useMetrics": false,"host": "localhost","port": "8125","prefix": "ds."},"log": {"filePath": "","options": {"replaceConsole": true}},"queue": {"type": "rabbitmq","visibilityTimeout": 300,"retentionPeriod": 900},"email": {"smtpServerConfiguration": {"host": "localhost","port": 587,"auth": {"user": "","pass": ""}},"connectionConfiguration": {"disableFileAccess": false,"disableUrlAccess": false},"contactDefaults": {"from": "from@example.com","to": "to@example.com"}},"notification": {"rules": {"licenseExpirationWarning": {"enable": false,"transportType": ["email"],"template": {"title": "%s Docs license expiration warning","body": "Attention! Your license is about to expire on %s.\nUpon reaching this date, you will no longer be entitled to receive personal technical support and install new Docs versions released after this date."},"policies": {"repeatInterval": "1d"}},"licenseExpirationError": {"enable": false,"transportType": ["email"],"template": {"title": "%s Docs license expiration warning","body": "Attention! Your license expired on %s.\nYou are no longer entitled to receive personal technical support and install new Docs versions released after this date.\nPlease contact sales@onlyoffice.com to discuss license renewal."},"policies": {"repeatInterval": "1d"}},"licenseLimitEdit": {"enable": false,"transportType": ["email"],"template": {"title": "%s Docs license connection limit warning","body": "Attention! You have reached %s%% of the %s limit set by your license."},"policies": {"repeatInterval": "1h"}},"licenseLimitLiveViewer": {"enable": false,"transportType": ["email"],"template": {"title": "%s Docs license connection limit warning","body": "Attention! You have reached %s%% of the live viewer %s limit set by your license."},"policies": {"repeatInterval": "1h"}}}},"storage": {"name": "storage-fs","fs": {"folderPath": "","urlExpires": 900,"secretString": "verysecretstring"},"region": "","endpoint": "http://localhost/s3","bucketName": "cache","storageFolderName": "files","cacheFolderName": "data","urlExpires": 604800,"accessKeyId": "AKID","secretAccessKey": "SECRET","sslEnabled": true,"s3ForcePathStyle": true,"externalHost": ""},"persistentStorage": {},"rabbitmq": {"url": "amqp://localhost:5672","socketOptions": {},"exchangepubsub": {"name": "ds.pubsub","options": {"durable": true}},"queuepubsub": {"name": "","options": {"autoDelete": true,"exclusive": true,"arguments": {"x-queue-type": "classic"}}},"queueconverttask": {"name": "ds.converttask6","options": {"durable": true,"maxPriority": 6,"arguments": {"x-queue-type": "classic"}}},"queueconvertresponse": {"name": "ds.convertresponse","options": {"durable": true,"arguments": {"x-queue-type": "classic"}}},"exchangeconvertdead": {"name": "ds.exchangeconvertdead","options": {"durable": true}},"queueconvertdead": {"name": "ds.convertdead","options": {"durable": true,"arguments": {"x-queue-type": "classic"}}},"queuedelayed": {"name": "ds.delayed","options": {"durable": true,"arguments": {"x-queue-type": "classic"}}}},"activemq": {"connectOptions": {"port": 5672,"host": "localhost","reconnect": false},"queueconverttask": "ds.converttask","queueconvertresponse": "ds.convertresponse","queueconvertdead": "ActiveMQ.DLQ","queuedelayed": "ds.delayed","topicpubsub": "ds.pubsub"},"dnscache": {"enable" : true,"ttl" : 300,"cachesize" : 1000},"openpgpjs": {"config": {},"encrypt": {"passwords": ["verysecretstring"]},"decrypt": {"passwords": ["verysecretstring"]}},"aesEncrypt": {"config": {"keyByteLength": 32,"saltByteLength": 64,"initializationVectorByteLength": 16,"iterationsByteLength": 5},"secret": "verysecretstring"},"bottleneck": {"getChanges": {}},"win-ca": {"inject": "+"},"wopi": {"enable": false,"host" : "","htmlTemplate" : "../../web-apps/apps/api/wopi","wopiZone" : "external-http","favIconUrlWord" : "/web-apps/apps/documenteditor/main/resources/img/favicon.ico","favIconUrlCell" : "/web-apps/apps/spreadsheeteditor/main/resources/img/favicon.ico","favIconUrlSlide" : "/web-apps/apps/presentationeditor/main/resources/img/favicon.ico","favIconUrlPdf" : "/web-apps/apps/pdfeditor/main/resources/img/favicon.ico","favIconUrlDiagram" : "/web-apps/apps/visioeditor/main/resources/img/favicon.ico","fileInfoBlockList" : ["FileUrl"],"pdfView": ["djvu", "xps", "oxps"],"pdfEdit": ["pdf"],"forms": ["pdf"],"wordView": ["doc", "dotm", "dot", "fodt", "ott", "rtf", "mht", "mhtml", "html", "htm", "xml", "epub", "fb2", "sxw", "stw", "wps", "wpt", "pages", "docxf", "oform"],"wordEdit": ["docx", "dotx", "docm", "odt", "txt"],"cellView": ["xls", "xlsb", "xltm", "xlt", "fods", "ots", "sxc", "xml", "et", "ett", "numbers"],"cellEdit": ["xlsx", "xltx", "xlsm", "ods", "csv"],"slideView": ["ppt", "ppsx", "ppsm", "pps", "potm", "pot", "fodp", "otp", "sxi", "dps", "dpt", "key"],"slideEdit": ["pptx", "potx", "pptm", "odp"],"diagramView": [],"diagramEdit": [],"publicKey": "","modulus": "","exponent": 65537,"privateKey": "","publicKeyOld": "","modulusOld": "","exponentOld": 65537,"privateKeyOld": "","refreshLockInterval": "10m","dummy" : {"enable": false,"sampleFilePath": ""}},"tenants": {"baseDir": "","baseDomain": "","filenameConfig": "config.json","filenameSecret": "secret.key","filenameLicense": "license.lic","defaultTenant": "localhost","cache" : {"stdTTL": 300,"checkperiod": 60,"useClones": false}},"externalRequest": {"directIfIn" : {"allowList": [],"jwtToken": true},"action": {"allow": true,"blockPrivateIP": true,"proxyUrl": "","proxyUser": {"username": "","password": ""},"proxyHeaders": {}}},"services": {"CoAuthoring": {"server": {"port": 8000,"workerpercpu": 1,"mode": "development","limits_tempfile_upload": 104857600,"limits_image_size": 26214400,"limits_image_download_timeout": {"connectionAndInactivity": "2m","wholeCycle": "2m"},"callbackRequestTimeout": {"connectionAndInactivity": "10m","wholeCycle": "10m"},"healthcheckfilepath": "../public/healthcheck.docx","savetimeoutdelay": 5000,"edit_singleton": false,"forgottenfiles": "forgotten","forgottenfilesname": "output","maxRequestChanges": 20000,"openProtectedFile": true,"isAnonymousSupport": true,"editorDataStorage": "editorDataMemory","editorStatStorage": "","assemblyFormatAsOrigin": true,"newFileTemplate" : "../../document-templates/new","downloadFileAllowExt": ["pdf", "xlsx"],"tokenRequiredParams": true,"forceSaveUsingButtonWithoutChanges": false},"requestDefaults": {"headers": {"User-Agent": "Node.js/6.13","Connection": "Keep-Alive"},"gzip": true,"rejectUnauthorized": true},"autoAssembly": {"enable": false,"interval": "5m","step": "1m"},"utils": {"utils_common_fontdir": "null","utils_fonts_search_patterns": "*.ttf;*.ttc;*.otf","limits_image_types_upload": "jpg;jpeg;jpe;png;gif;bmp;svg;tiff;tif"},"sql": {"type": "postgres","tableChanges": "doc_changes","tableResult": "task_result","dbHost": "localhost","dbPort": 5432,"dbName": "onlyoffice","dbUser": "onlyoffice","dbPass": "onlyoffice","charset": "utf8","connectionlimit": 10,"max_allowed_packet": 1048575,"pgPoolExtraOptions": {"idleTimeoutMillis": 30000,"maxLifetimeSeconds ": 60000,"statement_timeout ": 60000,"query_timeout  ": 60000,"connectionTimeoutMillis": 60000},"damengExtraOptions": {"columnNameUpperCase": false,"columnNameCase": "lower","connectTimeout": 60000,"loginEncrypt": false,"localTimezone": 0,"poolTimeout": 60,"socketTimeout": 60000,"queueTimeout": 60000},"oracleExtraOptions": {"connectTimeout": 60},"msSqlExtraOptions": {"options": {"encrypt": false,"trustServerCertificate": true},"pool": {"idleTimeoutMillis": 30000}},"mysqlExtraOptions": {"connectTimeout": 60000,"queryTimeout": 60000}},"redis": {"name": "redis","prefix": "ds:","host": "127.0.0.1","port": 6379,"options": {},"optionsCluster": {},"iooptions": {"lazyConnect": true},"iooptionsClusterNodes": [],"iooptionsClusterOptions": {"lazyConnect": true}},"pubsub": {"maxChanges": 1000},"expire": {"saveLock": 60,"presence": 300,"locks": 604800,"changeindex": 86400,"lockDoc": 30,"message": 86400,"lastsave": 604800,"forcesave": 604800,"forcesaveLock": 5000,"saved": 3600,"documentsCron": "0 */2 * * * *","files": 86400,"filesCron": "00 00 */1 * * *","filesremovedatonce": 100,"sessionidle": "1h","sessionabsolute": "30d","sessionclosecommand": "2m","pemStdTTL": "1h","pemCheckPeriod": "10m","updateVersionStatus": "5m","monthUniqueUsers": "1y"},"ipfilter": {"rules": [{"address": "*", "allowed": true}],"useforrequest": false,"errorcode": 403},"request-filtering-agent" : {"allowPrivateIPAddress": true,"allowMetaIPAddress": true},"secret": {"browser": {"string": "secret", "file": ""},"inbox": {"string": "secret", "file": ""},"outbox": {"string": "secret", "file": ""},"session": {"string": "secret", "file": ""}},"token": {"enable": {"browser": false,"request": {"inbox": false,"outbox": false}},"browser": {"secretFromInbox": true},"inbox": {"header": "Authorization","prefix": "Bearer ","inBody": false},"outbox": {"header": "Authorization","prefix": "Bearer ","algorithm": "HS256","expires": "5m","inBody": false,"urlExclusionRegex": ""},"session": {"algorithm": "HS256","expires": "30d"},"verifyOptions": {"clockTolerance": 60}},"plugins": {"uri": "/sdkjs-plugins","autostart": []},"themes": {"uri": "/web-apps/apps/common/main/resources/themes"},"editor":{"spellcheckerUrl": "","reconnection":{"attempts": 50,"delay": "2s"},"binaryChanges": false,"websocketMaxPayloadSize": "1.5MB","maxChangesSize": "150MB"},"sockjs": {"sockjs_url": "","disable_cors": true,"websocket": true},"socketio": {"connection": {"path": "/doc/","serveClient": false,"pingTimeout": 20000,"pingInterval": 25000,"maxHttpBufferSize": 1e8}},"callbackBackoffOptions": {"retries": 0,"timeout":{"factor": 2,"minTimeout": 1000,"maxTimeout": 2147483647,"randomize": false},"httpStatus": "429,500-599"}}},"license" : {"license_file": "","warning_limit_percents": 70,"packageType": 0,"warning_license_expiration": "30d"},"FileConverter": {"converter": {"maxDownloadBytes": 104857600,"downloadTimeout": {"connectionAndInactivity": "2m","wholeCycle": "2m"},"downloadAttemptMaxCount": 3,"downloadAttemptDelay": 1000,"maxprocesscount": 1,"fontDir": "null","presentationThemesDir": "null","x2tPath": "null","docbuilderPath": "null","args": "","spawnOptions": {},"errorfiles": "","streamWriterBufferSize": 8388608,"maxRedeliveredCount": 2,"inputLimits": [{"type": "docx;dotx;docm;dotm","zip": {"uncompressed": "50MB","template": "*.xml"}},{"type": "xlsx;xltx;xlsm;xltm","zip": {"uncompressed": "300MB","template": "*.xml"}},{"type": "pptx;ppsx;potx;pptm;ppsm;potm","zip": {"uncompressed": "50MB","template": "*.xml"}}]}}
}
' > /data/onlyoffice/default.json && mkdir -p /data/onlyoffice/certs && cd /data/onlyoffice/certs && echo 'include /etc/nginx/includes/http-common.conf;
server {listen 0.0.0.0:80;listen [::]:80 default_server;server_tokens off;set $secure_link_secret ;include /etc/nginx/includes/ds-*.conf;
}
server {listen 443 ssl;listen [::]:443;server_name localhost;ssl_certificate /etc/onlyoffice/certs/onlyoffice.crt;ssl_certificate_key /etc/onlyoffice/certs/onlyoffice.key;ssl_session_cache shared:SSL:1m;ssl_session_timeout 5m;ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;ssl_protocols TLSv1 TLSv1.1 TLSv1.2;ssl_prefer_server_ciphers on;server_tokens off;set $secure_link_secret ;include /etc/nginx/includes/ds-*.conf;
}' > ds.conf && echo '-----BEGIN CERTIFICATE-----
MIIFATCCA+mgAwIBAgISBCJAwtsL2l5x1rHhX7tj3dytMA0GCSqGSIb3DQEBCwUA
MDMxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1MZXQncyBFbmNyeXB0MQwwCgYDVQQD
EwNSMTAwHhcNMjUwMTE2MDUxMDM5WhcNMjUwNDE2MDUxMDM4WjAZMRcwFQYDVQQD
Ew5scDIwNzY2MzQzNi5jbjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB
ANZ912eyDY9WHTQSlFyGQwhPCGwZQxsjyFv0fH8X0g/J8GGTdq0R/Qsa8wsdem7/
xQju3U1NhnWqWLPl4jG2EYjGqbp60vDlXIBOmdQ4LoGPHNT7x0oVH/PGKYcqcu2Q
dohKgNJ54v+CCEDuVeyyP6bfgsVdO2fgHovPsQXgia4m1XoxOdluDN16LCO7CTv4
eJ/eKjEcO66yNOSAw7wExdnhi3RYmy/KEdp1ItM3fGgSeY/K5oNls4Y0A+5N9N8R
6XaPacfdH1Dp2pSDTItUIADaI8yWloN6rlOXnuLB5BfLg1ByN8Eq7POmJWN+WQvg
oFRjCgIcPoOowcY4oW6Jy/8CAwEAAaOCAicwggIjMA4GA1UdDwEB/wQEAwIFoDAd
BgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDAYDVR0TAQH/BAIwADAdBgNV
HQ4EFgQUaqd4GOj2VxUBxkYshYNSqNhe3pwwHwYDVR0jBBgwFoAUu7zDR6XkvKnG
w6RyDBCNojXhyOgwVwYIKwYBBQUHAQEESzBJMCIGCCsGAQUFBzABhhZodHRwOi8v
cjEwLm8ubGVuY3Iub3JnMCMGCCsGAQUFBzAChhdodHRwOi8vcjEwLmkubGVuY3Iu
b3JnLzAvBgNVHREEKDAmghRpbm5lci5scDIwNzY2MzQzNi5jboIObHAyMDc2NjM0
MzYuY24wEwYDVR0gBAwwCjAIBgZngQwBAgEwggEDBgorBgEEAdZ5AgQCBIH0BIHx
AO8AdQDM+w9qhXEJZf6Vm1PO6bJ8IumFXA2XjbapflTA/kwNsAAAAZRtutu9AAAE
AwBGMEQCICGcbaLk28GCrCkA6XsasJgUp/L1Q+DgYxVJ3mOGUk/bAiAx23T2HavM
+Pa9OJi6hEksz8ASJ68juphzpZzs+/Q87gB2ABNK3xq1mEIJeAxv70x6kaQWtyNJ
zlhXat+u2qfCq+AiAAABlG263FIAAAQDAEcwRQIgfBTRf/3Ze4gtcI4UEdP9sm8T
ALJFjwTD0isvqCyvqoUCIQD/i3a3tuDoDhDkq7dnEO2JYf8UcDmzSyvp7AsE36V1
ZDANBgkqhkiG9w0BAQsFAAOCAQEAvP3SQRQu7sl9ofnBUX8lK/tjDt8Q1tVblr2N
qxYTZGV6lGIEX5up/lnf06swyVor0XKxenkTLJFJJbLgJY4xL5I+neom4knWr5dW
BiggsoEuhaRTYIbVcVACLz2DW7ek+1nn4xpMEXT9lFNsew982plInINalj9li/Kg
3PEg6KoKCf9hgNkEN3tMkWHUPzu5x0GQPYerR0U61bDhyHX9DKQYqvrPCMCBSjf7
2aH2TQQSgpAgVflBAFRPVuBoO4+iLf/O6l+cLGjvsvry+xdJ7RE2gsqu1UlsM2pv
isOalHzm3CiinJpwEHBHUpDPA7WfAujt8SiCK3rS/VIBOUXWsA==
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIFBTCCAu2gAwIBAgIQS6hSk/eaL6JzBkuoBI110DANBgkqhkiG9w0BAQsFADBP
MQswCQYDVQQGEwJVUzEpMCcGA1UEChMgSW50ZXJuZXQgU2VjdXJpdHkgUmVzZWFy
Y2ggR3JvdXAxFTATBgNVBAMTDElTUkcgUm9vdCBYMTAeFw0yNDAzMTMwMDAwMDBa
Fw0yNzAzMTIyMzU5NTlaMDMxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1MZXQncyBF
bmNyeXB0MQwwCgYDVQQDEwNSMTAwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK
AoIBAQDPV+XmxFQS7bRH/sknWHZGUCiMHT6I3wWd1bUYKb3dtVq/+vbOo76vACFL
YlpaPAEvxVgD9on/jhFD68G14BQHlo9vH9fnuoE5CXVlt8KvGFs3Jijno/QHK20a
/6tYvJWuQP/py1fEtVt/eA0YYbwX51TGu0mRzW4Y0YCF7qZlNrx06rxQTOr8IfM4
FpOUurDTazgGzRYSespSdcitdrLCnF2YRVxvYXvGLe48E1KGAdlX5jgc3421H5KR
mudKHMxFqHJV8LDmowfs/acbZp4/SItxhHFYyTr6717yW0QrPHTnj7JHwQdqzZq3
DZb3EoEmUVQK7GH29/Xi8orIlQ2NAgMBAAGjgfgwgfUwDgYDVR0PAQH/BAQDAgGG
MB0GA1UdJQQWMBQGCCsGAQUFBwMCBggrBgEFBQcDATASBgNVHRMBAf8ECDAGAQH/
AgEAMB0GA1UdDgQWBBS7vMNHpeS8qcbDpHIMEI2iNeHI6DAfBgNVHSMEGDAWgBR5
tFnme7bl5AFzgAiIyBpY9umbbjAyBggrBgEFBQcBAQQmMCQwIgYIKwYBBQUHMAKG
Fmh0dHA6Ly94MS5pLmxlbmNyLm9yZy8wEwYDVR0gBAwwCjAIBgZngQwBAgEwJwYD
VR0fBCAwHjAcoBqgGIYWaHR0cDovL3gxLmMubGVuY3Iub3JnLzANBgkqhkiG9w0B
AQsFAAOCAgEAkrHnQTfreZ2B5s3iJeE6IOmQRJWjgVzPw139vaBw1bGWKCIL0vIo
zwzn1OZDjCQiHcFCktEJr59L9MhwTyAWsVrdAfYf+B9haxQnsHKNY67u4s5Lzzfd
u6PUzeetUK29v+PsPmI2cJkxp+iN3epi4hKu9ZzUPSwMqtCceb7qPVxEbpYxY1p9
1n5PJKBLBX9eb9LU6l8zSxPWV7bK3lG4XaMJgnT9x3ies7msFtpKK5bDtotij/l0
GaKeA97pb5uwD9KgWvaFXMIEt8jVTjLEvwRdvCn294GPDF08U8lAkIv7tghluaQh
1QnlE4SEN4LOECj8dsIGJXpGUk3aU3KkJz9icKy+aUgA+2cP21uh6NcDIS3XyfaZ
QjmDQ993ChII8SXWupQZVBiIpcWO4RqZk3lr7Bz5MUCwzDIA359e57SSq5CCkY0N
4B6Vulk7LktfwrdGNVI5BsC9qqxSwSKgRJeZ9wygIaehbHFHFhcBaMDKpiZlBHyz
rsnnlFXCb5s8HKn5LsUgGvB24L7sGNZP2CX7dhHov+YhD+jozLW2p9W4959Bz2Ei
RmqDtmiXLnzqTpXbI+suyCsohKRg6Un0RC47+cpiVwHiXZAW+cn8eiNIjqbVgXLx
KPpdzvvtTnOPlC7SQZSYmdunr3Bf9b77AiC/ZidstK36dRILKz7OA54=
-----END CERTIFICATE-----' > onlyoffice.crt && echo '-----BEGIN PRIVATE KEY-----
MIIEvwIBADANBgkqhkiG9w0BAQEFAASCBKkwggSlAgEAAoIBAQDWfddnsg2PVh00
EpRchkMITwhsGUMbI8hb9Hx/F9IPyfBhk3atEf0LGvMLHXpu/8UI7t1NTYZ1qliz
5eIxthGIxqm6etLw5VyATpnUOC6BjxzU+8dKFR/zximHKnLtkHaISoDSeeL/gghA
7lXssj+m34LFXTtn4B6Lz7EF4ImuJtV6MTnZbgzdeiwjuwk7+Hif3ioxHDuusjTk
gMO8BMXZ4Yt0WJsvyhHadSLTN3xoEnmPyuaDZbOGNAPuTfTfEel2j2nH3R9Q6dqU
g0yLVCAA2iPMlpaDeq5Tl57iweQXy4NQcjfBKuzzpiVjflkL4KBUYwoCHD6DqMHG
OKFuicv/AgMBAAECggEAURHWUTS8qFEJj614EvKSMnlAuy7fLMpdB9iEF7tmo54V
c6P7ZpXWeRSSCUD2ji6xB9vUnEuxhxbAGRrJ4DUrMnG4JCoZQYDHch2DSfGELmbr
pFqXrBoI7igXeSWjs8P28TOLtkHoeN9qhDQxGNoUcdun/zXqZqwQj5KMG6cPEtmc
MTn2lbqihLkw12Ujjvh9x1blOKfWf6g/+GPLMFGSMgBxNSsBNUcdOUnpBLwo6c/v
tsZtpvVf5Eds9dT7ak2FszM2l9J8MAsbhEmMZZ3gEL5014plu6+ScDIhm68nmeKy
M2DDGCBgV74HV+NIkDqOx4O45hhO1MX5z6+b2YfVGQKBgQD6Kv/vCcXjvNgRy3Rr
SP3hALlXfddNHHEpe5xN68obLmOjI6CF5Tng2iNtgQshocbBBZLdIRdyU5RCbfnA
Dah3qNKuNRPBHQdRen3hC30TcD9zm/Il9plZDa8/v4mct6IoNl1MP4PKX2XcpYwc
pcIkZlD2Kv2NL0rJ/mf/Ru1XpwKBgQDbfezcn7ixoxqKKYAa7sxDfLjEIfsiWApT
RESgGkABJr/Q4+KvTxjQMgtF35VgRJLxgOkurGQVXwJRLI4W4qFkcYu/Xv9rVTTn
ZJjRtFP69p1JXPtNKwLOdQDE5Ysz8MOXtxRE5iuPsYf4mzGkEWHXcHndynJ7w1hN
sqUSUVNz6QKBgQDJotTsfy0QVUq2dQ1d19RBgcrhmR1rGqyfKfGe4Jji9a37dSDS
KyNOd6Qsg+FL90/yjiKEt0JltLYAIRI3WQrbf6hoH4HPmi0m4BsLw63JeCS8cwpm
zO9m1t/U+vXY6i36SW9DoMIB4IiCorBe+r+ThSBmedop7N9UFgkOucVdawKBgQDH
zx6syQnNS/mBBL6FxhVU6lkY0wZXAWaE3oTKapsRcUD03D8j8BFalfQFK8BD3qkW
CJA92NlTSyZE1xaSZsUdNvBMyiIih3KdosorPMmmkJImkuqCGUF4yLJmi7/pDKhB
mHxvLElDig2Jl13dSaWUBeQqr30AhZgBQztaLYaW4QKBgQDMz2HWZ/Iqny9o9cad
jjiNsdvtxrdGxbI9F4CEfRw1TQ2+OtH8GxnbExeGayZMDWZ6yEAYd/DppcnI/IyW
YTtWw8js44D+AAMH2rrR+cst3kSrORVdYryWoCWDMw03MUpDwzWuLmZAqBGnLw4C
m2Kt/wvsjQiG97ITT0i8zRl0Yg==
-----END PRIVATE KEY-----' > onlyoffice.key && cd ..
docker-compose up -d

進入容器后的操作

docker exec -it OnlyOffice bash
獲取到對應的秘鑰字符串
cat /etc/onlyoffice/documentserver/local.json
## 將獲取到的下面的secretString中的字符串記錄好,后面的操作會用到
"storage": {"fs": {"secretString": "xxxxx"}}
賦值上面的數據(xxxxx替換為對應的字符)
sed -i 's#set $secure_link_secret ;#set $secure_link_secret xxxxx;#g' /etc/nginx/conf.d/ds.conf && nginx

nginx代理

此時直接通過http://ip:8088或通過https://ip:64431都可以成功訪問,下面是通過nginx做https代理的方法,http的代理同樣的操作

    location /web-apps/apps/api {proxy_pass https://localhost:64431;proxy_set_header      Host  $host;proxy_set_header      X-Real-IP  $remote_addr;proxy_set_header      X-Forwarded-For  $proxy_add_x_forwarded_for;proxy_http_version 1.1;proxy_set_header Upgrade $http_upgrade;proxy_set_header Connection "Upgrade";}location /8.3.0 {proxy_pass https://localhost:64431;proxy_set_header      Host  $host;proxy_set_header      X-Real-IP  $remote_addr;proxy_set_header      X-Forwarded-For  $proxy_add_x_forwarded_for;proxy_http_version 1.1;proxy_set_header Upgrade $http_upgrade;proxy_set_header Connection "Upgrade";}location /cache/files/data/2 {proxy_pass https://localhost:64431;proxy_set_header      Host  $host;proxy_set_header      X-Real-IP  $remote_addr;proxy_set_header      X-Forwarded-For  $proxy_add_x_forwarded_for;proxy_http_version 1.1;proxy_set_header Upgrade $http_upgrade;proxy_set_header Connection "Upgrade";}

我的服務器ip是192.168.14.184,可以創建html測試是否能成功預覽,其中http://192.168.14.205:20020/software/cd46a0fab3614d7d8519ec58b5672529.docx需要更改成自己可下載的文件地址

<!DOCTYPE html>
<html style="height: 100%;">
<head><title>ONLYOFFICE Api Documentation</title>
</head>
<body style="height: 100%; margin: 0;"><div id="placeholder" style="height: 100%"></div><script type="text/javascript" src="https://192.168.14.184/web-apps/apps/api/documents/api.js"></script><script type="text/javascript">let editorConfig = {"secret":"kg3Zrcx8Rg4DEuQH83jrUpPMy7svxOGJ","lang": "zh-CN",//設置ONLYOFFICE編輯器語言為中文//保存文檔時最終的回調接口,用于保存在線編輯的文件到存儲//"callbackUrl": "http://192.168.2.62:24005/prod-api/file/upload","lang": "zh-CN",//設置ONLYOFFICE編輯器語言為中文"mode": "edit",//設置只讀時使用的配置,不加則默認表示允許編輯(只讀時不需要填不加callbackUrl配置)"customization": {"anonymous": { // set name for anonymous user"request": false, // enable set name"label": "aaa" // postfix for user name},},user: {id: '1232',name: '夏XX',group: 'group name' // for customization.reviewPermissions or permissions.reviewGroups or permissions.commentGroups. Can be multiple groups separated by commas (,) : 'Group1' or 'Group1,Group2'},}/*ONLYOFFICE編輯器有三種主要外觀,針對不同用途進行了優化,可通過type屬性予以配置:desktop,針對桌面計算機瀏覽器中的顯示進行了優化;mobile,針對移動設備瀏覽器中的顯示進行了優化;embedded,針對將文檔嵌入網頁進行了優化。*/window.docEditor = new DocsAPI.DocEditor("placeholder",{"document": {type: "embedded",//編輯器外觀,"fileType": "docx","key": "2","title": "3TR069.xlsx","url": "http://192.168.14.205:20020/software/cd46a0fab3614d7d8519ec58b5672529.docx"},"documentType": "word","editorConfig": {"mode": "view"},"height": "100%","width": "100%",editorConfig: editorConfig});</script>
</body>
</html>

預覽截圖
在這里插入圖片描述

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/70786.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/70786.shtml
英文地址,請注明出處:http://en.pswp.cn/web/70786.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Sliding Window Attention(滑動窗口注意力)解析: Pytorch實現并結合全局注意力(Global Attention )

Sliding Window Attention&#xff08;滑動窗口注意力&#xff09;解析 Sliding Window Attention&#xff08;滑動窗口注意力&#xff09; 是 Longformer (來源&#xff1a;https://arxiv.org/pdf/2004.05150)提出的 稀疏注意力機制&#xff0c;旨在解決 標準 Transformer 計算…

【運維】內網服務器借助通過某臺可上外網的服務器實現公網訪問

背景&#xff1a; 內網服務器無法連接公網,但是辦公電腦可以連接內網服務器又可以連接公網。 安裝軟件 1、frp 2、ccproxy 配置 1、內網服務器 # 內網服務器啟動frp服務配置文件參考vi frps.ini# frps.ini [common] bind_port 7000# 備注: bind_port端口可以隨意配置。配置完…

flask 是如何分發請求的?

這篇博客會涉及一些 WSGI 的知識&#xff0c;不了解的可以看這篇博客&#xff0c;簡單了解一下。 Python 的 WSGI 簡單入門 一、請求在 flask 中的處理過程 我們先來看一下 werkzeug.routing 包下 Map 和 Rule 方法的使用&#xff0c;這里給出一個官方的示例&#xff08;我進…

怎么獲取免費的 GPU 資源完成大語言模型(LLM)實驗

怎么獲取免費的 GPU 資源完成大語言模型(LLM)實驗 目錄 怎么獲取免費的 GPU 資源完成大語言模型(LLM)實驗在線平臺類Google ColabKaggle NotebooksHugging Face Spaces百度飛槳 AI Studio在線平臺類 Google Colab 特點:由 Google 提供的基于云端的 Jupyter 筆記本環境,提…

Python開發Django面試題及參考答案

目錄 Django 的請求生命周期是怎樣的? Django 的 MTV 架構中的各個組件分別是什么? Django 的 URL 路由是如何工作的? Django 的視圖函數和視圖類有什么區別? Django 的模板系統是如何渲染 HTML 的? Django 的 ORM 是如何工作的? Django 的中間件是什么?它的作用是…

【圖像的讀寫與基本操作】

圖像的讀寫與基本操作 目錄 圖像的讀寫與基本操作目標知識點1. 圖像的讀寫 &#xff1a;2. 圖像的縮放 &#xff1a;3. 圖像的翻轉 &#xff1a;4. 圖像的裁剪 &#xff1a;5. 顏色空間轉換 &#xff1a; 示例代碼1. 圖像的讀寫 &#xff1a;2. 圖像的縮放 &#xff1a;3. 圖像…

《數字圖像處理》筆記

文章目錄 第一章 緒論1.1 什么是數字圖像處理數字圖像的概念數字圖像的組成數字圖像處理的概念 1.4 數字圖像處理的基本步驟 第二章 數字圖像基礎2.2 光和電磁波譜可見光單色光灰度級發光強度光通量亮度 2.3 圖像感知和獲取將照射能量變換為數字圖像的傳感器簡單的圖像形成模型…

網絡安全掃描--基礎篇

前言 1、了解互聯網安全領域中日趨重要的掃描技術 2、了解在不同網絡場景下掃描技術手段 3、熟悉linux下系統內核防護策略并能大件一個有效的系統防護體系 4、增強工作安全意識&#xff0c;并能有效的實踐于工作場景中 目錄 1、熟悉主機掃描工具&#xff08;fping&#xff0c;…

前端防重復請求終極方案:從Loading地獄到精準攔截的架構升級

&#x1f525; 事故現場還原&#xff1a;瘋狂點擊引發的血案 凌晨1點23分&#xff0c;監控系統突然告警&#xff1a; &#x1f4c9; 服務器CPU飆升至98% &#x1f5c3;? 數據庫出現3000臟數據 &#x1f4a5; 用戶端彈出上百個錯誤彈窗 事故原因&#xff1a;黑產腳本通過0.5秒…

基于Spring Boot的供應商管理系統設計與實現(LW+源碼+講解)

專注于大學生項目實戰開發,講解,畢業答疑輔導&#xff0c;歡迎高校老師/同行前輩交流合作?。 技術范圍&#xff1a;SpringBoot、Vue、SSM、HLMT、小程序、Jsp、PHP、Nodejs、Python、爬蟲、數據可視化、安卓app、大數據、物聯網、機器學習等設計與開發。 主要內容&#xff1a;…

Redis|事務

文章目錄 是什么能干嘛Redis 事務 VS 數據庫事務怎么玩小總結 是什么 首先回想一下什么是數據庫的事務&#xff1f;數據庫事務是指作為單個邏輯單元執行的一系列操作&#xff0c;具備以下四個關鍵特性&#xff08;ACID&#xff09;&#xff1a; 原子性&#xff08;Atomicity&am…

一周學會Flask3 Python Web開發-Jinja2模板繼承和include標簽使用

鋒哥原創的Flask3 Python Web開發 Flask3視頻教程&#xff1a; 2025版 Flask3 Python web開發 視頻教程(無廢話版) 玩命更新中~_嗶哩嗶哩_bilibili 不管是開發網站還是后臺管理系統&#xff0c;我們頁面里多多少少有公共的模塊。比如博客網站&#xff0c;就有公共的頭部&…

二十三種設計模式詳解

二十三種設計模式是軟件開發中用于解決常見問題的經典解決方案&#xff0c;它們由 Erich Gamma 等四位作者在《設計模式&#xff1a;可復用面向對象軟件的基礎》一書中提出。這些模式分為三大類&#xff1a;創建型模式、結構型模式 和 行為型模式。 1. 創建型模式&#xff08;…

用pyside6創建一個界面并實現一個小功能且能打包成問題記錄

現在我們要開發一個程序&#xff0c;讓用戶輸入一段文本包含&#xff1a;員工姓名、薪資、年齡。該程序可以把薪資在 2萬 以上、以下的人員名單分別打印出來。 1用designer創建界面并生成UI文件&#xff1b; 2直接調用ui文件實現功能&#xff1b; from PySide6.QtWidgets im…

計算機畢業設計 ——jspssm510springboot 的人職匹配推薦系統

作者&#xff1a;程序媛9688 開發技術&#xff1a;SpringBoot、SSM、Vue、MySQL、JSP、ElementUI、Python、小程序等。 &#x1f31f;文末獲取源碼數據庫&#x1f31f; 感興趣的可以先收藏起來&#xff0c;還有大家在畢設選題&#xff08;免費咨詢指導選題&#xff09;&#xf…

包子湊數——藍橋杯真題Python

包子湊數 輸入輸出樣例 示例 1 輸入 2 4 5輸出 6樣例說明 湊不出的數目包括&#xff1a;1, 2, 3, 6, 7, 11。 示例 2 輸入 2 4 6輸出 INF樣例說明 所有奇數都湊不出來&#xff0c;所以有無限多個 運行限制 最大運行時間&#xff1a;1s最大運行內存: 256M 最大公約數 最大公…

SSM和SpringBoot有什么區別?

SSM&#xff08;Spring、Spring MVC、MyBatis&#xff09;和 Spring Boot 有以下一些區別&#xff1a; 配置方式 SSM&#xff1a;配置相對繁瑣&#xff0c;需要在多個 XML 文件中進行大量的配置。Spring Boot&#xff1a;采用“約定大于配置”的原則&#xff0c;極大地簡化了配…

極簡Python服務器后端

在Python中&#xff0c;可以使用http.server模塊和json模塊來創建一個簡單的HTTP服務器&#xff0c;該服務器可以響應80端口上的/query POST請求&#xff0c;并且請求體為JSON格式。 需要注意&#xff0c;在Linux系統上&#xff0c;使用低于1024的端口&#xff08;如80端口&…

文檔檢索服務平臺

文檔檢索服務平臺是基于Elasticsearch的全文檢索&#xff0c;包含數據采集、數據清洗、數據轉換、數據檢索等模塊。 項目地址&#xff1a;Github、國內Gitee 演示地址&#xff1a;http://silianpan.cn/gdss/ 以下是演示角色和賬號&#xff08;密碼同賬號&#xff09;&#xf…

關于Postman自動獲取token

在使用postman測試聯調接口時&#xff0c;可能每個接口都需要使用此接口生成的令牌做Authorization的Bearer Token驗證&#xff0c;最直接的辦法可能會是一步一步的點擊&#xff0c;如下圖&#xff1a; 在Authorization中去選擇Bearer Token&#xff0c;然后將獲取到的token粘貼…