שאלה nginx ללא server_name ושימוש בכתובת IP סטטית בלבד?


זה הפריסה הראשונה שלי באינטרנט יישום אני נתקל לתוך כל מיני בעיות.

אני כרגע הולך על יישום nginx + gonicorn עבור App Django, אבל בעיקר השאלה הזאת מתייחסת תצורות nginx. בהקשר כלשהו - nginx יקבל חיבורים ו proxy לשרת המקומי gunicorn.

בתצורות nginx, שם כתוב server_name אני צריך לספק אחד? אני לא מתכוון להשתמש שמות דומיין מכל סוג שהוא, רק דרך ה- IP החיצוני של הרשת שלי (זה סטטי) ואת מספר היציאה להקשיב.

הרצון שלי הוא שכאשר אני ניגשת למשהו כמו http://xxx.xxx.xxx.xxx:9050 אני אהיה מסוגל לקבל את האתר.

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

   server {
        listen   80;
        server_name WHAT TO PUT HERE?;

    root /path/to/test/hello;

    location /media/ {
        # if asset versioning is used
        if ($query_string) {
            expires max;
        }
    }
    location /admin/media/ {
        # this changes depending on your python version
        root /path/to/test/lib/python2.6/site-packages/django/contrib;
    }
    location / {
        proxy_pass_header Server;
        proxy_set_header Host $http_host;
        proxy_redirect off;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Scheme $scheme;
        proxy_connect_timeout 10;
        proxy_read_timeout 10;
        proxy_pass http://localhost:8000/;
    }
        # what to serve if upstream is not available or crashes
        error_page 500 502 503 504 /media/50x.html;
     }

21
2018-01-19 16:31






תשובות:


server_name ברירות מחדל למחרוזת ריקה, וזה בסדר; אתה יכול להוציא את זה לחלוטין.

גישה נפוצה נוספת עבור "אני לא רוצה לשים שם על זה" צריך להשתמש server_name _;

שלך http://xxx.xxx.xxx.xxx:9050 עם זאת, כתובת האתר לא תעבוד עם התצורה הזו; אתה רק מקשיב ביציאה 80. עליך להוסיף listen 9050; גם כן.


23
2018-01-19 16:35



היי אתה יכול להעיף מבט על זה serverfault.com/questions/678521/... - Muhammad Umer
קשור מעט - Muhammad Umer


שם שרת _; אינו תו כללי ראה כאן:

http://blog.gahooa.com/2013/08/21/nginx-how-to-specify-a-default-server

רק לציין את ההוראה default_server עבור גישה IP בלבד (ראה http://nginx.org/en/docs/http/request_processing.html)

server {
    listen 1.2.3.4:80 default_server;
    ... 
    }

5
2018-02-20 05:55



זה discouraged פשוט לקשר את פיסת מידע שימושי ולא לכלול אותו התשובה שלך - במקרה זה כי server_name _; הוא ללא התאמה. - BE77Y
"אינו תו כללי" == "הוא לא תואם". אני בטוח שהם יקבלו את זה. - Joe
השניים אינם שווים; ללא התאמה זה מה הוא שימש כאשר שום דבר אחר תואם, תוך התו הכללי תואם הכל. הנקודה כאן עם זאת היא כי מידע שימושי צריך להיות התשובה, לא קשור באתר אחר (עם זאת מוצגים היטב באתר זה), כמפורט כאן - BE77Y
הנקודה היא שזה לא 'תשובה טובה', אבל זו תשובה. סליחה אין זמן. אם אתה רוצה לערוך / לשכתב את זה, אני נותן לך הרשאה מלאה. אחרת, הם יידעו בדיוק מה לעשות, וזה מועיל. אל תהסס לשכתב אותו, אחרת התשובה עומדת. - Joe
אם היה לך 'אין זמן' לכלול שורה נוספת עם המידע הרלוונטי, אני באמת לא יודע למה אתה טרח לענות על פוסט בן 3 עם תשובה מקובלת! - BE77Y


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

server {
   listen 9050;

   .....
}

פרטים נוספים כאן: Nginx server_name וכיצד הוא פועל


1
2018-04-15 16:31