αžƒαŸ’αž›αžΆαŸ†αž„ rpm αžŸαžΆαž˜αž‰αŸ’αž‰αžŠαŸ„αž™αž”αŸ’αžšαžΎ Inotify αž“αž·αž„ webdav

αž“αŸ…αž€αŸ’αž“αž»αž„αž€αžΆαžšαž”αŸ’αžšαž€αžΆαžŸαž“αŸαŸ‡ αž™αžΎαž„αž“αžΉαž„αž–αž·αž“αž·αžαŸ’αž™αž˜αžΎαž›αžƒαŸ’αž›αžΆαŸ†αž„αžœαžαŸ’αžαž»αž”αž»αžšαžΆαžŽ rpm αžŠαŸ„αž™αž”αŸ’αžšαžΎαžŸαŸ’αž‚αŸ’αžšαžΈαž” inotify + createrepo αžŸαžΆαž˜αž‰αŸ’αž‰αŸ” αžœαžαŸ’αžαž»αž”αž»αžšαžΆαžŽαžαŸ’αžšαžΌαžœαž”αžΆαž“αž•αŸ’αž‘αž»αž€αž‘αžΎαž„αžαžΆαž˜αžšαž™αŸˆ webdav αžŠαŸ„αž™αž”αŸ’αžšαžΎ apache httpd αŸ” αž αŸαžαž»αž’αŸ’αžœαžΈαž”αžΆαž“αž‡αžΆ apache httpd αž“αžΉαž„αžαŸ’αžšαžΌαžœαž”αžΆαž“αžŸαžšαžŸαŸαžšαž“αŸ…αž…αž»αž„αž”αž‰αŸ’αž…αž”αŸ‹αž“αŸƒαž€αžΆαžšαž”αŸ’αžšαž€αžΆαžŸαŸ”

