จากเอกสารproxy_pass :
กรณีพิเศษกำลังใช้ตัวแปรในคำสั่ง proxy_pass: ไม่ได้ใช้ URL ที่ร้องขอและคุณมีหน้าที่รับผิดชอบอย่างเต็มที่ในการสร้าง URL เป้าหมายด้วยตัวคุณเอง
เนื่องจากคุณใช้ $ 1 ในเป้าหมาย nginx จึงต้องอาศัยคุณในการบอกสิ่งที่จะส่งผ่าน คุณสามารถแก้ไขได้สองวิธี ขั้นแรกการลอกจุดเริ่มต้นของ uri ด้วย proxy_pass นั้นไม่สำคัญ:
location /service/ {
# Note the trailing slash on the proxy_pass.
# It tells nginx to replace /service/ with / when passing the request.
proxy_pass http://apache/;
}
หรือหากคุณต้องการใช้ตำแหน่ง regex เพียงแค่ใส่ args:
location ~* ^/service/(.*) {
proxy_pass http://apache/$1$is_args$args;
}