Как перенаправить различные sub доменные запросы к другому порту

Сначала вместо создания постоянной таблицы я просто изменил ее на временную таблицу.

Итак, учитывая ваш пример, я пришел к следующему:

WITH CTE as(
select ROW_NUMBER() OVER(ORDER BY BLOCK) RN, LAG(Value1,1,VALUE1) OVER (ORDER BY BLOCK) LG, 
GatewayDetailID, Block, Value1,Value2,Vaule3
 from #tmp
), 
CTE2 as (
    select *, CASE WHEN LG <> VALUE1 THEN RN ELSE 0 END RowMark 
    from cte
    ), 
CTE3 AS (
    select MIN(Block) BL, RowMark from CTE2
    GROUP BY ROwMark
    ),
CTE4 AS (
    SELECT GatewayDetailID,Block,Value1,Value2,Vaule3,RMM from cte2 t1
    CROSS APPLY (SELECT MAX(ROWMark) RMM FROM CTE3 t9 where t1.Block >= t9.ROwMark and t1.RN >= t9.RowMark) t2
    )

SELECT GateWayDetailID,Block,Value1,Value2,Vaule3, ROW_NUMBER() OVER(Partition by RMM ORDER BY BLOCK) RN
FROM CTE4
ORDER BY BLOCK

Сначала мне нужно было получить номер строки для всех строк, а затем в зависимости от того, когда значение1 изменилось, я отметил это как новая группа. Из этого я создал CTE с датой и строкой границы для каждой группы. И, наконец, я перекрестно применил это обратно к таблице, чтобы найти каждую строку в каждой группе.

Из этого последнего CTE я просто применил простую функцию ROW_NUMBER (), разделенную на каждую группу RowMarker и номера строк poof ....

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

17
задан adjenks 19 March 2019 в 23:22
поделиться

3 ответа

Я предположу, что у Вас есть своя собственная причина желания этих двух сайтов (www и blog) для работы различных портов - и в различных процессах. Если это не то, что Вы предназначили, например, Вы не хотели иметь два отличных процесса, то наличие различных портов не может быть тем, что Вы предназначили также: используйте VirtualHost вместо этого, чтобы совместно разместить эти два домена в том же apache+php экземпляре на порте 80. Иначе, продолжает читать.

Предположение, что у Вас есть свои два процесса apache+php, слушающие на localhost:82 и localhost:83 соответственно, поднимает одну треть, процесс только для апача для действия как обратный прокси. Имейте обратный апачский экземпляр прокси, прислушиваются к запросам, прибывающим в порт 80 из Интернета, с двумя виртуальными определениями хоста. Первое виртуальное определение хоста, www, передало бы запросы к localhost:82, тогда как второе виртуальное определение хоста, blog, передаст запросы к locahost:83, например:

NameVirtualHost *:80

# www
<VirtualHost *:80>
  ServerName www.myexample.com
  ProxyPass               /       http://localhost:82/
  ProxyPassReverse        /       http://localhost:82/
</VirtualHost>

# blog
<VirtualHost *:80>
  ServerName blog.myexample.com
  ProxyPass               /       http://localhost:83/
  ProxyPassReverse        /       http://localhost:83/
</VirtualHost>
35
ответ дан 30 November 2019 в 11:18
поделиться

Я использую прокси для этого типа вещей.

В моем примере, у меня есть апачские 1.3, работающие на порте 80, но мне был нужен репозиторий SVN для работы апачских 2.2, и я не хотел к типу:82 на конце домена каждый раз. Таким образом, я сделал перенаправление прокси на апачских 1.3 (порт 80):

<VirtualHost *:80>
  ServerName svn.mydomain.com
  ServerAlias svn
  ServerAdmin my@email.com

  <IfModule mod_proxy.c>
    ProxyPass / http://svn:82/
  </IfModule>
</VirtualHost>
5
ответ дан 30 November 2019 в 11:18
поделиться

От вершины моей шляпы:

Listen 82
Listen 83
NameVirtualHost 1.2.3.4 # Use your server's IP here

<VirtualHost www.myexample.com:82>
# Configure www.myexample.com here
</VirtualHost>

<VirtualHost blog.myexample.com:83>
# Configure blog.myexample.com here
</VirtualHost>
0
ответ дан 30 November 2019 в 11:18
поделиться
Другие вопросы по тегам:

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