Score:1

Nginx เปลี่ยนเส้นทางมากเกินไปเมื่อพยายามเปลี่ยนเส้นทางที่ไม่ใช่ www ไปยัง www

ธง cn

ฉันมีการกำหนดค่า nginx นี้

ต้นน้ำ puma_example.it {
  ยูนิกซ์เซิร์ฟเวอร์:/home/deploy/apps/example.it/shared/tmp/sockets/example.it-puma.sock fail_timeout=0;
}
เซิร์ฟเวอร์ {
  ฟัง 80;
  ฟัง [::]:80;
  server_name example.it www.example.it;
  ส่งคืน 301 https://www.example.it$request_uri;
}

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


เซิร์ฟเวอร์ {
  ฟัง 443 ssl http2;
  ฟัง [::]:443 ssl http2;
  ssl_certificate /etc/letsencrypt/live/example.it/fullchain.pem;
  ssl_certificate_key /etc/letsencrypt/live/example.it/privkey.pem;
  server_name www.example.it ตัวอย่างมัน;
  รูท /home/deploy/apps/example.it/current/public;
  try_files $uri/index.html $uri @puma_example.it;
  ส่งคืน 301 https://www.example.com$request_uri; 

  client_max_body_size 4G;
  keepalive_timeout 10;

  error_page 500 502 504 /500.html;
  error_page 503 @503;

  ตำแหน่ง @puma_example.it {
    proxy_set_header X-ส่งต่อ-สำหรับ $proxy_add_x_forwarded_for;
    proxy_set_header โฮสต์ $host;
    ปิด proxy_redirect;
    proxy_set_header อัพเกรด $http_upgrade;
    proxy_set_header การเชื่อมต่อ "อัปเกรด";
    ssi บน;
    proxy_set_header X-ส่งต่อโปรโต https;
    proxy_pass http://puma_example.it;
    # limit_req โซน = หนึ่ง;
    access_log /home/deploy/apps/example.it/shared/log/nginx.access.log;
    error_log /home/deploy/apps/example.it/shared/log/nginx.error.log;
  }

  สถานที่ ^~ /images/ {
    หมดอายุสูงสุด
    add_header แคชควบคุมสาธารณะ;
  }

  ตำแหน่ง ~ ^/(สินทรัพย์|แพ็ค)/ {
    เปิด gzip_static;
    brotli_static บน;
    หมดอายุสูงสุด
    add_header แคชควบคุมสาธารณะ;
  }

  ตำแหน่ง = /50x.html {
    รูท html;
  }

  ที่ตั้ง @503 {
    error_page 405 = /system/maintenance.html;
    ถ้า (-f $document_root/system/maintenance.html) {
      เขียนใหม่ ^(.*)$ /system/maintenance.html break;
    }
    เขียนใหม่ ^(.*)$ /503.html break;
  }

  ถ้า ($request_method !~ ^(GET|HEAD|PUT|PATCH|POST|DELETE|OPTIONS)$ ){
    กลับ 405;
  }

  ถ้า (-f $document_root/system/maintenance.html) {
    กลับ 503;
  }
}

ฉันกำลังพยายามเปลี่ยนเส้นทางที่ไม่ใช่ www ไปยัง www และเปลี่ยนเส้นทางบล็อกโดเมนของบุคคลที่สามไปยัง URL เฉพาะ แต่ฉันคิดว่าการเพิ่ม

ส่งคืน 301 https://www.example.com$request_uri;

ในตำแหน่งนั้นทำให้เกิดการวนรอบการเปลี่ยนเส้นทาง ฉันต้องวางไว้ที่ไหน? มีอะไรผิดปกติในการกำหนดค่านี้

ฉันพยายามแยกบล็อกด้วย

ต้นน้ำ puma_example.it {
  ยูนิกซ์เซิร์ฟเวอร์:/home/deploy/apps/example.it/shared/tmp/sockets/example.it-puma.sock fail_timeout=0;
}

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

เซิร์ฟเวอร์ {
  ฟัง 443 ssl http2;
  ฟัง [::]:443 ssl http2;
  ssl_certificate /etc/letsencrypt/live/example.it/fullchain.pem;
  ssl_certificate_key /etc/letsencrypt/live/example.it/privkey.pem;
  server_name example.it;
  ส่งคืน 301 https://www.example.it$request_uri;
}

