פרוקסי הפוך NGINX
-
@yossiz כתב בפרוקסי הפוך NGINX:
curl -I XXX.ovh
HTTP/1.1 200 OK
Server: nginx
Date: Fri, 17 Feb 2023 11:05:19 GMT
Content-Type: text/html
Content-Length: 612
Connection: keep-alive
Last-Modified: Tue, 21 Apr 2020 14:09:01 GMT
ETag: "5e9efe7d-264"
Accept-Ranges: bytes
X-Frame-Options: sameorigin
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
X-Download-Options: noopen
X-Permitted-Cross-Domain-Policies: none
Content-Security-Policy: default-src https: data: 'unsafe-inline' 'unsafe-eval'
Referrer-Policy: strict-origincurl -I 192.168.182.130
HTTP/1.1 200 OK
Server: nginx/1.18.0 (Ubuntu)
Date: Fri, 17 Feb 2023 11:05:46 GMT
Content-Type: text/html
Content-Length: 612
Last-Modified: Tue, 21 Apr 2020 14:09:01 GMT
Connection: keep-alive
ETag: "5e9efe7d-264"
Accept-Ranges: bytes -
פוסט זה נמחק!
-
אני רואה שהתשובה של @ליבל
server { listen 80; server_name XXX.ovh; location / { proxy_pass http://192.168.182.130; } }
עובדת כלומר הדומיין מגיע למכונה השניה ומעלה את הדף של נגינקס
רק החיסרון הוא שתת דומיין לא עובר לו
כלומר במעבר נמחק התת דומיין ולא מגיע בכלל למכונה השניה כך שהיא לא יודעת שאני פונה באמצעות תת דומיין
מעלה פלט של מה שביקש @yossiz (אני יודע שכתע זה IP פנימי אחר)ubuntu@mail:~$ curl -I 192.168.182.131 HTTP/1.1 200 OK Server: nginx/1.18.0 (Ubuntu) Date: Fri, 17 Feb 2023 11:25:22 GMT Content-Type: text/html Content-Length: 612 Last-Modified: Tue, 21 Apr 2020 14:09:01 GMT Connection: keep-alive ETag: "5e9efe7d-264" Accept-Ranges: bytes ubuntu@mail:~$ curl -I pma.XXX.ovh HTTP/1.1 200 OK Server: nginx Date: Fri, 17 Feb 2023 11:25:28 GMT Content-Type: text/html Content-Length: 612 Connection: keep-alive Last-Modified: Tue, 21 Apr 2020 14:09:01 GMT ETag: "5e9efe7d-264" Accept-Ranges: bytes X-Frame-Options: sameorigin X-Content-Type-Options: nosniff X-XSS-Protection: 1; mode=block X-Download-Options: noopen X-Permitted-Cross-Domain-Policies: none Content-Security-Policy: default-src https: data: 'unsafe-inline' 'unsafe-eval' Referrer-Policy: strict-origin ubuntu@mail:~$ curl -I XXX.ovh HTTP/1.1 200 OK Server: nginx Date: Fri, 17 Feb 2023 11:25:34 GMT Content-Type: text/html Content-Length: 612 Connection: keep-alive Last-Modified: Tue, 21 Apr 2020 14:09:01 GMT ETag: "5e9efe7d-264" Accept-Ranges: bytes X-Frame-Options: sameorigin X-Content-Type-Options: nosniff X-XSS-Protection: 1; mode=block X-Download-Options: noopen X-Permitted-Cross-Domain-Policies: none Content-Security-Policy: default-src https: data: 'unsafe-inline' 'unsafe-eval' Referrer-Policy: strict-origin ubuntu@mail:~$
לפי מה שזה נראה הן הדומיין והן התת דומיין מחזירים את אותה התגובה
-
@A0533057932 כתב בפרוקסי הפוך NGINX:
כלומר במעבר נמחק התת דומיין ולא מגיע בכלל למכונה השניה כך שהיא לא יודעת שאני פונה באמצעות תת דומיין
זה באמת בגלל הקוד של @ליבל. הא הסיר את ההעברה של הכותרת Host אז לשרת היעד אין מושג בשם איזה אתר פנו אליו, וזה מפעיל את אתר הdefault שיש בnginx.
-
פתאום אני מבין את הבעיה.
שאתה כותב את האייפי לבד בcurl הכל עובד כי הוא מחזיר את הdefault.
ואילו כשאתה כותב את ההעברה בפרוקסי המלאה כמו בתחילת הנושא אתה מקבל שגיאה/בעיה כי פשוט הדומיין/הסאב דומיין מוגדרים במחשב היעד באופן לא תקין.אתה יכול להיווכח בזאת בקלות ע"י הרצה של curl עם הhost המתאים:
curl 192.168.182.130 -H "Host: xxx.ovh";
אתה תראה שזה יחזיר בדיוק את אותה בעיה שזה מחזיר בדפדפן.
שאלת בתחילת הנושא אם הnginx של שרת היעד צריך הגדרה מסויימת וכתבתי לך שלא, אבל ברור שהוא צריך להיות מוגדר לטפל בדומיין/סאב דומיין המתאים ובואפן הראוי כאילו הוא זה שמקבל אותם במקור.
-
@dovid כתב בפרוקסי הפוך NGINX:
אתה תראה שזה יחזיר בדיוק את אותה בעיה שזה מחזיר בדפדפן.
לא בדיוק הבנתי, הרי כל דומיין\תת דומייין פונה ל IP, אז השרת הראשון יענה לו (כמובן בהתאם לפורט)
עכשיו אם אתה רוצה להפנות בהתאם לתת דומיין אז צריך להגדיר זאת בנפרד, כלומר מה זה קשור למה שכתבת ? -
@ליבל תת הדומיין לא עובר לסרבר
מבחינת הלוג של סרבר B אין בכלל קריאה לקובץ של תת הדומייןזה הקובץ כרגע בA
server { listen 80; server_name XXX.ovh pma.XXX.ovh; location / { proxy_pass http://192.168.182.131; } }
וזה מה שמוגדר במכונה B לדומיין הראשי
לדומיין הראשיserver { listen 80; listen [::]:80; server_name _; root /usr/share/nginx/html/; index index.php index.html index.htm index.nginx-debian.html; location / { try_files $uri $uri/ /index.php; } location ~ \.php$ { fastcgi_pass unix:/run/php/php8.1-fpm.sock; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; include snippets/fastcgi-php.conf; } # A long browser cache lifetime can speed up repeat visits to your page location ~* \.(jpg|jpeg|gif|png|webp|svg|woff|woff2|ttf|css|js|ico|xml)$ { access_log off; log_not_found off; expires 360d; } # disable access to hidden files location ~ /\.ht { access_log off; log_not_found off; deny all; } }
וזה לדומיין המשנה
server { listen 80; listen [::]:80; server_name pma.XXX.ovh; root /usr/share/phpmyadmin/; index index.php index.html index.htm index.nginx-debian.html; access_log /var/log/nginx/phpmyadmin_access.log; error_log /var/log/nginx/phpmyadmin_error.log; location / { try_files $uri $uri/ /index.php; } location ~ ^/(doc|sql|setup)/ { deny all; } location ~ \.php$ { fastcgi_pass unix:/run/php/php8.1-fpm.sock; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; include snippets/fastcgi-php.conf; } location ~ /\.ht { deny all; } }
-
@ליבל כתב בפרוקסי הפוך NGINX:
השרת הראשון יענה לו
השרת הראשון עונה לו, והוא מוגדר נכון.
אז התשובה היא לפנות לשרת השני, ולהעביר את התשובה הזו ללקוח.
השרת השני מקבל בקשה עם Host של XXX.ovh ואז הוא עונה שטויות בגלל בעיית הגדרה.
אם השרת השני מקבל בקשה בלי הHost (כמו בהגדרות שנתת או כמו בcurl עם אייפי בלי דומיין) אז הוא עונה "לעניין" את הWelcome to nginx! שזה אתר הdefault שמוגדר שמה והוא תקין. -
@A0533057932 אז תנסה להוסיף את ההדרים (בשרת A) כאן
server { listen 80; server_name XXX.ovh pma.XXX.ovh; location / { proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_pass http://192.168.182.131; } }
-
@A0533057932 לא יודע אם היה לך פניות להבין מה שכתבתי,
אבל הפרוקסי מהתחלה עובד מעולה.
הבעיה היא שהnginx של השרת השני (הפנימי) לא מוגדר נכון לדומיין הרלוונטי.
כתבתי לך גם אפשרות לבדוק זאת בלי nginx בכלל ע"י curl מכל מחשב ברשת הפנימית, עם האייפי של היעד ועם התוספת, ככה:curl 192.168.182.130 -H "Host: xxx.ovh";
עריכה: כעת אני רואה שהוספת את ההגדרות של הnginx בשרת הפנימי.
צריך סבלנות ללמוד אותם, אבל הבעיה אך ורק בזה. -
@ליבל כתב בפרוקסי הפוך NGINX:
@A0533057932 אז תנסה להוסיף את ההדרים (בשרת A) כאן
server { listen 80; server_name XXX.ovh pma.XXX.ovh; location / { proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_pass http://192.168.182.131; } }
כעת זה עובר
אבל לא עולה דף וכל הקונסול מלא בשגיאה הבאה
Provisional headers are shown
נ.ב. השבתתי קאש
-
כעת בקיראה חפיפה של ההגדרות בשרת B.
ישנם שני הגדרות, אחת לשרת דיפולטי, כלומר לכל דומיין שבעולם לא דוקא דומיין ראשי.
השני ספציפית לדומיין pma.XXX.ovh.כעת אתה צריך להבין מה הבעיה בדומיין השני.
(את הגדרות הפרוקסי תשחזר למה שהיה בתחילת הנושא, זה היה 100% בסדר). -
@dovid כתב בפרוקסי הפוך NGINX:
כעת בקיראה חפיפה של ההגדרות בשרת B.
ישנם שני הגדרות, אחת לשרת דיפולטי, כלומר לכל דומיין שבעולם לא דוקא דומיין ראשי.
השני ספציפית לדומיין pma.XXX.ovh.כעת אתה צריך להבין מה הבעיה בדומיין השני.
(את הגדרות הפרוקסי תשחזר למה שהיה בתחילת הנושא, זה היה 100% בסדר).השבתתי לחלוטין את דיפולט
כל מה שיש כעת זה רק התת דומיין והשגיאה עדין מגיעהנ.ב. הקובץ תצורה עצמו עובד נהדר על שרת רגיל שפתוח ישירות לרשת
-
@A0533057932 כתב בפרוקסי הפוך NGINX:
השבתתי לחלוטין את דיפולט
כל מה שיש כעת זה רק התת דומייןלא אמור לשנות משהו.
@A0533057932 כתב בפרוקסי הפוך NGINX:
נ.ב. הקובץ תצורה עצמו עובד נהדר על שרת רגיל שפתוח ישירות לרשת
אם יותר נח לך לחפש מתחת לפנס, בשמחה.
אני אמרתי לך בדיוק איפה הבעיה, וגם איך לבדוק אותה עם curl.
לא אמרתי שהבעיה בתצורה, ייתכן שהבעיה שפשוט התיקיה של phpmadmin לא מלאה בקבצים הנדרשים ועוד רעיונות.
תכלס: אין בעיה בפרוקסי. יש בעיה באתר ב שבשרת ב.
אגב מצילום המסך שבדפדפן הדף הראשי עובד ורק התלויות לא עובדות. תבדוק מה התשובה לדף הראשי, ותראה אם זה טוב. -
@dovid כתב בפרוקסי הפוך NGINX:
@A0533057932 כתב בפרוקסי הפוך NGINX:
השבתתי לחלוטין את דיפולט
כל מה שיש כעת זה רק התת דומייןלא אמור לשנות משהו.
@A0533057932 כתב בפרוקסי הפוך NGINX:
נ.ב. הקובץ תצורה עצמו עובד נהדר על שרת רגיל שפתוח ישירות לרשת
אם יותר נח לך לחפש מתחת לפנס, בשמחה.
אני אמרתי לך בדיוק איפה הבעיה, וגם איך לבדוק אותה עם curl.
לא אמרתי שהבעיה בתצורה, ייתכן שהבעיה שפשוט התיקיה של phpmadmin לא מלאה בקבצים הנדרשים ועוד רעיונות.
תכלס: אין בעיה בפרוקסי. יש בעיה באתר ב שבשרת ב.
אגב מצילום המסך שבדפדפן הדף הראשי עובד ורק התלויות לא עובדות. תבדוק מה התשובה לדף הראשי, ותראה אם זה טוב.הפלט של הפקודה
<!doctype html> <html lang="en" dir="ltr"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"> <meta name="referrer" content="no-referrer"> <meta name="robots" content="noindex,nofollow"> <meta http-equiv="X-UA-Compatible" content="IE=Edge"> <style id="cfs-style">html{display: none;}</style> <link rel="icon" href="favicon.ico" type="image/x-icon"> <link rel="shortcut icon" href="favicon.ico" type="image/x-icon"> <link rel="stylesheet" type="text/css" href="./themes/pmahomme/jquery/jquery-ui.css"> <link rel="stylesheet" type="text/css" href="js/vendor/codemirror/lib/codemirror.css?v=5.1.1deb5ubuntu1"> <link rel="stylesheet" type="text/css" href="js/vendor/codemirror/addon/hint/show-hint.css?v=5.1.1deb5ubuntu1"> <link rel="stylesheet" type="text/css" href="js/vendor/codemirror/addon/lint/lint.css?v=5.1.1deb5ubuntu1"> <link rel="stylesheet" type="text/css" href="./themes/pmahomme/css/theme.css?v=5.1.1deb5ubuntu1&nocache=670142994ltr&server=1"> <link rel="stylesheet" type="text/css" href="./themes/pmahomme/css/printview.css?v=5.1.1deb5ubuntu1" media="print" id="printcss"> <title>phpMyAdmin</title> <script data-cfasync="false" type="text/javascript" src="js/vendor/jquery/jquery.min.js?v=5.1.1deb5ubuntu1"></script> <script data-cfasync="false" type="text/javascript" src="js/vendor/jquery/jquery-migrate.js?v=5.1.1deb5ubuntu1"></script> <script data-cfasync="false" type="text/javascript" src="js/vendor/sprintf.js?v=5.1.1deb5ubuntu1"></script> <script data-cfasync="false" type="text/javascript" src="js/dist/ajax.js?v=5.1.1deb5ubuntu1"></script> <script data-cfasync="false" type="text/javascript" src="js/dist/keyhandler.js?v=5.1.1deb5ubuntu1"></script> <script data-cfasync="false" type="text/javascript" src="js/vendor/bootstrap/bootstrap.bundle.min.js?v=5.1.1deb5ubuntu1"></script> <script data-cfasync="false" type="text/javascript" src="js/vendor/jquery/jquery-ui.min.js?v=5.1.1deb5ubuntu1"></script> <script data-cfasync="false" type="text/javascript" src="js/vendor/js.cookie.js?v=5.1.1deb5ubuntu1"></script> <script data-cfasync="false" type="text/javascript" src="js/vendor/jquery/jquery.mousewheel.js?v=5.1.1deb5ubuntu1"></script> <script data-cfasync="false" type="text/javascript" src="js/vendor/jquery/jquery.validate.js?v=5.1.1deb5ubuntu1"></script> <script data-cfasync="false" type="text/javascript" src="js/vendor/jquery/jquery-ui-timepicker-addon.js?v=5.1.1deb5ubuntu1"></script> <script data-cfasync="false" type="text/javascript" src="js/vendor/jquery/jquery.ba-hashchange-2.0.js?v=5.1.1deb5ubuntu1"></script> <script data-cfasync="false" type="text/javascript" src="js/vendor/jquery/jquery.debounce-1.0.6.js?v=5.1.1deb5ubuntu1"></script> <script data-cfasync="false" type="text/javascript" src="js/dist/menu_resizer.js?v=5.1.1deb5ubuntu1"></script> <script data-cfasync="false" type="text/javascript" src="js/dist/cross_framing_protection.js?v=5.1.1deb5ubuntu1"></script> <script data-cfasync="false" type="text/javascript" src="js/dist/rte.js?v=5.1.1deb5ubuntu1"></script> <script data-cfasync="false" type="text/javascript" src="js/vendor/tracekit.js?v=5.1.1deb5ubuntu1"></script> <script data-cfasync="false" type="text/javascript" src="js/dist/error_report.js?v=5.1.1deb5ubuntu1"></script> <script data-cfasync="false" type="text/javascript" src="js/messages.php?l=en&v=5.1.1deb5ubuntu1&lang=en"></script> <script data-cfasync="false" type="text/javascript" src="js/dist/config.js?v=5.1.1deb5ubuntu1"></script> <script data-cfasync="false" type="text/javascript" src="js/dist/doclinks.js?v=5.1.1deb5ubuntu1"></script> <script data-cfasync="false" type="text/javascript" src="js/dist/functions.js?v=5.1.1deb5ubuntu1"></script> <script data-cfasync="false" type="text/javascript" src="js/dist/navigation.js?v=5.1.1deb5ubuntu1"></script> <script data-cfasync="false" type="text/javascript" src="js/dist/indexes.js?v=5.1.1deb5ubuntu1"></script> <script data-cfasync="false" type="text/javascript" src="js/dist/common.js?v=5.1.1deb5ubuntu1"></script> <script data-cfasync="false" type="text/javascript" src="js/dist/page_settings.js?v=5.1.1deb5ubuntu1"></script> <script data-cfasync="false" type="text/javascript" src="js/dist/drag_drop_import.js?v=5.1.1deb5ubuntu1"></script> <script data-cfasync="false" type="text/javascript" src="js/dist/shortcuts_handler.js?v=5.1.1deb5ubuntu1"></script> <script data-cfasync="false" type="text/javascript" src="js/vendor/codemirror/lib/codemirror.js?v=5.1.1deb5ubuntu1"></script> <script data-cfasync="false" type="text/javascript" src="js/vendor/codemirror/mode/sql/sql.js?v=5.1.1deb5ubuntu1"></script> <script data-cfasync="false" type="text/javascript" src="js/vendor/codemirror/addon/runmode/runmode.js?v=5.1.1deb5ubuntu1"></script> <script data-cfasync="false" type="text/javascript" src="js/vendor/codemirror/addon/hint/show-hint.js?v=5.1.1deb5ubuntu1"></script> <script data-cfasync="false" type="text/javascript" src="js/vendor/codemirror/addon/hint/sql-hint.js?v=5.1.1deb5ubuntu1"></script> <script data-cfasync="false" type="text/javascript" src="js/vendor/codemirror/addon/lint/lint.js?v=5.1.1deb5ubuntu1"></script> <script data-cfasync="false" type="text/javascript" src="js/dist/codemirror/addon/lint/sql-lint.js?v=5.1.1deb5ubuntu1"></script> <script data-cfasync="false" type="text/javascript" src="js/dist/console.js?v=5.1.1deb5ubuntu1"></script> <script data-cfasync="false" type="text/javascript"> // <![CDATA[ var firstDayOfCalendar = '0'; var themeImagePath = '.\/themes\/pmahomme\/img\/'; var mysqlDocTemplate = '.\/url.php\u003Furl\u003Dhttps\u00253A\u00252F\u00252Fdev.mysql.com\u00252Fdoc\u00252Frefman\u00252F5.7\u00252Fen\u00252F\u002525s.html'; var maxInputVars = 1000; if ($.datepicker) { $.datepicker.regional[''].closeText = 'Done'; $.datepicker.regional[''].prevText = 'Prev'; $.datepicker.regional[''].nextText = 'Next'; $.datepicker.regional[''].currentText = 'Today'; $.datepicker.regional[''].monthNames = [ 'January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December', ]; $.datepicker.regional[''].monthNamesShort = [ 'Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec', ]; $.datepicker.regional[''].dayNames = [ 'Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', ]; $.datepicker.regional[''].dayNamesShort = [ 'Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', ]; $.datepicker.regional[''].dayNamesMin = [ 'Su', 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa', ]; $.datepicker.regional[''].weekHeader = 'Wk'; $.datepicker.regional[''].showMonthAfterYear = false; $.datepicker.regional[''].yearSuffix = ''; $.extend($.datepicker._defaults, $.datepicker.regional['']); } if ($.timepicker) { $.timepicker.regional[''].timeText = 'Time'; $.timepicker.regional[''].hourText = 'Hour'; $.timepicker.regional[''].minuteText = 'Minute'; $.timepicker.regional[''].secondText = 'Second'; $.extend($.timepicker._defaults, $.timepicker.regional['']); } function extendingValidatorMessages () { $.extend($.validator.messages, { required: 'This\u0020field\u0020is\u0020required', remote: 'Please\u0020fix\u0020this\u0020field', email: 'Please\u0020enter\u0020a\u0020valid\u0020email\u0020address', url: 'Please\u0020enter\u0020a\u0020valid\u0020URL', date: 'Please\u0020enter\u0020a\u0020valid\u0020date', dateISO: 'Please\u0020enter\u0020a\u0020valid\u0020date\u0020\u0028\u0020ISO\u0020\u0029', number: 'Please\u0020enter\u0020a\u0020valid\u0020number', creditcard: 'Please\u0020enter\u0020a\u0020valid\u0020credit\u0020card\u0020number', digits: 'Please\u0020enter\u0020only\u0020digits', equalTo: 'Please\u0020enter\u0020the\u0020same\u0020value\u0020again', maxlength: $.validator.format('Please\u0020enter\u0020no\u0020more\u0020than\u0020\u007B0\u007D\u0020characters'), minlength: $.validator.format('Please\u0020enter\u0020at\u0020least\u0020\u007B0\u007D\u0020characters'), rangelength: $.validator.format('Please\u0020enter\u0020a\u0020value\u0020between\u0020\u007B0\u007D\u0020and\u0020\u007B1\u007D\u0020characters\u0020long'), range: $.validator.format('Please\u0020enter\u0020a\u0020value\u0020between\u0020\u007B0\u007D\u0020and\u0020\u007B1\u007D'), max: $.validator.format('Please\u0020enter\u0020a\u0020value\u0020less\u0020than\u0020or\u0020equal\u0020to\u0020\u007B0\u007D'), min: $.validator.format('Please\u0020enter\u0020a\u0020value\u0020greater\u0020than\u0020or\u0020equal\u0020to\u0020\u007B0\u007D'), validationFunctionForDateTime: $.validator.format('Please\u0020enter\u0020a\u0020valid\u0020date\u0020or\u0020time'), validationFunctionForHex: $.validator.format('Please\u0020enter\u0020a\u0020valid\u0020HEX\u0020input'), validationFunctionForMd5: $.validator.format('This\u0020column\u0020can\u0020not\u0020contain\u0020a\u002032\u0020chars\u0020value'), validationFunctionForAesDesEncrypt: $.validator.format('These\u0020functions\u0020are\u0020meant\u0020to\u0020return\u0020a\u0020binary\u0020result\u003B\u0020to\u0020avoid\u0020inconsistent\u0020results\u0020you\u0020should\u0020store\u0020it\u0020in\u0020a\u0020BINARY,\u0020VARBINARY,\u0020or\u0020BLOB\u0020column.') }); } CommonParams.setAll({common_query:"lang=en",opendb_url:"index.php?route=/database/structure&lang=en",lang:"en",server:"1",table:"",db:"",token:"584f652b5e487c70633e73587f303f54",text_dir:"ltr",show_databases_navigation_as_tree:true,pma_text_default_tab:"Browse",pma_text_left_default_tab:"Structure",pma_text_left_default_tab2:false,LimitChars:"50",pftext:"",confirm:true,LoginCookieValidity:"1440",session_gc_maxlifetime:"1440",logged_in:false,is_https:false,rootPath:"/",arg_separator:"&",PMA_VERSION:"5.1.1deb5ubuntu1",auth_type:"cookie",user:"root"}); ConsoleEnterExecutes=false AJAX.scriptHandler .add('vendor/jquery/jquery.min.js', 0) .add('vendor/jquery/jquery-migrate.js', 0) .add('vendor/sprintf.js', 1) .add('ajax.js', 0) .add('keyhandler.js', 1) .add('vendor/bootstrap/bootstrap.bundle.min.js', 1) .add('vendor/jquery/jquery-ui.min.js', 0) .add('vendor/js.cookie.js', 1) .add('vendor/jquery/jquery.mousewheel.js', 0) .add('vendor/jquery/jquery.validate.js', 0) .add('vendor/jquery/jquery-ui-timepicker-addon.js', 0) .add('vendor/jquery/jquery.ba-hashchange-2.0.js', 0) .add('vendor/jquery/jquery.debounce-1.0.6.js', 0) .add('menu_resizer.js', 1) .add('cross_framing_protection.js', 0) .add('rte.js', 1) .add('vendor/tracekit.js', 1) .add('error_report.js', 1) .add('messages.php', 0) .add('config.js', 1) .add('doclinks.js', 1) .add('functions.js', 1) .add('navigation.js', 1) .add('indexes.js', 1) .add('common.js', 1) .add('page_settings.js', 1) .add('drag_drop_import.js', 1) .add('shortcuts_handler.js', 1) .add('vendor/codemirror/lib/codemirror.js', 0) .add('vendor/codemirror/mode/sql/sql.js', 0) .add('vendor/codemirror/addon/runmode/runmode.js', 0) .add('vendor/codemirror/addon/hint/show-hint.js', 0) .add('vendor/codemirror/addon/hint/sql-hint.js', 0) .add('vendor/codemirror/addon/lint/lint.js', 0) .add('codemirror/addon/lint/sql-lint.js', 0) .add('console.js', 1) ; $(function() { AJAX.fireOnload('vendor/sprintf.js'); AJAX.fireOnload('keyhandler.js'); AJAX.fireOnload('vendor/bootstrap/bootstrap.bundle.min.js'); AJAX.fireOnload('vendor/js.cookie.js'); AJAX.fireOnload('menu_resizer.js'); AJAX.fireOnload('rte.js'); AJAX.fireOnload('vendor/tracekit.js'); AJAX.fireOnload('error_report.js'); AJAX.fireOnload('config.js'); AJAX.fireOnload('doclinks.js'); AJAX.fireOnload('functions.js'); AJAX.fireOnload('navigation.js'); AJAX.fireOnload('indexes.js'); AJAX.fireOnload('common.js'); AJAX.fireOnload('page_settings.js'); AJAX.fireOnload('drag_drop_import.js'); AJAX.fireOnload('shortcuts_handler.js'); AJAX.fireOnload('console.js'); }); // ]]> </script> <noscript><style>html{display:block}</style></noscript> </head> <body id=loginform> <div id="pma_header"></div> <div id="page_content"> <div class="container"> <div class="row"> <div class="col-12"> <a href="./url.php?url=https%3A%2F%2Fwww.phpmyadmin.net%2F" target="_blank" rel="noopener noreferrer" class="logo"> <img src="./themes/pmahomme/img/logo_right.png" id="imLogo" name="imLogo" alt="phpMyAdmin" border="0"> </a> <h1>Welcome to <bdo dir="ltr" lang="en">phpMyAdmin</bdo></h1> <noscript> <div class="alert alert-danger" role="alert"> <img src="themes/dot.gif" title="" alt="" class="icon ic_s_error"> Javascript must be enabled past this point! </div> </noscript> <div class="hide" id="js-https-mismatch"> <div class="alert alert-danger" role="alert"> <img src="themes/dot.gif" title="" alt="" class="icon ic_s_error"> There is a mismatch between HTTPS indicated on the server and client. This can lead to a non working phpMyAdmin or a security risk. Please fix your server configuration to indicate HTTPS properly. </div> </div> <div class='hide js-show'> <form method="get" action="index.php?route=/&lang=en" class="disableAjax"> <input type="hidden" name="db" value=""><input type="hidden" name="table" value=""><input type="hidden" name="lang" value="en"><input type="hidden" name="token" value="584f652b5e487c70633e73587f303f54"> <fieldset> <legend class="col-form-label" lang="en" dir="ltr">Language</legend> <select name="lang" class="autosubmit" lang="en" dir="ltr" id="sel-lang"> <option value="sq"> Shqip - Albanian </option> <option value="ar"> العربية - Arabic </option> <option value="hy"> Հայերէն - Armenian </option> <option value="az"> Azərbaycanca - Azerbaijani </option> <option value="bn"> বাংলা - Bangla </option> <option value="be"> Беларуская - Belarusian </option> <option value="bg"> Български - Bulgarian </option> <option value="ca"> Català - Catalan </option> <option value="zh_cn"> 中文 - Chinese simplified </option> <option value="zh_tw"> 中文 - Chinese traditional </option> <option value="cs"> Čeština - Czech </option> <option value="da"> Dansk - Danish </option> <option value="nl"> Nederlands - Dutch </option> <option value="en" selected="selected"> English </option> <option value="en_gb"> English (United Kingdom) </option> <option value="et"> Eesti - Estonian </option> <option value="fi"> Suomi - Finnish </option> <option value="fr"> Français - French </option> <option value="gl"> Galego - Galician </option> <option value="de"> Deutsch - German </option> <option value="el"> Ελληνικά - Greek </option> <option value="he"> עברית - Hebrew </option> <option value="hu"> Magyar - Hungarian </option> <option value="id"> Bahasa Indonesia - Indonesian </option> <option value="ia"> Interlingua </option> <option value="it"> Italiano - Italian </option> <option value="ja"> 日本語 - Japanese </option> <option value="kk"> Қазақ - Kazakh </option> <option value="ko"> 한국어 - Korean </option> <option value="nb"> Norsk - Norwegian </option> <option value="pl"> Polski - Polish </option> <option value="pt"> Português - Portuguese </option> <option value="pt_br"> Português (Brasil) - Portuguese (Brazil) </option> <option value="ro"> Română - Romanian </option> <option value="ru"> Русский - Russian </option> <option value="sr@latin"> Srpski - Serbian (latin) </option> <option value="si"> සිංහල - Sinhala </option> <option value="sk"> Slovenčina - Slovak </option> <option value="sl"> Slovenščina - Slovenian </option> <option value="es"> Español - Spanish </option> <option value="sv"> Svenska - Swedish </option> <option value="tr"> Türkçe - Turkish </option> <option value="uk"> Українська - Ukrainian </option> <option value="vi"> Tiếng Việt - Vietnamese </option> </select> </fieldset> </form> </div> <form method="post" id="login_form" action="index.php?route=/" name="login_form" class="disableAjax hide login js-show form-horizontal"> <fieldset> <legend class="col-form-label"> <input type="hidden" name="set_session" value="sph1jren9k35okrmkhojm07e94"> Log in <a href="./url.php?url=https%3A%2F%2Fdocs.phpmyadmin.net%2Fen%2Flatest%2Findex.html" target="documentation"><img src="themes/dot.gif" title="Documentation" alt="Documentation" class="icon ic_b_help"></a> </legend> <div class="item form-row"> <label for="input_username" class="col-4 d-flex align-items-center"> Username: </label> <div class="col-8"> <input type="text" name="pma_username" id="input_username" value="" size="24" class="textfield" autocomplete="username"> </div> </div> <div class="item form-row"> <label for="input_password" class="col-4 d-flex align-items-center"> Password: </label> <div class="col-8"> <input type="password" name="pma_password" id="input_password" value="" size="24" class="textfield" autocomplete="current-password"> </div> </div> <input type="hidden" name="server" value="1"> </fieldset> <fieldset class="tblFooters"> <input class="btn btn-primary" value="Go" type="submit" id="input_go"> <input type="hidden" name="route" value="/"><input type="hidden" name="lang" value="en"><input type="hidden" name="token" value="584f652b5e487c70633e73587f303f54"> </fieldset> </form> </div> <div id="pma_footer"></div> </div> </body> </html>