Score:0

Reverse Proxy ไม่แสดง IP ไคลเอนต์

ธง cn
xJR

ฉันได้ตั้งค่าพร็อกซีย้อนกลับและทุกอย่างดูเหมือนจะใช้งานได้ดี แต่ดูเหมือนว่า nginx จะลงทะเบียนที่อยู่ IP การเยี่ยมชมระยะไกลไม่ถูกต้องและบันทึกทุกอย่างที่มาจากเซิร์ฟเวอร์ WAN IP ของฉัน ซึ่งจะไม่เป็นปัญหา แต่หนึ่งในบริการที่ฉันกำลังทำงานอยู่ เป็น shlink ซึ่งต้องการส่ง IP ระยะไกลเพื่อบันทึกตำแหน่ง

ฉันกำลังเรียกใช้ nginx ผ่านนักเทียบท่า SWAG ในการเขียนนักเทียบท่าหากช่วยแก้ปัญหาได้

ตัวอย่างด้านล่างคือคำขอระยะไกลทั้งหมดจากอุปกรณ์ต่างๆ และทั้งหมดได้รับการลงทะเบียนจากเซิร์ฟเวอร์ WAN IP

202.63.68.112 - - [19/พฤษภาคม/2022:10:28:57 +1000] "GET /index.php/s/dGZegTxeeeMmro2/ดาวน์โหลด HTTP/2.0" 206 65536 "-" "Mozilla/5.0 (iPhone; CPU iPhone OS 15_4_1 เช่น Mac OS X) AppleWebKit/605.1.15 (KHTML เช่น Gecko) เวอร์ชัน/15.4 มือถือ/15E148 Safari/604.1"
202.63.68.112 - - [19/พฤษภาคม/2022:10:28:59 +1000] "GET /index.php/s/dGZegTxeeeMmro2/ดาวน์โหลด HTTP/2.0" 206 7302130 "-" "Mozilla/5.0 (iPhone; CPU iPhone OS 15_4_1 เช่น Mac OS X) AppleWebKit/605.1.15 (KHTML เช่น Gecko) เวอร์ชัน/15.4 มือถือ/15E148 Safari/604.1"
202.63.68.112 - - [19/พฤษภาคม/2022:10:29:01 +1000] "GET /index.php/s/dGZegTxeeeMmro2/ดาวน์โหลด HTTP/2.0" 206 65536 "-" "Mozilla/5.0 (iPhone; CPU iPhone OS 15_4_1 เช่น Mac OS X) AppleWebKit/605.1.15 (KHTML เช่น Gecko) เวอร์ชัน/15.4 มือถือ/15E148 Safari/604.1"
202.63.68.112 - - [19/พฤษภาคม/2022:10:29:03 +1000] "GET /index.php/s/dGZegTxeeeMmro2/ดาวน์โหลด HTTP/2.0" 206 5045234 "-" "Mozilla/5.0 (iPhone; CPU iPhone OS 15_4_1 เช่น Mac OS X) AppleWebKit/605.1.15 (KHTML เช่น Gecko) เวอร์ชัน/15.4 มือถือ/15E148 Safari/604.1"
202.63.68.112 - - [19/พฤษภาคม/2022:10:29:03 +1000] "GET /index.php/s/dGZegTxeeeMmro2/ดาวน์โหลด HTTP/2.0" 206 14906904 "-" "Mozilla/5.0 (Linux; Android 12 ; SM-G981U1) AppleWebKit/537.36 (KHTML เช่น Gecko) Chrome/101.0.4951.61 Mobile Safari/537.36"
202.63.68.112 - - [19/พฤษภาคม/2022:10:29:05 +1000] "GET /index.php/s/dGZegTxeeeMmro2/ดาวน์โหลด HTTP/2.0" 206 65536 "-" "Mozilla/5.0 (iPhone; CPU iPhone OS 15_4_1 เช่น Mac OS X) AppleWebKit/605.1.15 (KHTML เช่น Gecko) เวอร์ชัน/15.4 มือถือ/15E148 Safari/604.1"
202.63.68.112 - - [19/พฤษภาคม/2022:10:29:06 +1000] "GET /index.php/s/dGZegTxeeeMmro2/ดาวน์โหลด HTTP/2.0" 206 5041138 "-" "Mozilla/5.0 (iPhone; CPU iPhone OS 15_4_1 เช่น Mac OS X) AppleWebKit/605.1.15 (KHTML เช่น Gecko) เวอร์ชัน/15.4 มือถือ/15E148 Safari/604.1"
202.63.68.112 - - [19/พฤษภาคม/2022:10:29:08 +1000] "GET /index.php/s/dGZegTxeeeMmro2/ดาวน์โหลด HTTP/2.0" 206 65536 "-" "Mozilla/5.0 (iPhone; CPU iPhone OS 15_4_1 เช่น Mac OS X) AppleWebKit/605.1.15 (KHTML เช่น Gecko) เวอร์ชัน/15.4 มือถือ/15E148 Safari/604.1"
202.63.68.112 - - [19/พฤษภาคม/2022:10:29:10 +1000] "GET /index.php/s/dGZegTxeeeMmro2/ดาวน์โหลด HTTP/2.0" 206 6204402 "-" "Mozilla/5.0 (iPhone; CPU iPhone OS 15_4_1 เช่น Mac OS X) AppleWebKit/605.1.15 (KHTML เช่น Gecko) เวอร์ชัน/15.4 มือถือ/15E148 Safari/604.1"
202.63.68.112 - - [19/พฤษภาคม/2022:10:29:10 +1000] "GET /index.php/s/dGZegTxeeeMmro2/ดาวน์โหลด HTTP/2.0" 206 65536 "-" "Mozilla/5.0 (iPhone; CPU iPhone OS 15_4_1 เช่น Mac OS X) AppleWebKit/605.1.15 (KHTML เช่น Gecko) เวอร์ชัน/15.4 มือถือ/15E148 Safari/604.1"
202.63.68.112 - - [19/พฤษภาคม/2022:10:29:12 +1000] "GET /index.php/s/dGZegTxeeeMmro2/ดาวน์โหลด HTTP/2.0" 206 65536 "-" "Mozilla/5.0 (iPhone; CPU iPhone OS 15_4_1 เช่น Mac OS X) AppleWebKit/605.1.15 (KHTML เช่น Gecko) เวอร์ชัน/15.4 มือถือ/15E148 Safari/604.1"
202.63.68.112 - - [19/พฤษภาคม/2022:10:29:12 +1000] "GET /index.php/s/dGZegTxeeeMmro2/ดาวน์โหลด HTTP/2.0" 206 3947506 "-" "Mozilla/5.0 (iPhone; CPU iPhone OS 15_4_1 เช่น Mac OS X) AppleWebKit/605.1.15 (KHTML เช่น Gecko) เวอร์ชัน/15.4 มือถือ/15E148 Safari/604.1"
202.63.68.112 - - [19/พฤษภาคม/2022:10:29:22 +1000] "GET /index.php/s/dGZegTxeeeMmro2/ดาวน์โหลด HTTP/2.0" 206 22035471 "-" "Mozilla/5.0 (Linux; Android 12 ; SAMSUNG SM-G981U1) AppleWebKit/537.36 (KHTML เช่น Gecko) SamsungBrowser/17.0 Chrome/96.0.4664.104 Mobile Safari/537.36"
202.63.68.112 - - [19/พฤษภาคม/2022:10:29:22 +1000] "GET /index.php/s/dGZegTxeeeMmro2/ดาวน์โหลด HTTP/2.0" 499 0 "-" "Mozilla/5.0 (Linux; Android 12 ; SAMSUNG SM-G981U1) AppleWebKit/537.36 (KHTML เช่น Gecko) SamsungBrowser/17.0 Chrome/96.0.4664.104 Mobile Safari/537.36"
202.63.68.112 - - [19/พฤษภาคม/2022:10:29:22 +1000] "GET /index.php/s/dGZegTxeeeMmro2/ดาวน์โหลด HTTP/2.0" 499 0 "-" "Mozilla/5.0 (Linux; Android 12 ; SAMSUNG SM-G981U1) AppleWebKit/537.36 (KHTML เช่น Gecko) SamsungBrowser/17.0 Chrome/96.0.4664.104 Mobile Safari/537.36"
202.63.68.112 - - [19/พฤษภาคม/2022:10:29:22 +1000] "GET /index.php/s/dGZegTxeeeMmro2/ดาวน์โหลด HTTP/2.0" 499 0 "-" "Mozilla/5.0 (Linux; Android 12 ; SAMSUNG SM-G981U1) AppleWebKit/537.36 (KHTML เช่น Gecko) SamsungBrowser/17.0 Chrome/96.0.4664.104 Mobile Safari/537.36"
202.63.68.112 - - [19/พฤษภาคม/2022:10:29:22 +1000] "GET /index.php/s/dGZegTxeeeMmro2/ดาวน์โหลด HTTP/2.0" 499 0 "-" "Mozilla/5.0 (Linux; Android 12 ; SAMSUNG SM-G981U1) AppleWebKit/537.36 (KHTML เช่น Gecko) SamsungBrowser/17.0 Chrome/96.0.4664.104 Mobile Safari/537.36"
202.63.68.112 - - [19/พฤษภาคม/2022:10:29:22 +1000] "GET /index.php/s/dGZegTxeeeMmro2/ดาวน์โหลด HTTP/2.0" 499 0 "-" "Mozilla/5.0 (Linux; Android 12 ; SAMSUNG SM-G981U1) AppleWebKit/537.36 (KHTML เช่น Gecko) SamsungBrowser/17.0 Chrome/96.0.4664.104 Mobile Safari/537.36"
202.63.68.112 - - [19/พฤษภาคม/2022:10:29:23 +1000] "GET /index.php/s/dGZegTxeeeMmro2/ดาวน์โหลด HTTP/2.0" 206 2923535 "-" "Mozilla/5.0 (Linux; Android 12 ; SAMSUNG SM-G981U1) AppleWebKit/537.36 (KHTML เช่น Gecko) SamsungBrowser/17.0 Chrome/96.0.4664.104 Mobile Safari/537.36"
202.63.68.112 - - [19/พฤษภาคม/2022:10:29:23 +1000] "GET /index.php/s/dGZegTxeeeMmro2/ดาวน์โหลด HTTP/2.0" 499 0 "-" "Mozilla/5.0 (Linux; Android 12 ; SAMSUNG SM-G981U1) AppleWebKit/537.36 (KHTML เช่น Gecko) SamsungBrowser/17.0 Chrome/96.0.4664.104 Mobile Safari/537.36"
202.63.68.112 - - [19/พฤษภาคม/2022:10:29:23 +1000] "GET /index.php/s/dGZegTxeeeMmro2/ดาวน์โหลด HTTP/2.0" 499 0 "-" "Mozilla/5.0 (Linux; Android 12 ; SAMSUNG SM-G981U1) AppleWebKit/537.36 (KHTML เช่น Gecko) SamsungBrowser/17.0 Chrome/96.0.4664.104 Mobile Safari/537.36"
202.63.68.112 - - [19/พฤษภาคม/2022:10:29:23 +1000] "GET /index.php/s/dGZegTxeeeMmro2/ดาวน์โหลด HTTP/2.0" 499 0 "-" "Mozilla/5.0 (Linux; Android 12 ; SAMSUNG SM-G981U1) AppleWebKit/537.36 (KHTML เช่น Gecko) SamsungBrowser/17.0 Chrome/96.0.4664.104 Mobile Safari/537.36"
202.63.68.112 - - [19/พฤษภาคม/2022:10:29:23 +1000] "GET /index.php/s/dGZegTxeeeMmro2/ดาวน์โหลด HTTP/2.0" 499 0 "-" "Mozilla/5.0 (Linux; Android 12 ; SAMSUNG SM-G981U1) AppleWebKit/537.36 (KHTML เช่น Gecko) SamsungBrowser/17.0 Chrome/96.0.4664.104 Mobile Safari/537.36"
202.63.68.112 - - [19/พฤษภาคม/2022:10:29:24 +1000] "GET /index.php/s/dGZegTxeeeMmro2/ดาวน์โหลด HTTP/2.0" 499 0 "-" "Mozilla/5.0 (Linux; Android 12 ; SAMSUNG SM-G981U1) AppleWebKit/537.36 (KHTML เช่น Gecko) SamsungBrowser/17.0 Chrome/96.0.4664.104 Mobile Safari/537.36"
202.63.68.112 - - [19/พฤษภาคม/2022:10:29:24 +1000] "GET /index.php/s/dGZegTxeeeMmro2/ดาวน์โหลด HTTP/2.0" 499 0 "-" "Mozilla/5.0 (Linux; Android 12 ; SAMSUNG SM-G981U1) AppleWebKit/537.36 (KHTML เช่น Gecko) SamsungBrowser/17.0 Chrome/96.0.4664.104 Mobile Safari/537.36"
202.63.68.112 - - [19/พฤษภาคม/2022:10:29:24 +1000] "GET /index.php/s/dGZegTxeeeMmro2/ดาวน์โหลด HTTP/2.0" 206 21001752 "-" "Mozilla/5.0 (iPhone; CPU iPhone OS 15_4_1 เช่น Mac OS X) AppleWebKit/605.1.15 (KHTML เช่น Gecko) เวอร์ชัน/15.4 มือถือ/15E148 Safari/604.1"
202.63.68.112 - - [19/พฤษภาคม/2022:10:29:26 +1000] "GET /index.php/s/dGZegTxeeeMmro2/ดาวน์โหลด HTTP/2.0" 206 4140047 "-" "Mozilla/5.0 (Linux; Android 12 ; SAMSUNG SM-G981U1) AppleWebKit/537.36 (KHTML เช่น Gecko) SamsungBrowser/17.0 Chrome/96.0.4664.104 Mobile Safari/537.36"

