Score:1

Nginx เปลี่ยนเส้นทางไปยังโดเมนอื่นตามไดเรกทอรีย่อย

ธง br

ฉันไม่ใช่ผู้เชี่ยวชาญเกี่ยวกับ nginx แต่ฉันใช้มันมาระยะหนึ่งแล้ว ฉันให้บริการเว็บแอปพลิเคชันหลายเซิร์ฟเวอร์ผ่าน nginx เป็นพร็อกซีย้อนกลับ

ปัญหา: ฉันให้บริการในไดเรกทอรีย่อยของแอปพลิเคชัน Spring Boot nginx กำลังเปลี่ยนเส้นทางผู้ใช้ไปยังโดเมนที่แตกต่างกันโดยสิ้นเชิง (server_name) เมื่อไปที่ไดเรกทอรีย่อยโดยตรง สมมติว่าไดเร็กทอรีย่อยคือ "/subdir" ฉันยังให้บริการแอปพลิเคชันเวิร์ดเพรสในรูทด้วย สมมติว่าเป็น "https://example.com"

  1. ตัวอย่างเช่น ผู้ใช้ป้อน "https://example.com/subdir/countries" ผู้ใช้จะพร็อกซีไปยังแอปพลิเคชัน Spring Boot อย่างถูกต้อง และจะเรียกรายชื่อประเทศ
  2. แต่ถ้าผู้ใช้ป้อน "https://example.com/subdir" ระบบจะแสดงแอปพลิเคชันอื่นที่อยู่ในชื่อโดเมนอื่น (สมมติว่าเป็น https://another_example.com) แต่ URL ยังเหมือนเดิม ผู้ใช้อยู่ใน "https://example.com/subdir" แต่แอปพลิเคชันเป็นคนละอัน และจะเห็น index.html ของแอปพลิเคชันนั้น

การกำหนดค่า nginx สำหรับแอปพลิเคชัน wordpress และ Spring Boot มีดังต่อไปนี้:

เซิร์ฟเวอร์ {
        ฟัง 80;
        server_name example.com www.example.com;
        ส่งคืน 301 https://example.com$request_uri;
}

เซิร์ฟเวอร์ {
        ฟัง 443 ssl;

    server_name example.com www.example.com;

    รูท /root/wordpress_example;
    ดัชนี index.php;

    ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem; # จัดการโดย Certbot
    ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem; # จัดการโดย Certbot

    รวม /etc/letsencrypt/options-ssl-nginx.conf; # จัดการโดย Certbot
    ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # จัดการโดย Certbot

    ตำแหน่ง = /favicon.ico { ปิด log_not_found; access_log off; }
    ตำแหน่ง = /robots.txt { ปิด log_not_found; access_log off; อนุญาตทั้งหมด }
    ตำแหน่ง ~* \.(css|gif|ico|jpeg|jpg|js|png)$ {
            หมดอายุสูงสุด
            ปิด log_not_found;
    }

    ที่ตั้ง / {
            try_files $uri $uri/ /index.php?$args;
    }

    ตำแหน่ง ~ \.php$ {
            รวม fastcgi_params;
            เปิด fastcgi_intercept_errors;
            fastcgi_pass ยูนิกซ์:/var/run/php/php8.0-fpm.sock;
            fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    }

    ตำแหน่ง /subdir/ {
            proxy_pass http://127.0.0.1:8080/;
            ปิด proxy_redirect;
            proxy_buffer_size 128k;
            proxy_buffers 4 256k;
            proxy_busy_buffers_size 256k;
    }
}

และการกำหนดค่า nginx สำหรับแอปพลิเคชันที่ผู้ใช้ถูกเปลี่ยนเส้นทางคือ:

เซิร์ฟเวอร์ {
        ฟัง 80;
        server_name another_example.com www.another_example.com;
        ส่งคืน 301 https://another_example.com$request_uri;
}

เซิร์ฟเวอร์ {
    underscores_in_headers บน;
        ฟัง 443 ssl;

        server_name another_example.com www.another_example.com;

        ssl_certificate /etc/letsencrypt/live/another_example.com/fullchain.pem; # จัดการโดย Certbot
        ssl_certificate_key /etc/letsencrypt/live/another_example.com/privkey.pem; # จัดการโดย Certbot

        รวม /etc/letsencrypt/options-ssl-nginx.conf; # จัดการโดย Certbot
        ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # จัดการโดย Certbot

    error_page 404 /404.html;
    สถานที่ = /404.html {
        รูท /รูท/สาธารณะ/;
        ภายใน;
    }

        ที่ตั้ง / {
                รูท /รูท/สาธารณะ/;
                ดัชนี index.html;
        }

    ตำแหน่ง ~* ^/(?:favicon|apple-touch-icon|android-chrome-|mstile-|safari-pinned-tab.svg|browserconfig.xml|mainfest.json) {
        นามแฝง /root/public/icons/icon-48x48.png;
    }

    สถานที่ ^~ / ภาพ {
        นามแฝง /root/alimentacion;
        try_files $uri $uri/ =404;
    }

    ตำแหน่ง / อันดับ {
                proxy_pass http://จัดอันดับ;
        proxy_http_version 1.1;
        proxy_set_header อัพเกรด $http_upgrade;
        proxy_set_header การเชื่อมต่อ "อัพเกรด";
                proxy_set_header โฮสต์ $host;
        proxy_set_header X-Forwarded-Proto $scheme;
            proxy_set_header X-Forwarded-Port $server_port;
                proxy_buffer_size 128k;
                proxy_buffers 4 256k;
                proxy_busy_buffers_size 256k;
        }
}

เหตุใดจึงเปลี่ยนเส้นทางผู้ใช้ไปที่ another_example.com เมื่อไปที่เส้นทาง "/subdir" โดยตรง

แอปพลิเคชัน Spring Boot ไม่มีสิ่งใดในรูท ในเครื่องเมื่อคุณร้องขอรูทของแอปพลิเคชัน Spring Boot ส่งคืน 404 อาจเป็นปัญหานี้หรือไม่

แก้ไขเอาต์พุต nginx -T:

nginx: ไฟล์การกำหนดค่า /etc/nginx/nginx.conf ไวยากรณ์ใช้ได้
nginx: การทดสอบไฟล์การกำหนดค่า /etc/nginx/nginx.conf สำเร็จ
# ไฟล์กำหนดค่า /etc/nginx/nginx.conf:
ผู้ใช้รูท;
worker_processes อัตโนมัติ
pid /run/nginx.pid;
รวม /etc/nginx/modules-enabled/*.conf;

เหตุการณ์ {
    worker_connections 768;
    # multi_accept บน;
}

http {

    ##
    # การตั้งค่าพื้นฐาน
    ##

    ส่งไฟล์บน;
    tcp_nopush บน;
    tcp_nodelay บน;
    keepalive_timeout 65;
    types_hash_max_size 2048;
    ปิด server_tokens;
    client_max_body_size 180M; # ช่วยให้ไคลเอนต์อัปโหลดไฟล์ขนาด 180 MB

    # server_names_hash_bucket_size 64;
    # server_name_in_redirect ปิด;

    รวม /etc/nginx/mime.types;
    แอปพลิเคชัน default_type/octet-stream;

    ##
    # การตั้งค่า SSL
    ##

    ssl_protocols TLSv1 TLSv1.1 TLSv1.2; # วาง SSLv3 อ้างอิง: พุดเดิ้ล
    เปิด ssl_prefer_server_ciphers;

    ##
    # การตั้งค่าการบันทึก
    ##

    access_log /var/log/nginx/access.log;
    error_log /var/log/nginx/error.log;

    ##
    # การตั้งค่า Gzip
    ##

    เปิด gzip;

    gzip_vary บน;
    gzip_proxyed ใด ๆ ;
    gzip_comp_level 6;
    gzip_buffers 16 8k;
    gzip_http_version 1.1;
    ข้อความ gzip_types/ข้อความล้วน/แอปพลิเคชัน css/แอปพลิเคชัน json/ข้อความจาวาสคริปต์/แอปพลิเคชัน xml/แอปพลิเคชัน xml/xml+rss ข้อความ/จาวาสคริปต์;

    ##
    #ยอดโหลด
    ##
    ต้นน้ำ uv {
        เซิร์ฟเวอร์ localhost:8081;
    }

    การทดสอบต้นน้ำ {
        เซิร์ฟเวอร์ localhost:8087;
    }

    แบ็กเอนด์ต้นน้ำ {
        เซิร์ฟเวอร์ localhost:8085;
    }

    อันดับต้นน้ำ {
        เซิร์ฟเวอร์ localhost:4000;
    }

    ##
    # การกำหนดค่าโฮสต์เสมือน
    ##

    รวม /etc/nginx/conf.d/*.conf;
    รวม /etc/nginx/sites-enabled/*;
}

# ไฟล์กำหนดค่า /etc/nginx/modules-enabled/50-mod-http-geoip.conf:
load_module โมดูล/ngx_http_geoip_module.so;

# ไฟล์กำหนดค่า /etc/nginx/modules-enabled/50-mod-http-image-filter.conf:
load_module โมดูล/ngx_http_image_filter_module.so;

# ไฟล์กำหนดค่า /etc/nginx/modules-enabled/50-mod-http-xslt-filter.conf:
load_module โมดูล/ngx_http_xslt_filter_module.so;

# ไฟล์กำหนดค่า /etc/nginx/modules-enabled/50-mod-mail.conf:
load_module โมดูล/ngx_mail_module.so;

# ไฟล์การกำหนดค่า /etc/nginx/modules-enabled/50-mod-stream.conf:
load_module โมดูล/ngx_stream_module.so;

# ไฟล์กำหนดค่า /etc/nginx/mime.types:

ประเภท {
    ข้อความ/html html htm shtml;
    ข้อความ/css css;
    ข้อความ/xml xml;
    รูปภาพ/gif gif;
    รูปภาพ/jpeg jpeg jpg;
    แอปพลิเคชัน/จาวาสคริปต์ js;
    แอ็พพลิเคชัน/atom+xml อะตอม;
    แอปพลิเคชัน/rss+xml rss;

    ข้อความ/mathml mml;
    ข้อความ/ธรรมดา txt;
    text/vnd.sun.j2me.app-descriptor jad;
    ข้อความ/vnd.wap.wml wml;
    ข้อความ/x-คอมโพเนนต์ htc;

    รูปภาพ/png png;
    รูปภาพ/tiff tif tiff;
    ภาพ/vnd.wap.wbmp wbmp;
    ไอคอนรูปภาพ/x-icon;
    ภาพ/x-jng jng;
    ภาพ/x-ms-bmp bmp;
    ภาพ/svg+xml svg svgz;
    รูปภาพ/เว็บเพจ เว็บเพจ;

    แอปพลิเคชัน/ฟอนต์-woff woff;
    แอปพลิเคชัน / java-archive jar war ear;
    แอปพลิเคชัน/json json;
    แอปพลิเคชัน/mac-binhex40 hqx;
    เอกสารแอปพลิเคชัน/msword;
    ใบสมัคร/pdf pdf;
    ใบสมัคร/postscript ps eps ai;
    แอปพลิเคชัน/rtf rtf;
    แอปพลิเคชัน/vnd.apple.mpegurl m3u8;
    แอปพลิเคชัน/vnd.ms-excel xls;
    application/vnd.ms-fontobject eot;
    แอปพลิเคชัน/vnd.ms-powerpoint ppt;
    แอปพลิเคชัน/vnd.wap.wmlc wmlc;
    application/vnd.google-earth.kml+xml kml;
    แอปพลิเคชัน/vnd.google-earth.kmz kmz;
    แอปพลิเคชัน/x-7z-บีบอัด 7z;
    ใบสมัคร/x-cocoa cco;
    แอปพลิเคชัน/x-java-archive-diff jardiff;
    แอปพลิเคชัน/x-java-jnlp-file jnlp;
    เรียกใช้แอปพลิเคชัน / x-makeself;
    แอปพลิเคชัน/x-perl pl pm;
    แอปพลิเคชัน/x-pilot prc pdb;
    แอปพลิเคชั่น/x-rar-บีบอัด rar;
    แอปพลิเคชั่น / x-redhat-package-manager รอบต่อนาที;
    ใบสมัคร / ทะเล x-sea;
    แอปพลิเคชั่น/x-shockwave-แฟลช swf;
    แอปพลิเคชั่น / นั่ง x-stuffit;
    ใบสมัคร/x-tcl tcl tk;
    ใบสมัคร/x-x509-ca-cert จาก pem crt;
    แอปพลิเคชัน/x-xpinstall xpi;
    แอปพลิเคชัน/xhtml+xml xhtml;
    แอปพลิเคชัน/xspf+xml xspf;
    แอปพลิเคชั่น / ซิปซิป;

    แอปพลิเคชัน / octet-stream bin exe dll;
    แอ็พพลิเคชัน/octet-stream deb;
    แอปพลิเคชัน/octet-stream dmg;
    แอปพลิเคชั่น/octet-stream iso img;
    แอปพลิเคชัน/ออคเต็ตสตรีม msi msp msm;

    แอปพลิเคชัน/vnd.openxmlformats-officedocument.wordprocessingml.document docx;
    แอปพลิเคชัน/vnd.openxmlformats-officedocument.spreadsheetml.sheet xlsx;
    แอปพลิเคชัน/vnd.openxmlformats-officedocument.presentationml.การนำเสนอ pptx;

    เสียง/midi กลาง midi kar;
    เสียง/mpeg mp3;
    เสียง/ogg ogg;
    เสียง/x-m4a m4a;
    เสียง/x-realaudio ra;

    วิดีโอ/3gpp 3gpp 3gp;
    วิดีโอ/mp2t ts;
    วิดีโอ/mp4 mp4;
    วิดีโอ/mpeg mpeg mpg;
    วิดีโอ/quicktime mov;
    วิดีโอ/เว็บเอ็ม เว็บเอ็ม;
    วิดีโอ/x-flv flv;
    วิดีโอ/x-m4v m4v;
    วิดีโอ/x-mng mng;
    วิดีโอ/x-ms-asf asx asf;
    วิดีโอ/x-ms-wmv wmv;
    วิดีโอ/x-msvideo avi;
}

# ไฟล์การกำหนดค่า /etc/letsencrypt/options-ssl-nginx.conf:
# ไฟล์นี้มีพารามิเตอร์ความปลอดภัยที่สำคัญ หากคุณแก้ไขไฟล์นี้
# ด้วยตนเอง Certbot จะไม่สามารถให้ความปลอดภัยในอนาคตได้โดยอัตโนมัติ
# อัปเดต Certbot จะพิมพ์และบันทึกข้อความแสดงข้อผิดพลาดพร้อมพาธไปยังแทน
# ไฟล์ล่าสุดที่คุณจะต้องอ้างถึงเมื่ออัปเดตด้วยตนเอง
#ไฟล์นี้.

ssl_session_cache แชร์:le_nginx_SSL:1m;
ssl_session_timeout 1440m;

ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
เปิด ssl_prefer_server_ciphers;

ssl_ciphers "ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE- RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128- SHA:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256: DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES256-SHA:ECDHE-ECDSA-DES-CBC3-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES- CBC3-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:DES-CBC3-SHA:!DSS";

# ไฟล์การกำหนดค่า /etc/nginx/sites-enabled/example:
เซิร์ฟเวอร์ {
        ฟัง 80;
        server_name example.com www.example.com;
        ส่งคืน 301 https://example.com$request_uri;
}

เซิร์ฟเวอร์ {
        ฟัง 443 ssl;

        server_name example.com www.example.com;

        รูท /root/wordpress_example;
        ดัชนี index.php;

        ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem; # จัดการโดย Certbot
        ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem; # จัดการโดย Certbot

        รวม /etc/letsencrypt/options-ssl-nginx.conf; # จัดการโดย Certbot
        ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # จัดการโดย Certbot

        ตำแหน่ง = /favicon.ico { ปิด log_not_found; access_log off; }
        ตำแหน่ง = /robots.txt { ปิด log_not_found; access_log off; อนุญาตทั้งหมด }
        ตำแหน่ง ~* \.(css|gif|ico|jpeg|jpg|js|png)$ {
                หมดอายุสูงสุด
                ปิด log_not_found;
        }

        ที่ตั้ง / {
                try_files $uri $uri/ /index.php?$args;
        }

        ตำแหน่ง ~ \.php$ {
                รวม fastcgi_params;
                เปิด fastcgi_intercept_errors;
                fastcgi_pass ยูนิกซ์:/var/run/php/php8.0-fpm.sock;
                fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        }

        ตำแหน่ง /subdir/ {
                proxy_pass http://127.0.0.1:8080/;
                ปิด proxy_redirect;
                proxy_buffer_size 128k;
                proxy_buffers 4 256k;
                proxy_busy_buffers_size 256k;
        }

        สถานที่ = / subdir {
                proxy_pass http://127.0.0.1:8080/;
                ปิด proxy_redirect;
                proxy_buffer_size 128k;
                proxy_buffers 4 256k;
                proxy_busy_buffers_size 256k;
        }
}

# ไฟล์กำหนดค่า /etc/nginx/fastcgi_params:

fastcgi_param QUERY_STRING $query_string;
fastcgi_param REQUEST_METHOD $request_method;
fastcgi_param CONTENT_TYPE $content_type;
fastcgi_param CONTENT_LENGTH $content_length;

fastcgi_param SCRIPT_NAME $fastcgi_script_name;
fastcgi_param REQUEST_URI $request_uri;
fastcgi_param DOCUMENT_URI $document_uri;
fastcgi_param DOCUMENT_ROOT $document_root;
fastcgi_param SERVER_PROTOCOL $server_protocol;
fastcgi_param REQUEST_SCHEME โครงการ $;
fastcgi_param HTTPS $https if_not_empty;

fastcgi_param GATEWAY_INTERFACE CGI/1.1;
fastcgi_param SERVER_SOFTWARE nginx/$nginx_version;

fastcgi_param REMOTE_ADDR $remote_addr;
fastcgi_param REMOTE_PORT $remote_port;
fastcgi_param SERVER_ADDR $server_addr;
fastcgi_param SERVER_PORT $server_port;
fastcgi_param SERVER_NAME $server_name;

# PHP เท่านั้น จำเป็นหากสร้าง PHP ด้วย --enable-force-cgi-redirect
fastcgi_param REDIRECT_STATUS 200;

# ไฟล์การกำหนดค่า /etc/nginx/sites-enabled/another_example:
เซิร์ฟเวอร์ {
        ฟัง 80;
        server_name another_example.com www.another_example.com;
        ส่งคืน 301 https://another_example.com$request_uri;
}

เซิร์ฟเวอร์ {
    underscores_in_headers บน;
        ฟัง 443 ssl;

        server_name another_example.com www.another_example.com;

        ssl_certificate /etc/letsencrypt/live/another_example.com/fullchain.pem; # จัดการโดย Certbot
        ssl_certificate_key /etc/letsencrypt/live/another_example.com/privkey.pem; # จัดการโดย Certbot

        รวม /etc/letsencrypt/options-ssl-nginx.conf; # จัดการโดย Certbot
        ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # จัดการโดย Certbot

    error_page 404 /404.html;
    สถานที่ = /404.html {
        รูท /รูท/สาธารณะ/;
        ภายใน;
    }

        ที่ตั้ง / {
                รูท /รูท/สาธารณะ/;
                ดัชนี index.html;
        }

    ตำแหน่ง ~* ^/(?:favicon|apple-touch-icon|android-chrome-|mstile-|safari-pinned-tab.svg|browserconfig.xml|mainfest.json) {
        นามแฝง /root/public/icons/icon-48x48.png;
    }

    สถานที่ ^~ / ภาพ {
        นามแฝง /root/alimentacion;
        try_files $uri $uri/ =404;
    }

    ตำแหน่ง / อันดับ {
                proxy_pass http://จัดอันดับ;
        proxy_http_version 1.1;
        proxy_set_header อัพเกรด $http_upgrade;
        proxy_set_header การเชื่อมต่อ "อัพเกรด";
                proxy_set_header โฮสต์ $host;
        proxy_set_header X-Forwarded-Proto $scheme;
            proxy_set_header X-Forwarded-Port $server_port;
                proxy_buffer_size 128k;
                proxy_buffers 4 256k;
                proxy_busy_buffers_size 256k;
        }
}

แก้ไขด้วยวิธีการแก้ปัญหา:

ด้วยความช่วยเหลือจาก @Tero Kilkanen และการลองผิดลองถูก ฉันพบวิธีแก้ปัญหาแล้ว:

    ตำแหน่ง /subdir/ {
            proxy_pass http://127.0.0.1:8080/;
            ปิด proxy_redirect;
    }

    สถานที่ = / subdir {
            proxy_pass http://127.0.0.1:8080;
            ปิด proxy_redirect;
    }

    สถานที่ = /subdir/ {
            proxy_pass http://127.0.0.1:8080;
            ปิด proxy_redirect;
    }
Score:2
ธง us

ที่ตั้ง /subdir/ จับคู่คำขอโดยที่ URI อยู่ /subdir/.

ในคำขอตัวอย่างของคุณ URI คือ /รอง. เพราะฉะนั้น ที่ตั้ง ไม่ได้ใช้บล็อก

จากนั้นคำขอจะถูกดำเนินการโดย ที่ตั้ง /และจากนั้น index.php ของแอปพลิเคชันนั้นทำอะไรบางอย่าง

เพื่อทำ /รอง หากต้องการไปยังตำแหน่งเดียวกัน คุณต้องเพิ่มอีกแห่ง ที่ตั้ง บล็อก:

สถานที่ = / subdir {
        proxy_pass http://127.0.0.1:8080/;
        ปิด proxy_redirect;
        proxy_buffer_size 128k;
        proxy_buffers 4 256k;
        proxy_busy_buffers_size 256k;
}

เดอะ = แอตทริบิวต์ทำให้เกิดการจับคู่แบบตรงทั้งหมด และประมวลผลก่อนโดย nginx

Nico avatar
br flag
ฉันลองแล้ว แต่ไม่ได้ผล เมื่อฉันไปที่ https://example.com/subdir มันจะเพิ่ม '/' ต่อท้ายโดยอัตโนมัติ ไม่รู้ว่าทำไม
us flag
คุณลองใช้เบราว์เซอร์ที่คุณใช้ก่อนหน้านี้เพื่อทดสอบหรือไม่ ถ้าใช่ เบราว์เซอร์อาจแคช 301 redirect nginx ที่ส่งเมื่อพบไดเร็กทอรีที่มีชื่อเดียวกับ URI โปรดทดสอบด้วย `curl -v`
Nico avatar
br flag
ฉันได้ทดสอบกับ `curl -v` และยังคงเกิดขึ้น มันส่งคืนเนื้อหา index.html ของโดเมน "another_example.com" แทนที่จะใช้พร็อกซีไปที่ `http://127.0.0.1:8080/`
us flag
และคุณรีสตาร์ท nginx ถูกต้องหรือไม่
Nico avatar
br flag
ใช่ ฉันมี โหลดใหม่ก่อนและตอนนี้เมื่อคุณถามว่าฉันรีสตาร์ทและสิ่งเดียวกัน แต่ตอนนี้ (ด้วยเบราว์เซอร์ที่ไม่ระบุตัวตน) '/' เพิ่มเติมไม่ได้ถูกเพิ่มในตอนท้าย แต่ยังคงส่งคืน index.html ของการกำหนดค่าอื่น และยังมี `curl -v`
us flag
โปรดเพิ่มผลลัพธ์ของ `nginx -T` ในคำถามเดิม
Nico avatar
br flag
เสร็จแล้ว ฉันได้แก้ไขคำถามเดิมด้วยผลลัพธ์ของคำสั่ง `nginx -T`
Nico avatar
br flag
ตกลง ฉันได้แก้ไขปัญหาการลบฟันเฟืองในพร็อกซีพาส: `proxy_pass http://127.0.0.1:8080/;` เป็น `proxy_pass http://127.0.0.1:8080;` ด้วยวิธีนี้ ฉันไม่ถูกนำไปที่ เว็บเซิร์ฟเวอร์อื่น แต่ถ้าในเบราว์เซอร์ ฉันใส่ URL ด้วย "/subdir/" ฉันถูกเปลี่ยนเส้นทางไปยังแอปอื่น

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา