ฉันมีการตั้งค่าพร็อกซีย้อนกลับดังนี้ใน Apache:
เซิร์ฟเวอร์ A พร้อมที่อยู่ www.proxyserver.com/graphql เป็นพร็อกซีเซิร์ฟเวอร์ย้อนกลับ
โดยจะจับคู่กับ: เซิร์ฟเวอร์ B ที่มีที่อยู่ example.com
ชนิดนี้ทำงานได้อย่างถูกต้องในการพัฒนาสภาพแวดล้อม
เช่น เมื่อเซิร์ฟเวอร์เรียกคำขอ /graphql?query1=query1&query2=query2
จากนั้นจะเปลี่ยนเส้นทางไปที่ https://proxyserver.com/graphql?query1=query1&query2=query2
แต่ใน apache มันใช้งานไม่ได้. มันโทร http://example.com/graphql?query1=query1&query2=query2
ฉันจะแก้ไขปัญหานี้ได้อย่างไร
พร็อกซีย้อนกลับของฉันได้รับการกำหนดค่าดังต่อไปนี้บนเซิร์ฟเวอร์ B (www.example.com):
<VirtualHost *:80>
ServerAdmin [email protected]
DocumentRoot /var/www/example.com/build
ServerName example.com
ServerAlias www.example.com
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
ProxyPreserveHost On
ProxyPass "/graphql" "https://proxyserver.com/graphql"
ProxyPassReverse "/graphql" "https://proxyserver.com/graphql"
</VirtualHost>
และนี่คือการกำหนดค่าเซิร์ฟเวอร์ A
<IfModule mod_ssl.c>
<VirtualHost *:443>
ServerAdmin [email protected]
DocumentRoot /etc/pub
ServerName proxyserver.com
ErrorLog logs/cezanno-error_log
LimitRequestBody 104857600
<Proxy "unix:/var/opt/remi/php73/run/php-fpm/php73-fpm.sock|fcgi://proxyserver.com">
ProxySet timeout=100
</Proxy>
<FilesMatch \.(php|phar)$>
SetHandler "proxy:fcgi://proxyserver.com"
</FilesMatch>
SSLCertificateFile /path/to/cert/directory/cert.pem
SSLCertificateKeyFile /path/to/cert/directory/privkey.pem
Include /etc/letsencrypt/options-ssl-apache.conf
SSLCertificateChainFile /path/to/cert/directory/chain.pem
</VirtualHost>
</IfModule>