Score:0

หุ่นยนต์ Nginx proxy_pass ไปยังพอร์ตอื่นพร้อมเปลี่ยน URL

ธง cn

ฉันมีปัญหากับการกำหนดค่า nginx หากตัวแทนผู้ใช้คือ "โรบ็อต" - ให้ส่งพร็อกซีไปยังพอร์ตอื่นโดยตั้งค่า corrent uri เป็นอาร์กิวเมนต์

ตัวอย่างเช่น : มีสองบริการ localhost:5000 และ localhost:6000 port หุ่นยนต์ที่ไม่ใช่ทั้งหมดส่งผ่านไปยัง 5,000 และหุ่นยนต์ส่งผ่านไปยัง 6,000 ด้วย URL เช่น:

https://test.page/test/test ปกติ -> http://localhost:5000/test/test
หุ่นยนต์ https://test.page/test/test -> http://localhost:6000/Page/Get?url=https://test.page/test/test

ฉันลองแบบนี้:

ถ้า ( $http_user_agent ~ 'หุ่นยนต์' ) {
                ตั้ง $request_uri "/Page/Get?url=https://test.page$request_uri";
                proxy_pass http://localhost:6000;
            }
            ถ้า ( $http_user_agent !~ 'หุ่นยนต์' ) {
                proxy_pass http://localhost:5000;
            }

แต่สำหรับหุ่นยนต์ได้ 404

djdomi avatar
za flag
คุณต้องการบล็อกหุ่นยนต์ประเภทใด ฉันจะเปลี่ยนเส้นทาง /robots.txt ไปยังคำขอประเภทนั้น
cn flag
ฉันต้องการหุ่นยนต์เปลี่ยนเส้นทางไปยังพอร์ตและ url อื่น แต่ไม่ปิดกั้น
Score:0
ธง us

แผนที่ เป็นวิธีที่ดีกว่าในการทำเงื่อนไขเหล่านี้ เพิ่มสิ่งต่อไปนี้ใน http ระดับในการกำหนดค่า nginx:

แผนที่ $http_user_agent $อัพสตรีม {
    ~robot "localhost:6000/Page/Get?url=https://test.page$request_uri";
    เริ่มต้น localhost:5000$request_uri;
}

แล้วใช้ $ต้นน้ำ เป็นเป้าหมาย:

proxy_pass http://$อัพสตรีม;
cn flag
ขอบคุณสำหรับการตอบกลับของคุณ แต่มีข้อผิดพลาด 502 =(

โพสต์คำตอบ

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