Не удается подключиться к хосту telnet из экземпляра ec2 за прокси-сервером.

Хай,

Я искал то же самое и, наконец, нашел решение с помощью apache2. Я попробовал решение node с использованием сервера npm webdav -и обнаружил, что не все работает так же хорошо, как с использованием модуля apache. Затем я попробовал сервер npm dav -на основе jsDAV, который мог работать лучше и мог быть решением, но, поскольку мне приходилось иметь дело с паршивым 3g-соединением, я предпочел apache и узнал о нескольких сценариях экземпляров.

Итак, здесь я делюсь своим опытом.

http://helpcenter.epages.com/Doc/doc/apache2/README.multiple-instances

Я запускаю экземпляр для каждого пользователя webdav... не очень масштабируемый, но для работы в небольшой команде этого вполне достаточно.

Замените myUser на своего пользователя.

В Ubuntu 14.04

sh /usr/share/doc/apache2/examples/setup-instance myUser

Итак, я запускаю процесс apache как пользователь myUser, определенный в /etc/apache2 -myUser/envars

export APACHE_RUN_USER=myUser
export APACHE_RUN_GROUP=myUser

Редактировать ports.conf

# If you proxy with nginx as I did better to limit to local interface
listen localhost:8080
# listen 8080

Мне не удалось заставить PAM-аутентификацию работать в Ubuntu 14.04, поэтому пришлось повозиться с базовой аутентификацией, поскольку затем я оборачиваю ее в https с помощью nginx

htpasswd -c /etc/apache2/htpasswd myUser

Затем /etc/apache2 -myUser/sites -available/000 -default.conf



DocumentRoot /var/www/html

Alias /${APACHE_RUN_USER} /home/${APACHE_RUN_USER}

    Require all granted
    Options +Indexes



      DAV On
      AuthType Basic
      AuthName "Restricted Area"
      AuthUserFile /etc/apache2/htpasswd
      Require valid-user


DavLockDB /home/${APACHE_RUN_USER}/.DavLock
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined

тогда у прокси nginx есть хитрость с заголовком Destination передача папки icons позволяет легко понизить версию webdav в браузерах

server {
listen 443 ssl http2;
server_name exemple.com;

location ~ ^/(myUser|icons)/ {

    proxy_pass http://dav-myUser;

#         auth_basic "Restricted Content";
#         auth_basic_user_file /etc/nginx/htpasswd;

#         proxy_set_header Authorization $http_authorization;

    proxy_pass_header  Authorization;
    proxy_pass_request_headers on;

    proxy_set_header Host $host;
    proxy_set_header X-Forwarded-Host $http_host;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-Proto $scheme;

    port_in_redirect off;

    # to avoid 502 Bad Gateway:
    # http://vanderwijk.info/Members/ivo/articles/ComplexSVNSetupFix
    set $destination $http_destination;

    if ($destination ~* ^https(.+)$) {
        set $destination http$1;
    }

    proxy_set_header Destination $destination;

    proxy_read_timeout     300;
    proxy_connect_timeout  5;

    # Default is HTTP/1, keepalive is only enabled in HTTP/1.1
    proxy_http_version 1.1;

    # Remove the Connection header if the client sends it,
    # it could be "close" to close a keepalive connection
    proxy_set_header Connection "";
}

ssl on;
ssl_certificate /etc/letsencrypt/live/exemple.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/exemple.com/privkey.pem;

include /etc/letsencrypt/options-ssl-nginx.conf;

}

Нет никаких обязательств использовать nginx в качестве прокси-сервера, apache вполне может использовать https, но когда я столкнулся с проблемой назначения прокси-сервера, я решил, что стоит упомянуть об этом.

0
23.02.2020, 16:06
1 ответ

Используемый протокол был не tcp, а «специальным» протоколом, поэтому мне не удалось туннелировать трафик.

0
28.07.2021, 12:03

Теги

Похожие вопросы