IIS эквивалентен тегу Location в Apache

avatar
Mosab Wadea
9 августа 2021 в 07:02
91
1
0

У меня есть приложение, установленное на сервере Windows, который использует порт 8090, и я применил конфигурацию обратного прокси-сервера с помощью IIS, чтобы сделать приложение доступным через порт 443

однако раньше у меня возникали проблемы с веб-приложением, когда я связался с разработчиками, они посоветовали мне использовать сервер apache в Windows и применить следующую конфигурацию:

<VirtualHost *:443>
    ServerName demo.somwthing.com
    SSLEngine On
    SSLProxyEngine On 
    SSLCertificateFile ""
    SSLCertificateKeyFile ""
    SSLCertificateChainFile ""
    
    #LogLevel debug mod_rewrite.so:debug
    #LogLevel trace5
    ErrorLog C:\Server\Apache\Apache24\logs\report.txt
    CustomLog C:\Server\Apache\Apache24\logs\custom.txt \
          "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"
    
    ProxyRequests Off
    ProxyPreserveHost On
    ProxyPass /.well-known !
    
    <Location /event-stream>
        Require all granted
        RewriteEngine on
        RewriteCond %{HTTP:UPGRADE} ^WebSocket$ [NC]
        RewriteCond %{HTTP:CONNECTION} Upgrade$ [NC]
        RewriteRule .* ws://192.168.11.132:8090%{REQUEST_URI} [P]
    </Location>
    
    <Location /system-event-stream>
        Require all granted
        RewriteEngine on
        RewriteCond %{HTTP:UPGRADE} ^WebSocket$ [NC]
        RewriteCond %{HTTP:CONNECTION} Upgrade$ [NC]
        RewriteRule .* ws://192.168.11.132:8090%{REQUEST_URI} [P]
    </Location>
    
        <Location /dashboard-event-stream>
        Require all granted
        RewriteEngine on
        RewriteCond %{HTTP:UPGRADE} ^WebSocket$ [NC]
        RewriteCond %{HTTP:CONNECTION} Upgrade$ [NC]
        RewriteRule .* ws://192.168.11.132:8090%{REQUEST_URI} [P]
    </Location>



    ProxyPass / http://192.168.1.132:8090/
    ProxyPassReverse / http://192.168.1.132:8090/
</VirtualHost>

Мне не удалось успешно запустить apache в Windows, и мы по-прежнему предпочитаем для этого IIS, на данный момент я смог применить правила и условия перезаписи в IIS, но я до сих пор не знаю, как преобразовать тег в in IIS, совпадает ли тег местоположения в предыдущей конфигурации с URL-адресом сопоставления? Пожалуйста, помогите мне понять тег местоположения и то, что он делает в этой конфигурации, и как отразить это в IIS

Спасибо

Источник
Olaf Kock
9 августа 2021 в 07:17
0

удален тег apache, поскольку это вопрос IIS, и вы «просто» используете его для описания своих целей. Этот вопрос не об Apache httpd.

Ответы (1)

avatar
samwu
10 августа 2021 в 07:18
0

Модуль перезаписи URL-адресов в IIS 7 и выше предоставляет функцию импорта, которая значительно упрощает процесс преобразования правил Apache mod_rewrite в правила перезаписи URL-адресов IIS.

Дополнительную информацию можно найти по этой ссылке: Импорт правил Apache mod_rewrite.

Mosab Wadea
16 августа 2021 в 09:18
0

Спасибо, @samwu, за повтор, да, я импортировал конфигурацию, и пока она работает, однако я не вижу, чтобы она сделала что-либо, связанное с тегом <location> из фильтра apache. Поэтому я спрашиваю, есть ли какое-либо использование тега местоположения и нужно ли мне что-то делать в IIS в этом отношении.

samwu
17 августа 2021 в 09:57
0

Извините, соответствующего документа не нашел, но по определению местоположения можно попробовать найти похожие теги в iis. Директива <Location> ограничивает область действия вложенных директив URL-адресом и начинает подраздел, который завершается директивой </Location>. Разделы <Location> обрабатываются в том порядке, в котором они появляются в файле конфигурации, после чтения разделов <Directory> и файлов .htaccess и после разделов <Files>.

Mosab Wadea
18 августа 2021 в 11:13
0

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