เซิร์ฟเวอร์ {
  ฟัง 443 ssl http2;
  ฟัง [::]:443 ssl http2;
  ssl_certificate /etc/letsencrypt/live/example.it/fullchain.pem;
  ssl_certificate_key /etc/letsencrypt/live/example.it/privkey.pem;
  server_name hinnovation.example.it;
  ส่งคืน 301 https://www.example.it/speciale/innovation$request_uri;
}


เซิร์ฟเวอร์ {
  ฟัง 443 ssl http2;
  ฟัง [::]:443 ssl http2;
  ssl_certificate /etc/letsencrypt/live/example.it/fullchain.pem;
  ssl_certificate_key /etc/letsencrypt/live/example.it/privkey.pem;
  server_name www.example.it;
  รูท /home/deploy/apps/example.it/current/public;
  try_files $uri/index.html $uri @puma_example.it;

  client_max_body_size 4G;
  keepalive_timeout 10;

  error_page 500 502 504 /500.html;
  error_page 503 @503;

  ตำแหน่ง @puma_example.it {
    proxy_set_header X-ส่งต่อ-สำหรับ $proxy_add_x_forwarded_for;
    proxy_set_header โฮสต์ $host;
    ปิด proxy_redirect;
    proxy_set_header อัพเกรด $http_upgrade;
    proxy_set_header การเชื่อมต่อ "อัปเกรด";
    ssi บน;
    proxy_set_header X-ส่งต่อโปรโต https;
    proxy_pass http://puma_example.it;
    # limit_req โซน = หนึ่ง;
    access_log /home/deploy/apps/example.it/shared/log/nginx.access.log;
    error_log /home/deploy/apps/example.it/shared/log/nginx.error.log;
  }

  สถานที่ ^~ /images/ {
    หมดอายุสูงสุด
    add_header แคชควบคุมสาธารณะ;
  }

  ตำแหน่ง ~ ^/(สินทรัพย์|แพ็ค)/ {
    เปิด gzip_static;
    brotli_static บน;
    หมดอายุสูงสุด
    add_header แคชควบคุมสาธารณะ;
  }

  ตำแหน่ง = /50x.html {
    รูท html;
  }

  ที่ตั้ง @503 {
    error_page 405 = /system/maintenance.html;
    ถ้า (-f $document_root/system/maintenance.html) {
      เขียนใหม่ ^(.*)$ /system/maintenance.html break;
    }
    เขียนใหม่ ^(.*)$ /503.html break;
  }

  ถ้า ($request_method !~ ^(GET|HEAD|PUT|PATCH|POST|DELETE|OPTIONS)$ ){
    กลับ 405;
  }

  ถ้า (-f $document_root/system/maintenance.html) {
    กลับ 503;
  }
}
Score:1
ธง us

คุณต้องมีแยกต่างหาก เซิร์ฟเวอร์ บล็อกสำหรับคุณ www และไม่ใช่www โดเมน

เซิร์ฟเวอร์ {
    ฟัง 443 ssl http2;
    ฟัง [::]:443 ssl http2;
    ssl_certificate ...
    ssl_certificate_key ...
    server_name example.it;

    ส่งคืน 301 https://www.example.com$request_uri;
}

เซิร์ฟเวอร์ {
    ฟัง 443 ssl http2;
    ฟัง [::]:443 ssl http2;
    ssl_certificate ...
    ssl_certificate_key ...
    server_name www.example.it;

    ... ส่วนที่เหลือของการกำหนดค่า ...
}
cn flag
ฉันแก้ไข แต่มันใช้งานไม่ได้ การเปลี่ยนเส้นทางของบุคคลที่สามใช้งานได้ www ถึง www ไม่ทำงาน
us flag
ขออภัย คุณเขียนด้านบนว่า "ใช้งานได้" ทั้งคู่ ประเด็นคืออะไร?
cn flag
อา ขอโทษ ไม่ใช่ www ถึง www ใช้งานไม่ได้
us flag
โปรดเพิ่มผลลัพธ์ของ `curl -v ` กับคำถามเดิม โดยที่ `` คือ HTTP URL ที่คุณลอง ด้วยวิธีนี้เราจะเห็นว่าเกิดอะไรขึ้นกันแน่
cn flag
เว็บไซต์คือ https://dday.it

โพสต์คำตอบ

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