ฉันมีเว็บแอปพลิเคชันที่ทำงานบนเซิร์ฟเวอร์เครื่องหนึ่ง และใช้ IIS กับ rewriteURL บนเซิร์ฟเวอร์อื่นเป็นพร็อกซีย้อนกลับ
ฉันกำหนดค่ากฎขาเข้าเพื่อเขียนที่อยู่พร็อกซีย้อนกลับด้วยที่อยู่ของเว็บแอปพลิเคชันเซิร์ฟเวอร์ มันใช้งานได้ดี
อย่างไรก็ตาม แอปพลิเคชันอนุญาตให้ผู้ใช้ดาวน์โหลดเนื้อหาบางส่วนและเปลี่ยนเส้นทางไปยังที่อยู่ดาวน์โหลด ขณะนี้ ผู้ใช้จะถูกส่งต่อไปยังที่อยู่ IP ในเครื่องของเว็บแอปพลิเคชันเซิร์ฟเวอร์ ไม่ใช่ที่อยู่สาธารณะของพร็อกซีย้อนกลับ
ฉันเข้าใจ ฉันต้องแก้ไขกฎขาออกด้วยเพื่อให้เข้าใจสิ่งนี้ แต่ก็ไม่เข้าใจวิธีใดวิธีหนึ่ง
ฉันทำตามคำแนะนำที่นี่ https://docs.microsoft.com/en-us/iis/extensions/url-rewrite-module/modifying-http-response-headers
และกฎการเขียนซ้ำปัจจุบันของฉันมีลักษณะเช่นนี้
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<rewrite>
<rules>
<rule name="er-platform" stopProcessing="true">
<match url="^er-platform(.*)" />
<conditions>
<add input="{CACHE_URL}" pattern="^(https?)://" />
</conditions>
<action type="Rewrite" url="{C:1}://192.168.80.6:8443/{R:0}" />
<serverVariables>
<set name="ORIGINAL_HOST" value="{HTTP_HOST}" />
</serverVariables>
</rule>
</rules>
<outboundRules>
<rule name="er-platform" preCondition="IsRedirection" enabled="true">
<match serverVariable="RESPONSE_LOCATION" pattern="^(https?)://[^/]+/(.*)" />
<conditions logicalGrouping="MatchAny">
<add input="{ORIGINAL_HOST}" pattern=".+" />
</conditions>
<action type="Rewrite" value="{R:1}://{ORIGINAL_HOST}/{R:2}" />
</rule>
<preConditions>
<preCondition name="IsRedirection">
<add input="{RESPONSE_STATUS}" pattern="3\d\d" />
</preCondition>
</preConditions>
</outboundRules>
</rewrite>
</system.webServer>
</configuration>
ฉันยังคงถูกเปลี่ยนเส้นทางไปยัง IP ในเครื่องเมื่อพยายามดาวน์โหลดบางอย่าง ฉันจะต้องเปลี่ยนกฎเพื่อให้ถูกต้องได้อย่างไร
ขอบคุณ,
โทมัส