Custom Error Page Settings via NGINX Balancer

เมื่อเกิดข้อผิดพลาดภายใน environment (เช่น เมื่อพยายามเข้าถึงหน้าที่ไม่มีอยู่) หน้า error โดยค่าเริ่มต้นสำหรับเซิร์ฟเวอร์จะปรากฏ ตัวอย่างเช่น:

คุณสามารถแทนที่หน้า error นี้โดยการกำหนดเองเพื่อให้ผู้ใช้ปลายทางได้รับคำแนะนำที่เจาะจงมากขึ้นและทิ้งอีเมลไว้เพื่อติดต่อคุณ ในส่วนด้านล่างนี้เราจะแสดงวิธีกำหนดหน้า error ด้วยตนเองโดยใช้ NGINX load balancer ที่เพิ่มใน environment ของคุณ

1. ไปที่ Ruk-Com Cloud Dashboard แล้วหา NGINX load balancer ใน env ของคุณจากนั้นคลิกปุ่ม Config

2. ในแท็บ Configuration manager ที่เปิดอยู่ ไปที่โฟลเดอร์ /etc/nginx/conf.d และสร้างหรืออัปโหลดหน้า error ที่คุณกำหนดเอง

3. สำหรับคู่มือนี้เราจะใช้ไฟล์ error.html ต่อไปนี้:

4. จากนั้นไปที่ไดเร็กทอรี /etc/nginx และคัดลอกเนื้อหาของไฟล์ nginx-jelastic.conf วางลงใน nginx.conf โดยแทนที่ไฟล์ include /etc/nginx/nginx-jelastic.conf; (วงกลมอยู่ในภาพด้านล่าง)

ตอนนี้คุณสามารถระบุการกำหนดค่าที่จำเป็นทั้งหมดได้

5. หาส่วนของเซิร์ฟเวอร์พื่อวางการกำหนดค่าและแทนที่การตั้งค่า error_page เริ่มต้นด้วยสตริงต่อไปนี้:

error_page 403 404 500 502 503 504 /error.html;
proxy_intercept_errors on;

6. หลังจากนั้นเลื่อนลงมาเล็กน้อยเพื่อปรับเปลี่ยนหน้า error พารามิเตอร์ภายในส่วนย่อยของ location:

location /error.html {
    root   /etc/nginx/conf.d;
    internal;
}

location / {
    if ($cookie_SRVGROUP ~ group|common) {
        proxy_pass http://$cookie_SRVGROUP;
        error_page 403 404 500 502 503 504 = /error.html;
    }
    if ($cookie_SRVGROUP !~ group|common) {
        add_header Set-Cookie "SRVGROUP=$group; path=/";
    }
    proxy_pass http://default_upstream;
    add_header Set-Cookie "SRVGROUP=$group; path=/";
}

location @rescue {
    proxy_pass http://$cookie_SRVGROUP;
    error_page   500 502 503 504 = error.html;
}

location @recycle {
    proxy_pass http://default_upstream;
    add_header Set-Cookie "SRVGROUP=$group; path=/";
}

7. ในกรณีที่เว็บไซต์ของคุณใช้ SSL (เช่น สำหรับการเชื่อมต่อผ่าน HTTPS) จำเป็นต้องกำหนดค่าเพิ่มเติมบางอย่าง (มิฉะนั้นไปที่ข้อ 9) เพิ่มบรรทัดต่อไปนี้ในส่วนเซิร์ฟเวอร์ของไฟล์ /etc/nginx/conf.d/ssl.conf:

proxy_intercept_errors on;
location /error.html {
                    root   /etc/nginx/conf.d;
 }

8. คุณต้องปรับไฟล์ /etc/nginx/conf.d/ssl.upstreams.inc หาเงื่อนไขต่อไปนี้แล้วเปลี่ยนแปลงดังนี้:

if ($cookie_SRVGROUP ~ group|common) {
                   proxy_pass http://$cookie_SRVGROUP;
                   error_page 403 404 /error.html;
                   error_page   500 502 503 504 = @resque;
}

9. อย่าลืมรีสตาร์ท NGINX server เพื่อใช้การเปลี่ยนแปลง

10. ลองเข้าหน้าที่ไม่มีอยู่ในโดเมนของคุณ

หมายเหตุ: หากเซิร์ฟเวอร์ที่มีหน้า error แบบกำหนดเองที่กำหนดค่าไว้ล่วงหน้าหรือ environment ทั้งหมดไม่สามารถเข้าถึงหน้า error ได้ แพลตฟอร์มจะแสดงหน้า error เริ่มต้น เช่น:



คุณไม่สามารถแก้ไขการแจ้งเตือนนี้สำหรับ environment ของคุณ