Score:0

Nginx www ไม่ทำงาน

ธง pt

ฉันไม่รู้จริง ๆ ว่าเหตุใดการกำหนดค่า nginx ของฉันจึงใช้ไม่ได้กับ www.

การกำหนดค่าของฉันคือ:

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

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

    server_name postimg.cz;

    # การกำหนดค่า SSL
    ssl_certificate /etc/letsencrypt/live/postimg.cz/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/postimg.cz/privkey.pem;
    ssl_session_cache ที่ใช้ร่วมกัน: SSL:10m;
    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_ciphers "ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GC>
    เปิด ssl_prefer_server_ciphers;

    # ดู https://hstspreload.org/ ก่อนที่จะยกเลิกการแสดงความคิดเห็นบรรทัดด้านล่าง
    # add_header การขนส่งที่เข้มงวด - ความปลอดภัย "อายุสูงสุด = 15768000; โหลดล่วงหน้า;";
    add_header X-Content-Type-Options nosniff;
    add_header X-XSS-การป้องกัน "1; mode=block";
    add_header X-Robots-Tag ไม่มี;
    add_header เนื้อหา-ความปลอดภัย-นโยบาย "เฟรมบรรพบุรุษ 'ตัวเอง'";
    add_header X-Frame-ตัวเลือกปฏิเสธ;
    add_header ผู้อ้างอิง-นโยบายต้นทางเดียวกัน

    รูท /var/www/postimg.cz;

    # ปิดการเข้าถึงไฟล์แอปพลิเคชันที่ละเอียดอ่อน
    ตำแหน่ง ~* (แอป|เนื้อหา|lib)/.*\.(po|php|lock|sql)$ {
        กลับ 404;
    }
    ตำแหน่ง ~* ผู้แต่ง\.json|ผู้แต่ง\.lock|.gitignore$ {
        กลับ 404;
    }
    ตำแหน่ง ~* /\.ht {
        กลับ 404;
    }

    # ไม่พบภาพแทนที่
    ตำแหน่ง ~* \.(jpe?g|png|gif|webp)$ {
        ปิด log_not_found;
        error_page 404 /content/images/system/default/404.gif;
    }

    # ส่วนหัว CORS (หลีกเลี่ยงปัญหาการแสดงผลแบบอักษร)
    ตำแหน่ง ~* \.(ttf|ttc|otf|eot|woff|woff2|font.css|css|js)$ {
        add_header Access-Control-Allow-Origin "*";
    }

    # ตัวควบคุมด้านหน้า PHP
    ที่ตั้ง / {
        ดัชนี index.php;
        try_files $uri $uri/ /index.php$is_args$query_string;
    }

    # จุดเข้าใช้งาน PHP จุดเดียว (ปิดการเข้าถึงไฟล์ .php โดยตรง)
    ตำแหน่ง ~* \.php$ {
        ภายใน;
        รวมตัวอย่าง/fastcgi-php.conf;
        fastcgi_pass ยูนิกซ์:/var/run/php/php7.4-fpm.sock;
    }
}

แต่เมื่อฉันไปที่ http://www.postimg.cz มันจะไม่เปลี่ยนเส้นทางไปที่ https://postimg.cz ทำไมถึงเป็นเช่นนั้น? คุณช่วยฉันด้วยได้ไหม

เซิร์ฟเวอร์: เซิร์ฟเวอร์ Ubuntu 20.04

แก้ไข // ลองสิ่งนี้ไม่ทำงานเช่นกัน:

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

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

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

    server_name postimg.cz;
tilleyc avatar
us flag
คุณได้ลองแก้ไข `return 301 https://$server_name$request_uri;` เป็น `return 301 https://postimg.cz$request_uri;` หรือไม่ ดูเหมือนว่าการเปลี่ยนเส้นทางจะใช้ชื่อเซิร์ฟเวอร์ใดก็ตามที่ได้รับ แต่คุณไม่มีเซิร์ฟเวอร์ https ที่มีชื่อเดียวกัน
Bazim avatar
pt flag
ขอขอบคุณ. ฉันคิดถึงมันโดยสิ้นเชิง ไม่ใช่เพราะสิ่งนั้น แต่สิ่งนี้จะช่วยได้เช่นกัน ฉันเดา
Score:0
ธง pt

ปัญหาอยู่ในผู้ให้บริการโฮสต์โดเมน เพราะฉันลืมระบุ www กับ IP เซิร์ฟเวอร์ของฉัน ฉันตั้งค่า DNS โดยไม่มี www ฉันแค่โง่

djdomi avatar
za flag
เตือนให้ยอมรับคำตอบ ขอบคุณ.

โพสต์คำตอบ

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