Score:1

ProxyPass และ ProxyPassReverse ทำให้เกิดข้อผิดพลาด 500 บนเซิร์ฟเวอร์

ธง in

เรามีดังต่อไปนี้:

  • เว็บไซต์คงที่ WordPress ที่ https://www.domain1.com.
  • เว็บแอปพลิเคชัน React/Django ที่ https://www.domain2.com ด้วย URI หลักสามรายการ:
    • /
    • /แอดมิน
    • /api

เราต้องการให้ดูเหมือนว่าเป็นโดเมนเดียวกันที่ https://www.domain1.com. ฉันบอกว่าสามารถทำได้โดยการตั้งค่า พร็อกซีย้อนกลับ บนเว็บเซิร์ฟเวอร์ Apache ซึ่งอยู่ที่ https://www.domain1.com. ด้วยเหตุนี้เราจึงต้องย้ายปัจจุบัน / ของ https://www.domain2.com, ถึง /พอร์ทัล หรือ /แผงควบคุมซึ่งก็ไม่มีปัญหา

สิ่งที่จะเกิดขึ้นคือหากมีการเชื่อมโยงไปยัง https://www.domain1.com/portal/*ก็จะให้บริการ https://www.domain2.com/portal/*แต่ก็ยังจะบอกว่า https://www.domain1.com/portal/* ในเบราว์เซอร์ ดังนั้นจึงดูเหมือนเว็บไซต์เดียวกันสำหรับผู้ใช้แม้ว่าจะมาจากโดเมนอื่นก็ตาม

อย่างไรก็ตาม ดังนั้นฉันจึงพยายามแก้ไข .htaccess สำหรับ https://www.domain1.com/ โดยเพิ่มสิ่งต่อไปนี้ไว้ด้านบน:

ProxyPass "/พอร์ทัล" "https://www.domain2.com/portal"
ProxyPassReverse "/พอร์ทัล" "https://www.domain2.com/portal"

#หรือเฉยๆ 

ProxyPass "/พอร์ทัล" "https://www.domain2.com/"
ProxyPassReverse "/พอร์ทัล" "https://www.domain2.com/"

สิ่งนี้ทำให้เกิดก 500 ข้อผิดพลาดในเว็บไซต์ WordPress ทั้งหมด

นี่คือทั้งหมดของ .htaccess:

ProxyPass "/พอร์ทัล" "https://www.domain2.com/portal"
ProxyPassReverse "/พอร์ทัล" "https://www.domain2.com/portal"