αžŠαžΌαž…αŸ’αž“αŸαŸ‡ αžŠαŸ†αžŽαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™αžαŸ’αžšαžΌαžœαžαŸ‚αž”αŸ†αž–αŸαž‰αžαžΆαž˜αžαž˜αŸ’αžšαžΌαžœαž€αžΆαžšαžαžΆαž„αž€αŸ’αžšαŸ„αž˜αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αžšαŸ€αž”αž…αŸ†αž€αžΆαžšαž•αŸ’αž‘αž»αž€ RPM αžαŸ‚αž”αŸ‰αž»αžŽαŸ’αžŽαŸ„αŸ‡αŸ–

  • αž₯αžαž‚αž·αžαžαŸ’αž›αŸƒ

  • αž—αžΆαž–αž’αžΆαž…αžšαž€αž”αžΆαž“αž“αŸƒαž€αž‰αŸ’αž…αž”αŸ‹αž“αŸ…αž€αŸ’αž“αž»αž„αžƒαŸ’αž›αžΆαŸ†αž„αž–αžΈαžšαž”αžΈαžœαž·αž“αžΆαž‘αžΈαž”αž“αŸ’αž‘αžΆαž”αŸ‹αž–αžΈαž€αžΆαžšαž•αŸ’αž‘αž»αž€αž‘αžΎαž„αž‘αŸ…αž€αžΆαž“αŸ‹αžƒαŸ’αž›αžΆαŸ†αž„αžœαžαŸ’αžαž»αž”αž»αžšαžΆαžŽαŸ”

  • αž„αžΆαž™αžŸαŸ’αžšαž½αž›αžαŸ†αž‘αžΎαž„ αž“αž·αž„αžαŸ‚αž‘αžΆαŸ†

  • αžŸαž˜αžαŸ’αžαž—αžΆαž–αž€αŸ’αž“αž»αž„αž€αžΆαžšαž’αŸ’αžœαžΎαž±αŸ’αž™αž˜αžΆαž“αž€αž˜αŸ’αžšαž·αžαžαŸ’αž–αžŸαŸ‹

    αž αŸαžαž»αž’αŸ’αžœαžΈαž”αžΆαž“αž‡αžΆαž˜αž·αž“αž˜αžΆαž“ SonaType Nexus ឬ αž•αžΌαžŸ:

  • αž€αžΆαžšαž•αŸ’αž‘αž»αž€αž“αŸ…αž€αŸ’αž“αž»αž„ SonaType Nexus ឬ αž•αžΌαžŸ αžœαžαŸ’αžαž»αž”αž»αžšαžΆαžŽαž‡αžΆαž…αŸ’αžšαžΎαž“αž”αŸ’αžšαž—αŸαž‘αž“αžΆαŸ†αž±αŸ’αž™αž€αžΆαžšαž–αž·αžαžŠαŸ‚αž›αžαžΆ SonaType Nexus ឬ αž•αžΌαžŸ αž€αŸ’αž›αžΆαž™αž‡αžΆαž…αŸ†αžŽαž»αž…αžαŸ‚αž˜αž½αž™αž“αŸƒαž€αžΆαžšαž”αžšαžΆαž‡αŸαž™αŸ”

  • αž—αžΆαž–αž’αžΆαž…αžšαž€αž”αžΆαž“αžαŸ’αž–αžŸαŸ‹αž“αŸ…αž€αŸ’αž“αž»αž„ SonaType Nexus αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αž„αŸ‹αŸ”

  • αž•αžΌαžŸ αžœαžΆαž αžΆαž€αŸ‹αžŠαžΌαž…αž‡αžΆαžŠαŸ†αžŽαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™αžœαž·αžŸαŸ’αžœαž€αž˜αŸ’αž˜αž αž½αžŸαž αŸαžαž»αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αžαŸ’αž‰αž»αŸ†αŸ”

  • αžœαžαŸ’αžαž»αž”αž»αžšαžΆαžŽαž“αŸ…αž€αŸ’αž“αž»αž„ SonaType Nexus αžšαž€αŸ’αžŸαžΆαž‘αž»αž€αž€αŸ’αž“αž»αž„αž”αŸ’αž›αž»αž€αŸ” αž“αŸ…αž€αŸ’αž“αž»αž„αž–αŸ’αžšαžΉαžαŸ’αžαž·αž€αžΆαžšαžŽαŸαž“αŸƒαž€αžΆαžšαžŠαžΆαž…αŸ‹αž…αžšαž“αŸ’αžαž’αž‚αŸ’αž‚αž·αžŸαž“αžΈαž—αŸ’αž›αžΆαž˜αŸ— αž’αŸ’αž“αž€αž“αžΉαž„αž˜αž·αž“αž’αžΆαž…αžŸαŸ’αžŠαžΆαžš blob αž”αžΆαž“αž‘αŸ αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž’αŸ’αž“αž€αž˜αž·αž“αž˜αžΆαž“αž€αžΆαžšαž”αž˜αŸ’αžšαž»αž„αž‘αž»αž€αŸ” αž™αžΎαž„β€‹αž˜αžΆαž“β€‹αž€αŸ†αž αž»αžŸβ€‹αž“αŸαŸ‡αŸ– ERROR [ForkJoinPool.commonPool-worker-2] *SYSTEM [com.orientechnologies.orient.core.storage](http://com.orientechnologies.orient.core.storage/).fs.OFileClassic - $ANSI{green {db=security}} Error during data read for file 'privilege_5.pcl' 1-th attempt [java.io](http://java.io/).IOException: Bad address. Blob αž˜αž·αž“β€‹αžŠαŸ‚αž›β€‹αž‡αžΆβ€‹αžŸαŸ‡αžŸαŸ’αž”αžΎαž™β€‹αž‘αŸαŸ”

αž”αŸ’αžšαž—αž–

β†’ αž€αžΌαžŠαž”αŸ’αžšαž—αž–αž˜αžΆαž“αž‘αžΈαžαžΆαŸ†αž„αž“αŸ… αž“αŸ…αž‘αžΈαž“αŸαŸ‡

αžŸαŸ’αž‚αŸ’αžšαžΈαž”αž…αž˜αŸ’αž”αž„αž˜αžΎαž›αž‘αŸ…αžŠαžΌαž…αž“αŸαŸ‡αŸ–

#!/bin/bash

source /etc/inotify-createrepo.conf
LOGFILE=/var/log/inotify-createrepo.log

function monitoring() {
    inotifywait -e close_write,delete -msrq --exclude ".repodata|.olddata|repodata" "${REPO}" | while read events 
    do
      echo $events >> $LOGFILE
      touch /tmp/need_create
    done
}

function run_createrepo() {
  while true; do
    if [ -f /tmp/need_create ];
    then
      rm -f /tmp/need_create
      echo "start createrepo $(date --rfc-3339=seconds)"
      /usr/bin/createrepo --update "${REPO}"
      echo "finish createrepo $(date --rfc-3339=seconds)"
    fi
    sleep 1
  done
}

echo "Start filesystem monitoring: Directory is $REPO, monitor logfile is $LOGFILE"
monitoring >> $LOGFILE &
run_createrepo >> $LOGFILE &

αž€αžΆαžšαž€αŸ†αžŽαžαŸ‹

inotify-createrepo αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαžαŸ‚αž›αžΎ CentOS 7 αž¬αžαŸ’αž–αžŸαŸ‹αž‡αžΆαž„αž“αŸαŸ‡αŸ” αž˜αž·αž“αž’αžΆαž…αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαžœαžΆαž“αŸ…αž›αžΎ CentOS 6 αž”αžΆαž“αž‘αŸαŸ”

yum -y install yum-plugin-copr
yum copr enable antonpatsev/inotify-createrepo
yum -y install inotify-createrepo
systemctl start inotify-createrepo

αž€αžΆαžšαž€αŸ†αžŽαžαŸ‹β€‹αžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’

αžαžΆαž˜αž›αŸ†αž“αžΆαŸ†αžŠαžΎαž˜ inotify-createrepo αžαŸ’αžšαž½αžαž–αž·αž“αž·αžαŸ’αž™αžαžαž˜αž½αž™αŸ” /var/www/repos/rpm-repo/.

αž’αŸ’αž“αž€αž’αžΆαž…αž•αŸ’αž›αžΆαžŸαŸ‹αž”αŸ’αžαžΌαžšαžαžαž―αž€αžŸαžΆαžšαž“αŸαŸ‡αž“αŸ…αž€αŸ’αž“αž»αž„αž―αž€αžŸαžΆαžš /etc/inotify-createrepo.conf.

αž”αŸ’αžšαžΎ

αž“αŸ…αž–αŸαž›αž”αž“αŸ’αžαŸ‚αž˜αž―αž€αžŸαžΆαžšαžŽαžΆαž˜αž½αž™αž‘αŸ…αž€αŸ’αž“αž»αž„αžαžαž―αž€αžŸαžΆαžš /var/www/repos/rpm-repo/ inotifywait αž“αžΉαž„αž”αž„αŸ’αž€αžΎαžαž―αž€αžŸαžΆαžš /tmp/need_create. αž˜αž»αžαž„αžΆαžš run_createrepo αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž€αŸ’αž“αž»αž„αžšαž„αŸ’αžœαž·αž›αž‡αž»αŸ†αž‚αŸ’αž˜αžΆαž“αž€αŸ†αžŽαžαŸ‹ αž αžΎαž™αžαŸ’αžšαž½αžαž–αž·αž“αž·αžαŸ’αž™αž―αž€αžŸαžΆαžš /tmp/need_create. αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž˜αžΆαž“αž―αž€αžŸαžΆαžšαž”αž“αŸ’αž‘αžΆαž”αŸ‹αž˜αž€αžŠαŸ†αžŽαžΎαžšαž€αžΆαžš createrepo --update.

αž’αžΆαžαž»αž˜αž½αž™αž“αžΉαž„αž”αž„αŸ’αž αžΆαž‰αž“αŸ…αž€αŸ’αž“αž»αž„αž―αž€αžŸαžΆαžšαŸ–

/var/www/repos/rpm-repo/ CREATE nginx-1.16.1-1.el7.ngx.x86_64.rpm
start createrepo 2020-03-02 09:46:21+03:00
Spawning worker 0 with 1 pkgs
Spawning worker 1 with 0 pkgs
Spawning worker 2 with 0 pkgs
Spawning worker 3 with 0 pkgs
Workers Finished
Saving Primary metadata
Saving file lists metadata
Saving other metadata
Generating sqlite DBs
Sqlite DBs complete
finish createrepo 2020-03-02 09:46:22+03:00

αžŸαž˜αžαŸ’αžαž—αžΆαž–αž€αŸ’αž“αž»αž„αž€αžΆαžšαž’αŸ’αžœαžΎαž±αŸ’αž™αž˜αžΆαž“αž€αž˜αŸ’αžšαž·αžαžαŸ’αž–αžŸαŸ‹

αžŠαžΎαž˜αŸ’αž”αžΈαž’αŸ’αžœαžΎαž±αŸ’αž™αž˜αžΆαž“αž—αžΆαž–αž’αžΆαž…αžšαž€αž”αžΆαž“αžαŸ’αž–αžŸαŸ‹αž…αŸαž‰αž–αžΈαžŠαŸ†αžŽαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™αžŠαŸ‚αž›αž˜αžΆαž“αžŸαŸ’αžšαžΆαž”αŸ‹ αžαŸ’αž‰αž»αŸ†αž‚αž·αžαžαžΆαž’αŸ’αž“αž€αž’αžΆαž…αž”αŸ’αžšαžΎαž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸαž…αŸ†αž“αž½αž“ 2 αž‚αžΊ Keepalived αžŸαž˜αŸ’αžšαžΆαž”αŸ‹ HA αž“αž·αž„ Lsyncd αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαž’αŸ’αžœαžΎαžŸαž˜αž€αžΆαž›αž€αž˜αŸ’αž˜αžœαžαŸ’αžαž»αž”αž»αžšαžΆαžŽαŸ” ស៊ីស៊ីឌី - αžŠαŸαž˜αž·αž“αžŠαŸ‚αž›αžαŸ’αžšαž½αžαž–αž·αž“αž·αžαŸ’αž™αž€αžΆαžšαž•αŸ’αž›αžΆαžŸαŸ‹αž”αŸ’αžαžΌαžšαž“αŸ…αž€αŸ’αž“αž»αž„αžαžαž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“ αž”αŸ’αžšαž˜αžΌαž›αž•αŸ’αžαž»αŸ†αž–αž½αž€αžœαžΆ αž αžΎαž™αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž–αžΈαž–αŸαž›αžœαŸαž›αžΆαž‡αžΆαž€αŸ‹αž›αžΆαž€αŸ‹αž˜αž½αž™ rsync αž…αžΆαž”αŸ‹αž•αŸ’αžαžΎαž˜αž’αŸ’αžœαžΎαžŸαž˜αž€αžΆαž›αž€αž˜αŸ’αž˜αž–αž½αž€αžœαžΆαŸ” αž–αŸαžαŸŒαž˜αžΆαž“αž›αž˜αŸ’αž’αž·αž αž“αž·αž„αž€αžΆαžšαž€αŸ†αžŽαžαŸ‹αžαŸ’αžšαžΌαžœαž”αžΆαž“αž–αž·αž–αžŽαŸŒαž“αžΆαž“αŸ…αž€αŸ’αž“αž»αž„αž”αŸ’αžšαž€αžΆαžŸ "αž€αžΆαžšαž’αŸ’αžœαžΎαžŸαž˜αž€αžΆαž›αž€αž˜αŸ’αž˜αž›αžΏαž“αž“αŸƒαž―αž€αžŸαžΆαžšαžšαžΆαž”αŸ‹αž–αžΆαž“αŸ‹αž›αžΆαž“".

αžœαŸαž”αžŠαžΆαžœαžΈ

αž˜αžΆαž“αžœαž·αž’αžΈαž‡αžΆαž…αŸ’αžšαžΎαž“αžŠαžΎαž˜αŸ’αž”αžΈαž•αŸ’αž‘αž»αž€αž‘αžΎαž„αž―αž€αžŸαžΆαžšαŸ– SSH, NFS, WebDav αŸ” WebDav αž αžΆαž€αŸ‹αžŠαžΌαž…αž‡αžΆαž‡αž˜αŸ’αžšαžΎαžŸαž‘αŸ†αž“αžΎαž” αž“αž·αž„αžŸαžΆαž˜αž‰αŸ’αž‰αŸ”

αžŸαž˜αŸ’αžšαžΆαž”αŸ‹ WebDav αž™αžΎαž„αž“αžΉαž„αž”αŸ’αžšαžΎ Apache httpd αŸ” αž αŸαžαž»αž’αŸ’αžœαžΈαž”αžΆαž“αž‡αžΆ Apache httpd αž“αŸ…αž†αŸ’αž“αžΆαŸ† 2020 αž αžΎαž™αž˜αž·αž“αž˜αŸ‚αž“ nginx?

αžαŸ’αž‰αž»αŸ†αž…αž„αŸ‹αž”αŸ’αžšαžΎαž§αž”αž€αžšαžŽαŸαžŸαŸ’αžœαŸαž™αž”αŸ’αžšαžœαžαŸ’αžαž·αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž”αž„αŸ’αž€αžΎαžαž˜αŸ‰αžΌαžŒαž»αž› Nginx + (αž§αž‘αžΆαž αžšαžŽαŸ Webdav) αŸ”

αž˜αžΆαž“αž‚αž˜αŸ’αžšαŸ„αž„αžŸαžΆαž„αžŸαž„αŸ‹ Nginx + modules - nginx-builder. αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž’αŸ’αž“αž€αž”αŸ’αžšαžΎ nginx + wevdav αžŠαžΎαž˜αŸ’αž”αžΈαž•αŸ’αž‘αž»αž€αž‘αžΎαž„αž―αž€αžŸαžΆαžš αž“αŸ„αŸ‡αž’αŸ’αž“αž€αžαŸ’αžšαžΌαžœαž€αžΆαžšαž˜αŸ‰αžΌαžŒαž»αž› nginx-dav-ext-module. αž“αŸ…αž–αŸαž›αž–αŸ’αž™αžΆαž™αžΆαž˜αž”αž„αŸ’αž€αžΎαž αž“αž·αž„αž”αŸ’αžšαžΎ Nginx αž‡αžΆαž˜αž½αž™ nginx-dav-ext-module αžŠαŸ„αž™αž˜αžΆαž“αž‡αŸ†αž“αž½αž™αž–αžΈ nginx-builder αž™αžΎαž„β€‹αž“αžΉαž„β€‹αž‘αž‘αž½αž›β€‹αž”αžΆαž“β€‹αž€αŸ†αž αž»αžŸ αž”αŸ’αžšαžΎαžŠαŸ„αž™ http_dav_module αž‡αŸ†αž“αž½αžŸαž±αŸ’αž™ nginx-dav-ext-module. αž€αŸ†αž αž»αžŸαžŠαžΌαž…αž‚αŸ’αž“αžΆαž“αŸαŸ‡αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αž·αž‘αž“αŸ…αžšαžŠαžΌαžœαž€αŸ’αžαŸ… nginxαŸ– [αž€αžΎαž] αž€αžΆαžšαžŽαŸ‚αž“αžΆαŸ†αž˜αž·αž“αžŸαŸ’αž‚αžΆαž›αŸ‹ dav_methods.

αžαŸ’αž‰αž»αŸ†β€‹αž”αžΆαž“β€‹αž’αŸ’αžœαžΎβ€‹αžŸαŸ†αžŽαžΎβ€‹αž‘αžΆαž‰β€‹αž™αž€ αž”αž“αŸ’αžαŸ‚αž˜αž’αžΈαž€ git_url αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž”αž„αŸ’αž€αž”αŸ‹ αž“αž·αž„ refactored --with-{}_module ΠΈ αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž˜αŸ‰αžΌαžŒαž»αž› == "http_dav_module" αž”αž“αŸ’αžαŸ‚αž˜ --with. αž”αŸ‰αž»αž“αŸ’αžαŸ‚αž–αž½αž€αž‚αŸαž˜αž·αž“αžαŸ’αžšαžΌαžœαž”αžΆαž“αž‘αž‘αž½αž›αž™αž€αž‘αŸαŸ”

αž€αŸ†αžŽαžαŸ‹αžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’ webdav.conf

DavLockDB /var/www/html/DavLock
<VirtualHost localhost:80>
    ServerAdmin webmaster@localhost
    DocumentRoot /var/www/html
    ErrorLog /var/log/httpd/error.log
    CustomLog /var/log/httpd/access.log combined

    Alias /rpm /var/www/repos/rpm-repo
    <Directory /var/www/repos/rpm-repo>
        DAV On
        Options Indexes FollowSymlinks SymLinksifOwnerMatch IncludesNOEXEC
        IndexOptions NameWidth=* DescriptionWidth=*
        AllowOverride none
        Require all granted
    </Directory>
</VirtualHost>

αžαŸ’αž‰αž»αŸ†αž‚αž·αžαžαžΆαž’αŸ’αž“αž€αž“αžΉαž„αž’αŸ’αžœαžΎαž€αžΆαžšαž€αŸ†αžŽαžαŸ‹αžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’ Apache httpd αžŠαŸ‚αž›αž“αŸ…αžŸαž›αŸ‹αžŠαŸ„αž™αžαŸ’αž›αž½αž“αž―αž„αŸ”

Nginx αž“αŸ…αž–αžΈαž˜αž»αž Apache httpd

αž˜αž·αž“αžŠαžΌαž…αž€αž˜αŸ’αž˜αžœαž·αž’αžΈ Apache αž‘αŸ Nginx αž”αŸ’αžšαžΎαž‚αŸ†αžšαžΌαžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαžŸαŸ†αžŽαžΎαžŠαŸ‚αž›αž˜αžΆαž“αž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αž›αžΎαž–αŸ’αžšαžΉαžαŸ’αžαž·αž€αžΆαžšαžŽαŸ αžŠαŸ‚αž›αž˜αžΆαž“αž“αŸαž™αžαžΆαž˜αžΆαž“αžαŸ‚αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸ HTTP αž˜αž½αž™αž”αŸ‰αž»αžŽαŸ’αžŽαŸ„αŸ‡αžŠαŸ‚αž›αžαŸ’αžšαžΌαžœαž”αžΆαž“αž‘αžΆαž˜αž‘αžΆαžšαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž’αžαž·αžαž·αž‡αž“αž˜αž½αž™αž…αŸ†αž“αž½αž“αŸ” αž’αŸ’αž“αž€αž’αžΆαž…αž”αŸ’αžšαžΎ nginx αž“αž·αž„αž€αžΆαžαŸ‹αž”αž“αŸ’αžαž™αž€αžΆαžšαž•αŸ’αž‘αž»αž€αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸαŸ”

nginx-front.conf αž€αŸ†αžŽαžαŸ‹αžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’αŸ” αžαŸ’αž‰αž»αŸ†αž‚αž·αžαžαžΆαž’αŸ’αž“αž€αž“αžΉαž„αž’αŸ’αžœαžΎαž€αžΆαžšαž€αŸ†αžŽαžαŸ‹αžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’ nginx αžŠαŸ‚αž›αž“αŸ…αžŸαž›αŸ‹αžŠαŸ„αž™αžαŸ’αž›αž½αž“αž―αž„αŸ”

upstream nginx_front {
    server localhost:80;
}

server {
    listen 443 ssl;
    server_name ваш-Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Ρ…-хост;
    access_log /var/log/nginx/nginx-front-access.log main;
    error_log /var/log/nginx/nginx-front.conf-error.log warn;

    location / {
        proxy_pass http://nginx_front;
    }
}

αž€αžΆαžšαž‘αžΆαž‰αž™αž€αž―αž€αžŸαžΆαžšαžαžΆαž˜αžšαž™αŸˆ WebDav

αž€αžΆαžšαž‘αžΆαž‰αž™αž€ rpm αž‚αžΊαž„αžΆαž™αžŸαŸ’αžšαž½αž›αžŽαžΆαžŸαŸ‹αŸ”

curl -T ./nginx-1.16.1-1.el7.ngx.x86_64.rpm https://ваш-Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹ΠΉ-хост/rpm/

αž”αŸ’αžšαž—αž–: www.habr.com

αž”αž“αŸ’αžαŸ‚αž˜αž˜αžαž·αž™αŸ„αž”αž›αŸ‹