ฉันจะทำ HTTP POST ไปยังเซิร์ฟเวอร์ที่อยู่ในอินสแตนซ์ Amazon ec2 ผ่าน ssh ได้อย่างไร


0

ฉันมีเซิร์ฟเวอร์ฟังบนhttp://0.0.0.0:8000อย่างไรก็ตามเรื่องนี้อาศัยอยู่ในอินสแตนซ์อะเมซอน

ฉันจะขอ HTTP POST จากคอมพิวเตอร์ภายนอก (โดยใช้curl) ได้อย่างไร นั่นคือฉันต้องการใช้เซิร์ฟเวอร์ฟังเป็น API นี่แตกต่างจากกรณีอื่น ๆ เพราะฉันต้องการทำผ่าน ssh


1
ขอบคุณสำหรับความช่วยเหลือ Attie ใช่นั่นคือสิ่งที่ฉันหมายถึง
anon

" กำลังฟัง0.0.0.0:8000 " หมายถึง "การฟังบนอินเทอร์เฟซทั้งหมด " - คุณสามารถสื่อสารกับมันบน IP สาธารณะได้หรือไม่ (เช่นเดียวกับที่คุณจะใช้สำหรับ SSH)
Attie

ใช่ฉันคิดอย่างนั้น Attie เมื่อฉันเริ่มเซิร์ฟเวอร์มันเพิ่งพูดว่า: no port specified, defaulting to port 8000มันอาศัยอยู่ในอินสแตนซ์ของ ec2 ฉันต้องการทำcurl -XPOSTจาก "เครื่องภายนอก"
anon

ฉันคิดว่าคุณสามารถใช้ SSH ได้หรือไม่? คุณลองใช้curlกับ IP เดียวกับที่คุณใช้สำหรับ SSH หรือไม่?
Attie

ไม่คุณสามารถแสดงตัวอย่างเครื่องแต่งกายได้หรือไม่?
anon

คำตอบ:


0

หากคุณต้องการทำงานcurl กับอินสแตนซ์ EC2 และสร้างช่องสัญญาณเอาต์พุตsshให้ลองทำสิ่งต่อไปนี้:

ssh ${USERNAME}@${EC2_INSTANCE_IP} curl -s http://localhost:8000/

คุณควรเห็นผลลัพธ์โดยตรงบนเทอร์มินัล ( -sจะยับยั้งcurlเอาต์พุตของ)

คุณสามารถเรียกใช้คำสั่งใด ๆ curlเช่นนี้ไม่มีอะไรพิเศษ

หากสามารถใช้งานได้คุณสามารถแก้ไขcurlพารามิเตอร์ที่จะใช้-X POSTและ / หรือ-dพร้อมกับจุดสิ้นสุดที่ถูกต้อง


โปรดจำไว้ว่านั่น0.0.0.0คือที่อยู่ " พิเศษ " ที่จริงแล้วหมายถึง "การฟังบนอินเทอร์เฟซทั้งหมด " ... ดังนั้นถ้าคุณไม่กำหนดค่ากฎขาเข้าอย่างถูกต้องใคร ๆ ก็ยังสามารถทำได้curl http://${EC2_INSTANCE_IP}:8000/และกดเซิร์ฟเวอร์ของคุณ


คุณมีข้อมูลอ้างอิงเกี่ยวกับวิธีกำหนดค่านี้ในอินสแตนซ์ amazon หรือไม่ ฉันล้มเหลวในการเชื่อมต่อกับอินสแตนซ์หมดเวลา
anon

คุณอาจต้องการถามคำถามอื่นโดยเฉพาะเกี่ยวกับกฎขาเข้าสำหรับ EC2 ... ทำให้ SSH พื้นฐานทำงานได้ก่อนแล้วค่อยกลับมาลอง " ใช้curlSSH มากกว่า " หลังจากนั้น
Attie

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.