ฉันได้ส่งต่อการตั้งค่า X สำหรับในการกำหนดค่าด้านล่าง:

#### proxy.conf
---------------
# การตั้งค่าการเชื่อมต่อพร็อกซี
proxy_buffers 32 4k;
proxy_connect_timeout 240;
proxy_headers_hash_bucket_size 128;
proxy_headers_hash_max_size 1024;
proxy_http_version 1.1;
proxy_read_timeout 240;
proxy_redirect http:// $scheme://;
proxy_send_timeout 240;

# พร็อกซีแคชและการตั้งค่าคุกกี้
proxy_cache_bypass $cookie_session;
#proxy_cookie_path / "/; ปลอดภัย"; # เปิดใช้งานด้วยความเสี่ยงของคุณเอง อาจทำให้แอพบางตัวเสียหาย
proxy_no_cache $cookie_session;

# การตั้งค่าส่วนหัวพร็อกซี
proxy_set_header การเชื่อมต่อ $connection_upgrade;
proxy_set_header Early-Data $ssl_early_data;
proxy_set_header โฮสต์ $host;
proxy_set_header พร็อกซี "";
proxy_set_header อัพเกรด $http_upgrade;
proxy_set_header X-ส่งต่อ-สำหรับ $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-ส่งต่อโปรโต https;
proxy_set_header เปิด X-Forwarded-Ssl;
proxy_set_header X-Real-IP $remote_addr;


