שאלה באמצעות חתכים נגררים בתצורה nginx


    location /product {
        proxy_pass http://10.0.0.25:8080;
    }

אם אני משתמש תיאור המיקום הראשון שלי עבור תיקיית המוצר, אני צריך להשתמש http://mysdomain.com/product/ ואני לא יכול להשתמש http://mysdomain.com/product מהדפדפן. אני מתכוון אני צריך להשתמש בקו נטוי של כתובת האתר. אני רוצה לגשת לתיקיית מוצר עם שתי סטיות.

האם יש הבדל בין זה:

    location /product/ {
        proxy_pass http://10.0.0.25:8080;
    }

5
2018-06-24 18:06






תשובות:


מיקומים אלה שונים. הראשון יתאים /production לדוגמה, זה לא יכול להיות מה שציפית. אז אני מעדיף להשתמש במיקומים עם קו נטוי נגרר.

כמו כן, שים לב:

אם מקום מוגדר על ידי מחרוזת קידומת המסתיימת עם תו סלאש, והבקשות מעובדות על ידי אחד proxy_pass, fastcgi_pass, uwsgi_pass, scgi_pass או memcached_pass, ולאחר מכן בתגובה לבקשה עם URI השווה למחרוזת זו, אך ללא קו נטוי, כתובת אתר להפניה מחדש קבועה עם הקוד 301 תוחזר אל URI המבוקש עם קו נטוי.

אם יש לך משהו כמו:

location /product/ {
    proxy_pass http://backend;
}

וללכת ל http://example.com/product, nginx יפנה אותך באופן אוטומטי אל http://example.com/product/.

גם אם אינך משתמש באחת מההוראות המפורטות למעלה, תוכל תמיד לבצע את ההפניה מחדש באופן ידני:

location = /product {
    rewrite ^ /product/ permanent;
}

או, אם אינך מעוניין בהפניה מחדש, תוכל להשתמש ב:

location = /product {
    proxy_pass http://backend;
}

6
2018-06-25 05:49



אני משתמש proxy_pass : 8080 / מוצר , ולאחר מכן קוראים לדפדפן כתובת זו. הדפדפן מפנה אותי אל MyIP / מוצר ונותן דף שגיאה לא יכול להציג. - barteloma
השתמש backticks עבור קוד. Markdown לנתח אותך תגובה וקשה לגלות מה הקוד שלך באמת. - Alexey Ten
תודה, זה היה חשוב לדעת שאם / מוצר / הוא הוסיף אז גם את הדפדפן לשלוח אותו / המוצר חייב לקבל את 301 מהשרת. נקודה תקינה בהחלט. - Sur Max


לא, אלה אינם זהים - יהיה עליך להשתמש בקו נטוי נגרר עם ביטוי רגולרי שתתאים לשניהם, כלומר.

location ~ /product/?

ראה תשובה קשורה זו לקבלת תגובה מפורטת יותר על התאמת כתובת האתר כולה.


3
2018-06-24 18:12