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

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

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

ניתוב בין 2 אתרים

מתוזמן נעוץ נעול הועבר תכנות
20 פוסטים 2 כותבים 1.2k צפיות
  • מהישן לחדש
  • מהחדש לישן
  • הכי הרבה הצבעות
התחברו כדי לפרסם תגובה
נושא זה נמחק. רק משתמשים עם הרשאות מתאימות יוכלו לצפות בו.
  • dovidD מחובר
    dovidD מחובר
    dovid ניהול
    כתב ב נערך לאחרונה על ידי
    #8
    1. אני לא מבין, אצלי זה ממש לא ככה.
      אולי אתה לא כותב start nginx אלא nginx לבד.

    2. אולי זה תלוי ב1, שוב, אצלי הכל חלק.

    3. בקשר ל/a ו/b זה בדיוק אבל בדיוק מה שביקשת בפתיחת האשכול, אז איך זה הפך לבעיה? אולי לא הבנתי אותך. עכ"פ אם אתה צריך להחליט לפי מה אתה רוצה לנתב את שתי האפליקציות. מלבד האפשרות לפי path אתה יכול:

    • לנתב לפי דומיין/סאב דומיין, למשל a.mysite.com וmysite.com שזה הכי נפוץ - לשם כך תוסיף server - עם אותם הגדרות - ובserver_name תכתוב את הדומיין המתאים, ובלוקיישן תכתוב רק / לבד, ובproxy_pass את הlocalhost עם הפורט הרלוונטי).
    • לנתב לפי פורט (כנ"ל, רק במקום לשנות בserver_name תשנה בport מ80 לאחר).

    מנטור אישי למתכנתים (ולא רק) – להתקדם לשלב הבא!

    בכל נושא אפשר ליצור קשר dovid@tchumim.com

    מנצפךמ תגובה 1 תגובה אחרונה
    2
    • מנצפךמ מנותק
      מנצפךמ מנותק
      מנצפך
      השיב לdovid ב נערך לאחרונה על ידי
      #9

      @dovid
      1 2 הסתדר. תודה.
      3. קח לדוגמא את האתר של נטפרי, netfree.link. יש את הדף נחיתה, ויש את דף ההגדרות.
      נניח לצורך העניין שאלו 2 אתרים שונים, כל אחד יושב על פורט אחר.
      אני רוצה שכשיבקשו את http://netfree.link/user יקבלו את האתר השני.
      מה הדרך לעשות את זה?
      אני רוצה לנסות את הדרך השניה שכתבת (לפי סאב דומיין). אך לא כ"כ הבנתי. ב server הראשון לכתוב ב server_name:
      localhost?

      אני מצרף את הקובץ כמו שהוא אחרי השינויים:

      #user  nobody;
      
      worker_processes  1;
      
      
      
      #error_log  logs/error.log;
      
      #error_log  logs/error.log  notice;
      
      #error_log  logs/error.log  info;
      
      
      
      #pid        logs/nginx.pid;
      
      
      
      
      
      events {
      
          worker_connections  1024;
      
      }
      
      
      
      
      
      http {
      
          include       mime.types;
      
          default_type  application/octet-stream;
      
      
      
          #log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
      
          #                  '$status $body_bytes_sent "$http_referer" '
      
          #                  '"$http_user_agent" "$http_x_forwarded_for"';
      
      
      
          #access_log  logs/access.log  main;
      
      
      
          sendfile        on;
      
          #tcp_nopush     on;
      
      
      
          #keepalive_timeout  0;
      
          keepalive_timeout  65;
      
      
      
          #gzip  on;
      
      
      
          server {
      
              listen       890;
      
              server_name  localhost;
      
      
      
              #charset koi8-r;
      
      
      
              #access_log  logs/host.access.log  main;
      
      
      
             location /a {
      
          proxy_set_header X-Real-IP $remote_addr;
      
          proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
      
          proxy_set_header Host $http_host;
      
          proxy_set_header X-NginX-Proxy true;    
      
          proxy_pass http://localhost:3000;
      
          proxy_redirect off;    
      
          proxy_http_version 1.1;
      
          proxy_set_header Upgrade $http_upgrade;
      
          proxy_set_header Connection "upgrade";
      
        }    
      
      
      
              #error_page  404              /404.html;
      
      
      
              # redirect server error pages to the static page /50x.html
      
              #
      
              error_page   500 502 503 504  /50x.html;
      
              location = /50x.html {
      
                  root   html;
      
              }
      
      
      
              # proxy the PHP scripts to Apache listening on 127.0.0.1:80
      
              #
      
              #location ~ \.php$ {
      
              #    proxy_pass   http://127.0.0.1;
      
              #}
      
      
      
              # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
      
              #
      
              #location ~ \.php$ {
      
              #    root           html;
      
              #    fastcgi_pass   127.0.0.1:9000;
      
              #    fastcgi_index  index.php;
      
              #    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
      
              #    include        fastcgi_params;
      
              #}
      
      
      
              # deny access to .htaccess files, if Apache's document root
      
              # concurs with nginx's one
      
              #
      
              #location ~ /\.ht {
      
              #    deny  all;
      
              #}
      
          }
      
        server {
      
              listen       890;
      
              server_name  a20.localhost;
      
      
      
              #charset koi8-r;
      
      
      
              #access_log  logs/host.access.log  main;
      
      
      
             location / {
      
          proxy_set_header X-Real-IP $remote_addr;
      
          proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
      
          proxy_set_header Host $http_host;
      
          proxy_set_header X-NginX-Proxy true;    
      
          proxy_pass http://localhost:3000;
      
          proxy_redirect off;    
      
          proxy_http_version 1.1;
      
          proxy_set_header Upgrade $http_upgrade;
      
          proxy_set_header Connection "upgrade";
      
        }    
      
      
      
              #error_page  404              /404.html;
      
      
      
              # redirect server error pages to the static page /50x.html
      
              #
      
              error_page   500 502 503 504  /50x.html;
      
              location = /50x.html {
      
                  root   html;
      
              }
      
      
      
              # proxy the PHP scripts to Apache listening on 127.0.0.1:80
      
              #
      
              #location ~ \.php$ {
      
              #    proxy_pass   http://127.0.0.1;
      
              #}
      
      
      
              # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
      
              #
      
              #location ~ \.php$ {
      
              #    root           html;
      
              #    fastcgi_pass   127.0.0.1:9000;
      
              #    fastcgi_index  index.php;
      
              #    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
      
              #    include        fastcgi_params;
      
              #}
      
      
      
              # deny access to .htaccess files, if Apache's document root
      
              # concurs with nginx's one
      
              #
      
              #location ~ /\.ht {
      
              #    deny  all;
      
              #}
      
          }
      
      
      
          # another virtual host using mix of IP-, name-, and port-based configuration
      
          #
      
          #server {
      
          #    listen       8000;
      
          #    listen       somename:8080;
      
          #    server_name  somename  alias  another.alias;
      
      
      
          #    location / {
      
          #        root   html;
      
          #        index  index.html index.htm;
      
          #    }
      
          #}
      
      
      
      
      
          # HTTPS server
      
          #
      
          #server {
      
          #    listen       443 ssl;
      
          #    server_name  localhost;
      
      
      
          #    ssl_certificate      cert.pem;
      
          #    ssl_certificate_key  cert.key;
      
      
      
          #    ssl_session_cache    shared:SSL:1m;
      
          #    ssl_session_timeout  5m;
      
      
      
          #    ssl_ciphers  HIGH:!aNULL:!MD5;
      
          #    ssl_prefer_server_ciphers  on;
      
      
      
          #    location / {
      
          #        root   html;
      
          #        index  index.html index.htm;
      
          #    }
      
          #}
      
      
      
      }
      
      תגובה 1 תגובה אחרונה
      0
      • מנצפךמ מנותק
        מנצפךמ מנותק
        מנצפך
        כתב ב נערך לאחרונה על ידי
        #10

        גם לא הבנתי מה המשמעות ב - server_name. הרי זה לכאורה מתייחס למכונה שעליה הוא יושב. לא? (תמיד localhost). משהו פה לא ברור לי.

        dovidD תגובה 1 תגובה אחרונה
        0
        • dovidD מחובר
          dovidD מחובר
          dovid ניהול
          השיב למנצפך ב נערך לאחרונה על ידי
          #11

          @מנצפך אמר בניתוב בין 2 אתרים:

          גם לא הבנתי מה המשמעות ב - server_name. הרי זה לכאורה מתייחס למכונה שעליה הוא יושב. לא? (תמיד localhost). משהו פה לא ברור לי.

          לא. server_name אומר שאם השם של הhost בבקשה תואם למה שכתוב רק אז יוחל מקטע הserver הנוכחי. אם כתוב localhost זה בחיים לא יגיע מבחוץ. אם מושמט הserver_name הכל מתאים (כמו binding * בIIS).

          מנטור אישי למתכנתים (ולא רק) – להתקדם לשלב הבא!

          בכל נושא אפשר ליצור קשר dovid@tchumim.com

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

            בנטפרי הnetfree.link/user הוא חלק מאותה אפליקציה בדיוק רק שהresponse מחזיר תשובה אחרת, במקרה הזה קבצים סטטיים.
            אם החלוקה שלך היא בין netfree.link לwiki.netfree.link אז הדרך היא ע"י שתי סרברים אם server_name שונה. אם החלוקה שלך היא בין netfree.link/a לבין netfree.link אז אתה משתמש עם server אחד רק עם שתי מקטעי location, אחד /, והשני /a כמו שהראיתי בהדגמה הראשונה.

            מנטור אישי למתכנתים (ולא רק) – להתקדם לשלב הבא!

            בכל נושא אפשר ליצור קשר dovid@tchumim.com

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

              @dovid מהי ההגדרה של server_name? כלומר, מאיפה ה- nginx מקבל את ה - servername בבקשה?
              אם אני מבין נכון זה עובד כך:
              הדפדפן שולח בקשה. ב Header "host" כתוב הדומיין. ואז ה- nginx בודק לאיזה סרבר זה מתאים, ואם נניח זה ה סאב דומיין, הוא מפנה אליו. אז הכל מתחיל מה Header הנ"ל. אני צודק? תודה.
              (האמת שניסיתי להוריד לגמרי את ה Server_name או לפברק משהו וזה עדיין עובד, אז אני מניח שזה עובד קצת שונה.)

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

                אתה היטבת לומר.

                אם הורדת את הserver_name ברור שזה יעבוד, אדרבא, קיום ההגדרה של הserver_name באה להגביל. אם פיברקת אני לא יודע איך עובד לך, אולי יש לך מקטע server אחר שמחמתו זה ממשיך לעבוד.

                מנטור אישי למתכנתים (ולא רק) – להתקדם לשלב הבא!

                בכל נושא אפשר ליצור קשר dovid@tchumim.com

                מנצפךמ תגובה 1 תגובה אחרונה
                1
                • מנצפךמ מנותק
                  מנצפךמ מנותק
                  מנצפך
                  השיב לdovid ב נערך לאחרונה על ידי
                  #15

                  @dovid לא הצלחתי לעשות סאב דומיין.
                  דבר ראשון ה - server_name לא משנה כלום. לא מעלה ולא מוריד. גם כשחירבשתי משהו הוא עבד היטב (בעצם הוא מתעלם מזה תמיד). ממילא אני לא מצליח לעשות סאב דומיין.

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

                    תעלה את הקובץ

                    מנטור אישי למתכנתים (ולא רק) – להתקדם לשלב הבא!

                    בכל נושא אפשר ליצור קשר dovid@tchumim.com

                    מנצפךמ תגובה 1 תגובה אחרונה
                    0
                    • מנצפךמ מנותק
                      מנצפךמ מנותק
                      מנצפך
                      השיב לdovid ב נערך לאחרונה על ידי
                      #17

                      @dovid לא יודע איך לעשות הזחה אוטומטית בקובץ הזה. מקווה שתסתדר.

                      worker_processes  1;
                      

                      events {
                      worker_connections 1024;
                      }
                      http {
                      include mime.types;
                      default_type application/octet-stream;

                      #access_log  logs/access.log  main;
                      
                      sendfile        on;
                      #tcp_nopush     on;
                      
                      keepalive_timeout  65;
                      
                      server {
                      

                      listen 80;

                          server_name my.co.il;
                      
                         location / {
                      

                      proxy_set_header X-Real-IP $remote_addr;
                      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                      proxy_set_header Host $http_host;
                      proxy_set_header X-NginX-Proxy true;
                      proxy_pass http://localhost:3000;

                      proxy_redirect off;
                      proxy_http_version 1.1;
                      proxy_set_header Upgrade $http_upgrade;
                      proxy_set_header Connection "upgrade";
                      }

                      }
                      

                      server {
                      listen 80;

                          server_name  a.my.co.il;
                      	
                         location / {
                      

                      proxy_set_header X-Real-IP $remote_addr;

                      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

                      proxy_set_header Host $http_host;

                      proxy_set_header X-NginX-Proxy true;

                      proxy_pass http://localhost:3000;

                      proxy_redirect off;

                      proxy_http_version 1.1;

                      proxy_set_header Upgrade $http_upgrade;

                      proxy_set_header Connection "upgrade";

                      }
                      }

                      }

                      תגובה 1 תגובה אחרונה
                      0
                      • מנצפךמ מנותק
                        מנצפךמ מנותק
                        מנצפך
                        כתב ב נערך לאחרונה על ידי
                        #18

                        @dovid מקווה שכך יותר ברור
                        0_1522272405077_conf.txt

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

                          אכן טעיתי:

                          If its value does not match any server name, or the request does not contain this header field at all, then nginx will route the request to the default server for this port. In the configuration above, the default server is the first one — which is nginx’s standard default behaviour.
                          מקור: http://nginx.org/en/docs/http/request_processing.html

                          כלומר אם הבקשה לא מתאימה לאף server_name אז הראשון (או זה שצויין ברירת מחדל) לוקח.
                          כדי למנוע את זה הם כותבים בהמשך, מוסיפם עוד סרבר שהserver_name שלו ריק. אם רוצים שלמבקש לא תהיה אף תשובה, אז כותבים return 444.

                          server {
                              listen      80;
                              server_name "";
                              return      444;
                          }
                          

                          מנטור אישי למתכנתים (ולא רק) – להתקדם לשלב הבא!

                          בכל נושא אפשר ליצור קשר dovid@tchumim.com

                          תגובה 1 תגובה אחרונה
                          1
                          • מנצפךמ מנותק
                            מנצפךמ מנותק
                            מנצפך
                            כתב ב נערך לאחרונה על ידי
                            #20

                            @dovid היתה לי טעות שלא הגדרתי רשומת A לסאב דומיין. מקווה שעכשיו זה יעבוד.

                            תגובה 1 תגובה אחרונה
                            0

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

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

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