#### domain.subdomain.conf
---------------

เซิร์ฟเวอร์ {
    ฟัง 443 ssl;
    ฟัง [::]:443 ssl;

    server_name โดเมน au;

    รวม /config/nginx/ssl.conf;

    client_max_body_size 0;

    ที่ตั้ง / {
        รวม /config/nginx/proxy.conf;
        รวม /config/nginx/resolver.conf;
        ตั้ง $upstream_app shlink;
        ตั้ง $upstream_port 8080;
        ตั้ง $upstream_proto http;
        proxy_pass $upstream_proto://$upstream_app:$upstream_port;

    }


}

ความคิดใดที่ฉันทำผิด?

us flag
Rob
ตามที่คาดไว้ ผู้เยี่ยมชมไซต์ส่งคำขอไปยังพร็อกซีย้อนกลับของคุณ และพร็อกซีย้อนกลับส่งคำขอใหม่ไปยังเซิร์ฟเวอร์ส่วนหลัง โดยทั่วไปแล้ว reverse proxy จะรวมที่อยู่ IP ของผู้เข้าชมไว้ในส่วนหัว เช่น `X-forwarded-for` ซึ่งสามารถนำไปใช้ในแบ็กเอนด์ได้ ดูเพิ่มเติมที่ http://nginx.org/en/docs/http/ngx_http_realip_module.html
cn flag
xJR
@Rob ขอบคุณมากที่สละเวลาตอบกลับ ในบันทึกที่แนบมาคือ X-Forwarded-for บนบรรทัดที่ 24 สิ่งที่คุณอ้างถึง ควรกำหนดค่าแตกต่างกันเพื่อให้ IP ไคลเอนต์ผ่านหรือไม่ ขออภัยฉันยังใหม่กับเรื่องนี้มากดังนั้นพยายามอ่านมัน
djdomi avatar
za flag
วางบันทึกของคุณสำหรับคำถาม อย่าใช้บริการ nopaste ใด ๆ
cn flag
xJR
@djdomi - ive อัปเดตโพสต์เพื่อรวมข้อมูลที่เกี่ยวข้อง - ขอบคุณ คุณมีความคิดว่าฉันจะแก้ไขได้อย่างไร
djdomi avatar
za flag
@xJR คุณได้ทำการวิจัยเกี่ยวกับเอกสารที่ Rob ทำแนะนำหรือไม่? เมื่อคุณวางการกำหนดค่า โปรดใช้แต่ละบล็อกแยกกันและแสดงเส้นทางแบบเต็ม เนื่องจากเป็นข้อมูลที่จำเป็น ฉันจะวาง proxy.conf ไว้ในไดเร็กทอรีหลักและรวมไว้ในเซิร์ฟเวอร์ apt เตือนว่าแต่ละส่วนของเซิร์ฟเวอร์ต้องถูกมองว่าเป็นอินสแตนซ์แยกต่างหากและบังคับให้คุณไม่ได้กำหนดค่า
cn flag
xJR
ฉันคิดว่าฉันอาจเขียนโพสต์นี้ในลักษณะที่สับสน แต่ปัญหาที่แท้จริงของฉันคือพร็อกซีนั้นไม่ได้รับ IP ระยะไกลของบุคคลที่เชื่อมต่อ ดังนั้นจึงไม่สามารถส่ง 'IP จริง' ที่ถูกต้องไปยังบริการที่พร็อกซีได้ ฉันมี x-forwarded-for รวมอยู่ในไฟล์ proxy.conf ในโพสต์

โพสต์คำตอบ

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