# เริ่มต้น WpFastestCache
# เวลาที่แก้ไข : 09-09-21 9:26:57
<IfModule mod_rewrite.c>
RewriteEngine เปิดอยู่
ฐานการเขียนซ้ำ /
RewriteCond %{HTTPS} =เปิด
RewriteCond %{HTTP_HOST} ^www.domain1.com
# เริ่มการยกเว้น WPFC
# สิ้นสุดการยกเว้น WPFC
# Start_WPFC_Exclude_Admin_Cookie
RewriteCond %{HTTP:Cookie} !wordpress_logged_in_[^\=]+\[email protected]
RewriteCond %{HTTP:Cookie} !wordpress_logged_in_[^\=]+\=โฆษณา,om
# End_WPFC_Exclude_Admin_Cookie
RewriteCond %{HTTP_HOST} ^www.domain1.com
RewriteCond %{HTTP_USER_AGENT} !(facebookexternalhit|WP_FASTEST_CACHE_CSS_VALIDATOR|Twitterbot|LinkedInBot|WhatsApp|Mediatoolkitbot)
RewriteCond %{HTTP_USER_AGENT} !(WP\sFastest\sCache\sPreload(\siPhone\sMobile)?\s*Bot)
RewriteCond %{REQUEST_METHOD} !POST
RewriteCond %{REQUEST_URI} !(\/){2}$
RewriteCond %{REQUEST_URI} ![^\/]+\/$
เขียนซ้ำ %{QUERY_STRING} !.+
RewriteCond %{HTTP:คุกกี้} !comment_author_
RewriteCond %{HTTP:Cookie} !safirmobilswitcher=โมบิล
RewriteCond %{HTTP:Profile} !^[a-z0-9\"]+ [NC]
RewriteCond %{DOCUMENT_ROOT}/wp-content/cache/all/$1/index.html -f [หรือ]
RewriteCond /nfs/c09/h02/mnt/135490/domains/domain1.com/html/wp-content/cache/all/$1/index.html -f
RewriteRule ^(.*) "/wp-content/cache/all/$1/index.html" [L]
</หากโมดูล>
<FilesMatch "ดัชนี\.(html|htm)$">
AddDefaultCharset UTF-8
<ifModule mod_headers.c>
FileETag ไม่มี
ส่วนหัวยกเลิกการตั้งค่า ETag
ส่วนหัวตั้งค่าการควบคุมแคช "อายุสูงสุด = 0, ไม่มีแคช, ไม่มีที่เก็บ, ต้องตรวจสอบใหม่"
ส่วนหัวตั้งค่า Pragma "ไม่มีแคช"
Header set Expires "จ. 29 ต.ค. 2466 20:30:00 GMT"
</ifModule>
</FilesMatch>
# สิ้นสุด WpFastestCache
# เริ่มต้น GzipWpFastestCache
<IfModule mod_deflate.c>
AddType x-font/woff .woff
เพิ่มประเภท x-font/ttf .ttf
AddOutputFilterByType ลดภาพ/svg+xml
AddOutputFilterByType DEFLATE ข้อความ/ธรรมดา
AddOutputFilterByType DEFLATE ข้อความ/html
AddOutputFilterByType DEFLATE ข้อความ/xml
AddOutputFilterByType ลดข้อความ/css
AddOutputFilterByType DEFLATE ข้อความ/จาวาสคริปต์
AddOutputFilterByType DEFLATE แอปพลิเคชัน/xml
AddOutputFilterByType DEFLATE แอปพลิเคชัน/xhtml+xml
แอปพลิเคชัน AddOutputFilterByType DEFLATE/rss+xml
AddOutputFilterByType DEFLATE แอปพลิเคชัน/จาวาสคริปต์
AddOutputFilterByType DEFLATE แอปพลิเคชัน/x-javascript
แอปพลิเคชัน AddOutputFilterByType DEFLATE/x-font-ttf.dll
AddOutputFilterByType DEFLATE x-font/ttf.dll
AddOutputFilterByType DEFLATE แอปพลิเคชัน/vnd.ms-fontobject
แบบอักษร AddOutputFilterByType DEFLATE/แบบอักษร opentype/แบบอักษร ttf/แบบอักษร eot/otf
</หากโมดูล>
# จบ GzipWpFastestCache
# เริ่มต้น LBCWpFastestCache
<FilesMatch "\.(webm|ogg|mp4|ico|pdf|flv|avif|jpg|jpeg|png|gif|webp|js|css|swf|x-html|css|xml|js|woff|woff2| otf|ttf|svg|eot)(\.gz)?$">
<IfModule mod_expires.c>
แอปพลิเคชัน AddType/font-woff2 .woff2
แอปพลิเคชัน AddType/x-font-opentype .otf
หมดอายุเปิดใช้งานเมื่อ
ExpiresDefault A0
ExpiresByType วิดีโอ/webm A10368000
วิดีโอ ExpiresByType/ogg A10368000
ExpiresByType วิดีโอ/mp4 A10368000
รูปภาพ ExpiresByType/avif A10368000
รูปภาพ ExpiresByType/webp A10368000
ExpiresByType รูปภาพ/gif A10368000
ExpiresByType ภาพ/png A10368000
ExpiresByType ภาพ/jpg A10368000
ExpiresByType ภาพ/jpeg A10368000
รูปภาพ ExpiresByType/ico A10368000
ภาพ ExpiresByType/svg+xml A10368000
ExpiresByType ข้อความ/css A10368000
ExpiresByType ข้อความ/จาวาสคริปต์ A10368000
แอปพลิเคชัน ExpiresByType/จาวาสคริปต์ A10368000
แอปพลิเคชัน ExpiresByType/x-javascript A10368000
แอปพลิเคชัน ExpiresByType/font-woff2 A10368000
แอปพลิเคชัน ExpiresByType/x-font-opentype A10368000
แอปพลิเคชัน ExpiresByType/x-font-truetype A10368000
</หากโมดูล>
<IfModule mod_headers.c>
ชุดส่วนหัวหมดอายุ "max-age=A10368000, สาธารณะ"
ส่วนหัวยกเลิกการตั้งค่า ETag
ส่วนหัวตั้งค่าการเชื่อมต่อให้มีชีวิตอยู่
FileETag ไม่มี
</หากโมดูล>
</FilesMatch>
# สิ้นสุด LBCWpFastestCache


# เปลี่ยนเส้นทางถาวร / https://www.domain1.com
RewriteEngine เปิดอยู่
RewriteCond %{HTTPS} !=เปิด
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

# เริ่มต้น WordPress
RewriteEngine เปิดอยู่
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:การอนุญาต}]
ฐานการเขียนซ้ำ /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
กฎการเขียนซ้ำ /index.php [L]
# จบเวิร์ดเพรส

ฉันกำลังทำอะไรผิดที่นี่?

kz flag
ยังไม่ชัดเจนว่าทำไมคุณต้องเปลี่ยน URL ที่ `domain2.com` เป็น `/portal` ด้วย `/portal` สันนิษฐานว่าเป็นเพียงการแยกแยะ URL กับพร็อกซีที่ `domain1.com`?
cjones avatar
in flag
@MrWhite หลังจากโพสต์สิ่งนี้และดูเอกสารประกอบอีกครั้ง ดูเหมือนว่าไม่มีเหตุผลใดที่ฉันไม่สามารถทำ `ProxyPass "/portal" "https://www.domain2.com/"` ได้
kz flag
...ใช่เลย
kz flag
...ยกเว้นว่าคุณมีเครื่องหมายทับต่อท้ายที่ไม่ตรงกันในคำสั่งนั้นๆ ควรเป็น `ProxyPass /portal/ https://www.domain2.com/` - มิฉะนั้น คุณจะจบลงด้วยเครื่องหมายทับสองครั้งที่จุดเริ่มต้นของเส้นทาง URL ในคำขอพร็อกซี
Score:2
ธง in

พร็อกซีพาส ไม่ได้รับอนุญาตในไฟล์ .htaccess คุณต้องวางไว้ในการกำหนดค่า Apache โดยตรง

บริบท: การกำหนดค่าเซิร์ฟเวอร์, โฮสต์เสมือน, ไดเร็กทอรี

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา