ฉันมี 3 เซิร์ฟเวอร์ Nginx เช่นนี้ -
- lab01.net => 192.168.89.128 (โหลดบาลานเซอร์)
- lab02.net => 192.168.89.129 (แบ็กเอนด์)
- lab03.net => 192.168.89.130 (แบ็กเอนด์)
-------------- การกำหนดค่า lab01.net ----------
แบ็กเอนด์ต้นน้ำ {
เซิร์ฟเวอร์ lab02.net:443;
เซิร์ฟเวอร์ lab03.net:443;
}
เซิร์ฟเวอร์ {
ฟัง 80;
ฟัง [::]:80;
server_name lab01.net;
ส่งคืน 301 https://lab01.net$request_uri;
}
เซิร์ฟเวอร์ {
ฟัง 443 ssl http2;
ฟัง [::]:443 ssl http2;
server_name lab01.net;
ssl_certificate /etc/nginx/ssl/ssl.pem;
ssl_certificate_key /etc/nginx/ssl/ssl.key;
ที่ตั้ง / {
proxy_pass https://แบ็กเอนด์;
proxy_set_header X-ส่งต่อ-สำหรับ $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header โฮสต์ $host;
}
}
------------------- การกำหนดค่า lab02.net --------------------------
เซิร์ฟเวอร์ {
ฟัง 8080;
ฟัง [::]:8080;
server_name lab02.net;
ส่งคืน 301 https://lab02.net$request_uri;
}
เซิร์ฟเวอร์ {
ฟัง 443 ssl http2;
ฟัง [::]:443 ssl http2;
server_name lab02.net;
ราก /srv/www/en;
ดัชนี index.html index.htm;
ssl_certificate /etc/nginx/ssl/ssl.pem;
ssl_certificate_key /etc/nginx/ssl/ssl.key;
}
------------------- การกำหนดค่า lab03.net -----------------------
เซิร์ฟเวอร์ {
ฟัง 8080;
ฟัง [::]:8080;
server_name lab03.net;
ส่งคืน 301 https://lab03.net$request_uri;
}
เซิร์ฟเวอร์ {
ฟัง 443 ssl http2;
ฟัง [::]:443 ssl http2;
server_name lab03.net;
ราก /srv/www/es;
ดัชนี index.html index.htm;
ssl_certificate /etc/nginx/ssl/ssl.pem;
ssl_certificate_key /etc/nginx/ssl/ssl.key;
}
อนุญาตให้ใช้ไฟร์วอลล์ 8080, HTTP และ HTTPS บนเซิร์ฟเวอร์ทั้งหมด
นโยบาย Selinux "semanage fcontext -a -t httpd_sys_content_t "/srv/www(/.*)?" อยู่บนแต่ละเซิร์ฟเวอร์ lab02.net และ lab03.net และ "setsebool -P httpd_can_network_connect" บน lab01.net Nginx load balancer
ทำงานได้ดีและปัญหาคือเมื่อฉันโหลดเว็บไซต์พวกเขาแสดงไม่ถูกต้อง ตัวอักษร รูปภาพ เนื้อหา ฯลฯ ... ไม่ได้อยู่ในสถานที่ที่พวกเขาเป็นเจ้าของ
เมื่อฉันใช้เพียง index.html เพื่อทดสอบก็ใช้ได้ แต่เมื่อฉันใช้เว็บไซต์เทมเพลต HTML และ CSS จริง ปัญหาเริ่มปรากฏขึ้น