Несколько серверов с одного хоста, фильтрация по доменам и поддоменам, перевод портов-NGINX

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

моя ситуация такая:

у меня есть 1 сервер (Windows Server), и я хочу запустить два FTP-сервера и два веб-сервера. Теперь я знаю, что не могу разместить два приложения на одном порту (скажем, порт 80 для обоих веб-серверов и т. д.), и поэтому мне придется поместить их на разные порты.

для этой ситуации, Допустим, у меня есть два поддомена one.example.com и two.example.com. Оба этих поддомена указывают на IP-адрес моего сервера 1.2.3.4. В любой нормальной ситуации, доступ либо веб-сервер и либо FTP-сервер через любой поддомен будет возможно, на различных портах, которые я назначил. Это не то, чего я хочу.

то, что я хотел бы сделать, это иметь один FTP-сервер и один веб-сервер на одном поддомене, и на Порту 21 и 80, а другой FTP-сервер и веб-сервер на другом поддомене, и снова на Порту 21 и 80.

насколько я могу судить, мне нужно сделать так, чтобы вы могли получать доступ только к определенным вещам (фильтру) на определенных поддоменах, а порты этих вещей (21 и 80) переводятся на другие порты на сервере (поскольку вы не можете иметь два приложения, находящиеся на одном порту).

Если я могу, я хотел бы запустить NGINX на сервере windows, но если нет, мне действительно нужно, чтобы он работал на чем-то небольшом, как мой Raspberry Pi, даже если для этого требуется, чтобы мой Pi был шлюзом между интернетом и моя сеть.

EDIT: для меня важно отметить, что я намерен запускать больше, чем просто FTP и HTTP на этом сервере, поэтому этот перевод портов и фильтрация доменов должны работать на любом приложении сокета, а не только на FTP, HTTP и т. д. Если NGINX не является решением, любое другое рабочее решение в порядке.

1
задан DevelopedLogic
18.11.2022 9:47 Количество просмотров материала 2974
Распечатать страницу

1 ответ

ngnix намного проще в linux-по крайней мере documentationwise. У меня такое чувство, что нам придется начать с самого начала. ngnix обычно работает из коробки, хотя вам нужно настроить такие вещи, как php отдельно - нет эквивалента прокси-сервера mod.

на любой современная HTTP-сервер есть вкус virtualhosts. в ngnix вы можете настроить их как один файл, так и отдельные файлы. Этот вид не будет работать на FTP-но есть обходные приемы. (Ngnix называет это сервер блокирует, но различия).

просто отдельные учетные записи в ftp с разными именами пользователей, паролями и каталогами rood.

Virtualhosts работает только на http и https и в основном является способом направления трафика на разных доменах, на разные маршруты, позволяя запускать несколько служб в разных корневых каталогах на основе имени хоста. Например, вы можете запустить два экземпляра wordpress на одном сервере в основном отдельные файлы.

я ленив - у меня один файл конфигурации на домен. Если вы запускаете на Windows - посмотреть соответствующую документацию.

вы хотите, чтобы найти, где конфигурационные файлы для каждого сайта - шахты в /etc/ngnix/sites-available, и они символически связаны с сайтами с поддержкой. это может быть основано на платформе

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

вы можете либо изменить это (я не рекомендую), либо создать файл конфигурации для каждого сайта в той же папке. Это пример того, который я использую. Это переопределяет по умолчанию

server {
        listen 80;
        listen [::]:80;


        root /var/www/html/new;

        # Add index.php to the list if you are using PHP
        index index.html index.htm index.nginx-debian.html index.php;

        server_name new.example.com;

        location / {
                # First attempt to serve request as file, then
                # as directory, then fall back to displaying a 404.
                try_files $uri $uri/ =404;
        }

        # pass the PHP scripts to FastCGI server via unix socks
        #
        location ~ \.php$ {
                include snippets/fastcgi-php.conf;

                fastcgi_pass unix:/run/php/php7.0-fpm.sock;
        }

        # deny access to .htaccess files, if Apache's document root
        # concurs with nginx's one
        #
        location ~ /\.ht {
                deny all;
        }
}

Итак, более или менее, я говорю ему слушать порт 80, по ipv4 и 6, скажите ему имя хоста, чтобы слушать, и некоторые другие php, связанные разное вещи.

Если я изменю root и своп new.example.com с new2.example.com и измените корень, он пошлет все запросы к new2.example.com к содержимому в новом корне. Вы можете, например, запустить 2 копии wordpress на одном сервере с разных доменов, так. Я создаю один из них с соответствующим именем server_name и root на домен в сайтах с поддержкой, символически связываю их с сайтами (может работать по-другому в windows) и перезагружаю свою конфигурацию nginix.

предполагая, что вы пытаетесь прокси у вас будет один или несколько серверов на разных портах. ngnix сидит напротив прямого трафика

server {
        listen 80;
        listen [::]:80;
        server_name matrix.example.com;



        location /_matrix {
        proxy_pass http://localhost:8008;
        proxy_set_header X-Forwarded-For $remote_addr;
 }

}

рассмотрим этот файл конфигурации-я не уверен, что он действительно будет работать (я запускаю версию с поддержкой HTTPS), но это то, что docs для. Он будет прослушивать порт 80 для домена matrix.example.com.

0
отвечен Journeyman Geek 2022-11-19 17:35

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх