דילוג לתוכן
  • דף הבית
  • קטגוריות
  • פוסטים אחרונים
  • משתמשים
  • חיפוש
  • חוקי הפורום
כיווץ
תחומים

תחומים - פורום חרדי מקצועי

💡 רוצה לזכור קריאת שמע בזמן? לחץ כאן!
  1. דף הבית
  2. תכנות
  3. NGINX: להאזין לפורט מקומי גם ללא server_name, ובפורט חיצוני עם

NGINX: להאזין לפורט מקומי גם ללא server_name, ובפורט חיצוני עם

מתוזמן נעוץ נעול הועבר תכנות
13 פוסטים 3 כותבים 655 צפיות
  • מהישן לחדש
  • מהחדש לישן
  • הכי הרבה הצבעות
התחברו כדי לפרסם תגובה
נושא זה נמחק. רק משתמשים עם הרשאות מתאימות יוכלו לצפות בו.
  • yossizY מנותק
    yossizY מנותק
    yossiz
    כתב ב נערך לאחרונה על ידי yossiz
    #3

    בעצם הכי פשוט, למה לא לעשות

    server {
        server_name server1 localhost;
        listen 80 8080
    }
    
    server {
        server_name server1 localhost;
        listen 80 8081
    }
    

    ואז תיגש ל-server2 ככה:

    http://localhost:8081/
    

    ול-server1 גם בלי הפורט (כי אם שני מקטעים תואמים אז הראשון תקף)

    📧 יוסי@מייל.קום | 🌎 בלוג | ☕ קפה

    תגובה 1 תגובה אחרונה
    1
    • י מנותק
      י מנותק
      יוסף בן שמעון
      כתב ב נערך לאחרונה על ידי
      #4

      @dovid אמר בNGINX: להאזין לפורט מקומי גם ללא server_name, ובפורט חיצוני עם:

      יש לי כמה אתרים על אותו אייפי - 80.

      אנג'נאיקס לא אמור בכלל להתערב לך בתעבורה הפנימית, אם אתה ניגש מתוך המכונה לכתובת http://127.0.0.1:5050/ זה לא עובר דרכו.

      dovidD תגובה 1 תגובה אחרונה
      1
      • dovidD מנותק
        dovidD מנותק
        dovid ניהול
        השיב ליוסף בן שמעון ב נערך לאחרונה על ידי dovid
        #5

        @יוסף-בן-שמעון אמר בNGINX: להאזין לפורט מקומי גם ללא server_name, ובפורט חיצוני עם:

        @dovid אמר בNGINX: להאזין לפורט מקומי גם ללא server_name, ובפורט חיצוני עם:

        יש לי כמה אתרים על אותו אייפי - 80.

        אנג'נאיקס לא אמור בכלל להתערב לך בתעבורה הפנימית, אם אתה ניגש מתוך המכונה לכתובת http://127.0.0.1:5050/ זה לא עובר דרכו.

        אתה מדבר במקרה שאנגינאיקס הוא פרוקסי למאזין אחר.
        במקרה שלי הוא המאזין הבלעדי... אצלי זה PHP אבל קח דוגמא קבצים סטטיים.
        ואין הבדל בין תעבורה פנימית לחיצונית מבחינתו, הוא מאזין. כדי למנוע תעבורה חיצונית צריך להשתמש עם deny, וallow על טוווחי אייפי, ואת זה אני לא יודע לשלב לפי הפורט, אמנם אני כמובן יכול לעשות מקטע סרבר אחר לגמרי.

        • מנטור אישי בתכנות והמסתעף – להתקדם לשלב הבא!
        • בכל נושא אפשר ליצור קשר dovid@tchumim.com
        תגובה 1 תגובה אחרונה
        1
        • dovidD מנותק
          dovidD מנותק
          dovid ניהול
          כתב ב נערך לאחרונה על ידי dovid
          #6

          @yossiz ברור, שאלתי אם אפשר לשלב בלי לשכפל את כל הserver.

          @dovid אמר בNGINX: להאזין לפורט מקומי גם ללא server_name, ובפורט חיצוני עם:

          האם אפשר במקטע server אחד

          אני מסכים שזה לא שווה כ"כ מחשבה, ובאשר לreuse אפשר להשתמש בייבוא קובץ ע"י include.

          • מנטור אישי בתכנות והמסתעף – להתקדם לשלב הבא!
          • בכל נושא אפשר ליצור קשר dovid@tchumim.com
          yossizY תגובה 1 תגובה אחרונה
          0
          • yossizY מנותק
            yossizY מנותק
            yossiz
            השיב לdovid ב נערך לאחרונה על ידי yossiz
            #7

            @dovid אמר בNGINX: להאזין לפורט מקומי גם ללא server_name, ובפורט חיצוני עם:

            אני רוצה לפנות לחלקם גם מתוך המכונה עצמה, ואז אני רוצה להשתמש בlocalhost, בלי להשתמש עם שם של שרת ותרגום כתובת (host או dns)

            @dovid אמר בNGINX: להאזין לפורט מקומי גם ללא server_name, ובפורט חיצוני עם:

            כדי למנוע תעבורה חיצונית צריך להשתמש עם deny, וallow על טוווחי אייפי, ואת זה אני לא יודע לשלב לפי הפורט

            אם אתה רוצה להאזין רק על 127.0.0.1 לא צריך שום deny, פשוט תגדיר

            listen 127.0.0.1:8080
            

            ותעשה כמו שכתבתי בפוסט השני שלי.

            📧 יוסי@מייל.קום | 🌎 בלוג | ☕ קפה

            dovidD תגובה 1 תגובה אחרונה
            0
            • dovidD מנותק
              dovidD מנותק
              dovid ניהול
              השיב לyossiz ב נערך לאחרונה על ידי
              #8

              @yossiz העובדות הם לא ככה!
              אכן דלא ככתוב פה https://stackoverflow.com/a/13643659/1271037
              אבל הנה סימוכין לעובדות: https://serverfault.com/questions/667798/allow-only-local-users-in-nginx

              • מנטור אישי בתכנות והמסתעף – להתקדם לשלב הבא!
              • בכל נושא אפשר ליצור קשר dovid@tchumim.com
              yossizY תגובה 1 תגובה אחרונה
              0
              • yossizY מנותק
                yossizY מנותק
                yossiz
                השיב לdovid ב נערך לאחרונה על ידי yossiz
                #9

                @dovid נו, הבאת שני מראי מקומות כמוני... מסתבר שגם העובדות הם ככה, לא?

                This means that you don't need separate allow / deny directives inside your configuration with your use case, because the connections are limited lower in the network stack.

                So, if you want to set nginx to bind to localhost, you'd change that to: listen 127.0.0.1:80;
                In this way, requests that are not coming from localhost are discarded (they don't even hit nginx).

                למעשה לא הבנתי מתוך השאלה מה עיקר הבעיה, העיקר שלא תצטרך DNS להגיע לשרת? אז תכתוב

                server_name localhost
                

                אתה רוצה למנוע גישה מבחוץ, ואתה לא מאמין ש:listen 127.0.0.1 מספיק? תשתמש בחומת האש.

                אתה צריך דוקא "במקטע server אחד להאזין לפורט אחד דוקא בהינתן server_name מסויים, ולאחר בכל מקרה"? אז נראה שבאמת אין אפשרות כזו.

                📧 יוסי@מייל.קום | 🌎 בלוג | ☕ קפה

                dovidD תגובה 1 תגובה אחרונה
                0
                • dovidD מנותק
                  dovidD מנותק
                  dovid ניהול
                  כתב ב נערך לאחרונה על ידי
                  #10

                  @yossiz סיכום מעולה...

                  • מנטור אישי בתכנות והמסתעף – להתקדם לשלב הבא!
                  • בכל נושא אפשר ליצור קשר dovid@tchumim.com
                  תגובה 1 תגובה אחרונה
                  1
                  • dovidD מנותק
                    dovidD מנותק
                    dovid ניהול
                    השיב לyossiz ב נערך לאחרונה על ידי
                    #11

                    @yossiz אמר בNGINX: להאזין לפורט מקומי גם ללא server_name, ובפורט חיצוני עם:

                    @dovid נו, הבאת שני מראי מקומות כמוני... מסתבר שגם העובדות הם ככה, לא?

                    This means that you don't need separate allow / deny directives inside your configuration with your use case, because the connections are limited lower in the network stack.

                    So, if you want to set nginx to bind to localhost, you'd change that to: listen 127.0.0.1:80;
                    In this way, requests that are not coming from localhost are discarded (they don't even hit nginx).

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

                    • מנטור אישי בתכנות והמסתעף – להתקדם לשלב הבא!
                    • בכל נושא אפשר ליצור קשר dovid@tchumim.com
                    yossizY תגובה 1 תגובה אחרונה
                    0
                    • yossizY מנותק
                      yossizY מנותק
                      yossiz
                      השיב לdovid ב נערך לאחרונה על ידי
                      #12

                      @dovid אמר בNGINX: להאזין לפורט מקומי גם ללא server_name, ובפורט חיצוני עם:

                      עד שאתה לא בודק אל תגיד כלום

                      טוב, אז כדי להוכיח שהפעם אני צודק 🙂 עשיתי ניסוי [מדעי בתנאי מעבדה], וכמובן אני צודק.
                      אם היית צודק, זה היה באג ב-nginx. האם לא יותר מסתבר שיש באג בקונפיגרציה שלך?

                      • תבדוק אם יש לך listen נוסף (אולי על IPv6?)
                      • אולי שיחקת עם כללי iptables איכשהו וגרמת שתעבורה בממשקים חיצוניים מועברים ל-localhost (אולי משהו שקשור לנטפרי? סתם ניחוש... 😏 )?
                      • מה netstat -a מראה?

                      📧 יוסי@מייל.קום | 🌎 בלוג | ☕ קפה

                      dovidD תגובה 1 תגובה אחרונה
                      1
                      • dovidD מנותק
                        dovidD מנותק
                        dovid ניהול
                        השיב לyossiz ב נערך לאחרונה על ידי
                        #13

                        @yossiz אמר בNGINX: להאזין לפורט מקומי גם ללא server_name, ובפורט חיצוני עם:

                        • תבדוק אם יש לך listen נוסף (אולי על IPv6?)

                        אכן.
                        בפועל זה לא עבד ואני לא מבין למה, ויותר מאוחר בעומקו של הלילה, זה פתאום עבד. אחרי שלוש מאות פעמים של ניסויים וnginx -s reload.
                        ואני מסכים איתך שזה מאה אחוז בעיה אצלי, וטעיתי לחשוב שהnginx לא מכבד את ההוראה כלל.

                        תודה רבה על המאמץ!

                        • מנטור אישי בתכנות והמסתעף – להתקדם לשלב הבא!
                        • בכל נושא אפשר ליצור קשר dovid@tchumim.com
                        תגובה 1 תגובה אחרונה
                        2

                        בא תתחבר לדף היומי!
                        • התחברות

                        • אין לך חשבון עדיין? הרשמה

                        • התחברו או הירשמו כדי לחפש.
                        • פוסט ראשון
                          פוסט אחרון
                        0
                        • דף הבית
                        • קטגוריות
                        • פוסטים אחרונים
                        • משתמשים
                        • חיפוש
                        • חוקי הפורום