Score:0

เซิร์ฟเวอร์ Nginx บล็อกไม่ให้เปลี่ยนเส้นทาง

ธง id

ฉันกำลังทำงานในโครงการที่ https://modernamedia.no/ และฉันกำลังพยายามทำหลายสิ่งหลายอย่าง

  • เปลี่ยนเส้นทางการโทรทั้งหมดไปที่ www. modernamedia.no ถึง https://modernamedia.no/
  • proxypass localhost:5000 ไปยัง api.modernamedia.no
  • เปลี่ยนเส้นทางการเรียก http ทั้งหมดไปที่ https

อันสุดท้ายกำลังทำงานอยู่ อย่างไรก็ตาม สองอันแรกไม่ทำงาน คุณสามารถทดสอบได้ด้วยตัวเองโดยไปที่ https://www.modernamedia.no/

ฉันยังประสบปัญหาในการเข้าถึง localhost ผ่านการเรียก API แต่นั่นอาจเป็นปัญหาเกี่ยวกับโค้ด

https://stackoverflow.com/questions/71374284/angular-api-request-to-net-5-api-neterr-connection-refuse

คอนเฟิร์ม

เซิร์ฟเวอร์ {
    ถ้า ($host = www.modernamedia.no) {
        ส่งคืน 301 https://modernamedia.no$request_uri;
    } # จัดการโดย Certbot

    ถ้า ($host = modernamedia.no) {
        ส่งคืน 301 https://$host$request_uri;
    } # จัดการโดย Certbot

    # เปลี่ยนเส้นทางไปยังสถานที่ที่ถูกต้องหากจำเป็น
    ตั้ง $https_redirect 0;
    ถ้า ($server_port = 80) { ตั้ง $https_redirect 1; }
    ถ้า ($host ~ '^www\.') { ตั้ง $https_redirect 1; }
    ถ้า ($https_redirect = 1) {
        ส่งคืน 301 https://modernamedia.no$request_uri;
    }

    ฟัง 80;
    server_name modernamedia.no;
    กลับ 404; # จัดการโดย Certbot
}


เซิร์ฟเวอร์ {
    ฟัง [::]:443 ssl http2 ipv6only=on;
    ฟัง 443 ssl http2; # จัดการโดย Certbot
    server_name modernamedia.no;
    ที่ตั้ง / {
        proxy_pass http://localhost:4000;
        proxy_http_version 1.1;
        proxy_set_header อัพเกรด $http_upgrade;
        proxy_set_header การเชื่อมต่อ 'อัปเกรด';
        proxy_set_header โฮสต์ $host;
        proxy_cache_bypass $http_upgrade;
    }
    ssl_certificate /etc/letsencrypt/live/modernamedia.no/fullchain.pem; # จัดการโดย Certbot
    ssl_certificate_key /etc/letsencrypt/live/modernamedia.no/privkey.pem; # จัดการโดย Certbot
    รวม /etc/letsencrypt/options-ssl-nginx.conf; # จัดการโดย Certbot
    # ssl_ciphers EECDH+CHACHA20:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES:RSA+3DES:!MD5;
    ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # จัดการโดย Certbot
}


เซิร์ฟเวอร์ {
    ฟัง 80;
    server_name www.modernamedia.no;

    ส่งคืน 301 https://modernamedia.no$request_uri;
}

เซิร์ฟเวอร์ {
    ฟัง 81;
    server_name api. modernamedia.no;
    รูท /var/www/ModernaMedia/DotNet;
    ที่ตั้ง / {
        proxy_pass http://localhost:5000;
        proxy_http_version 1.1;
        proxy_set_header อัพเกรด $http_upgrade;
        proxy_set_header การเชื่อมต่อคงอยู่;
        proxy_set_header โฮสต์ $host;
        proxy_cache_bypass $http_upgrade;
        proxy_set_header X-ส่งต่อ-สำหรับ $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}


ไซต์พร้อมใช้งาน/ค่าเริ่มต้น

เซิร์ฟเวอร์ {
    ฟัง 81;
    server_name api. modernamedia.no;
    รูท /var/www/ModernaMedia/DotNet;
    ที่ตั้ง / {
        proxy_pass http://localhost:5000;
        proxy_http_version 1.1;
        proxy_set_header อัพเกรด $http_upgrade;
        proxy_set_header การเชื่อมต่อคงอยู่;
        proxy_set_header โฮสต์ $host;
        proxy_cache_bypass $http_upgrade;
        proxy_set_header X-ส่งต่อ-สำหรับ $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}

modernamedia.service

[หน่วย]
Description=บริการ ModernMedia Net5
[บริการ]
WorkingDirectory=/var/www/ModernaMedia/DotNet
ExecStart=/usr/bin/dotnet /var/www/ModernaMedia/DotNet/ModernaMediaDotNet.dll
เริ่มใหม่ = เสมอ
# เริ่มบริการใหม่หลังจาก 10 วินาทีหากบริการ dotnet ขัดข้อง:
รีสตาร์ทวินาที=10
KillSignal=SIGINT
SyslogIdentifier=ModernaMedia-ดอทเน็ต
ผู้ใช้ = www-ข้อมูล
สิ่งแวดล้อม=ASPNETCORE_ENVIRONMENT=การผลิต
สภาพแวดล้อม=DOTNET_PRINT_TELEMETRY_MESSAGE=เท็จ
[ติดตั้ง]
WantedBy=multi-user.target

และฉันสามารถเข้าถึงเซิร์ฟเวอร์. NET ผ่าน curl

Score:1
ธง us

คุณควรตรวจสอบให้แน่ใจว่า Certbot ไม่แตะต้องไฟล์การกำหนดค่า nginx ของคุณ มันใช้วิธีการที่มีปัญหาและเปราะบางในการกำหนดค่าสิ่งต่างๆ

ใช้วิธีการต่อไปนี้แทน:

# เปลี่ยนเส้นทางคำขอ HTTP เป็น HTTPS
เซิร์ฟเวอร์ {
    ฟัง 80;
    server_name modernamedia.no www. modernamedia.no;

    # อนุญาตการให้บริการ Letsencrypt HTTP auth challenge

    ที่ตั้ง /.well-known {
        try_files $uri $uri/ =404;
    }

    # เปลี่ยนเส้นทางไปที่ https
    ที่ตั้ง / {
        ส่งคืน 301 https://modernamedia.no$request_uri;
    }
}

# เปลี่ยนเส้นทาง https://www.modernamedia.no ไปที่ https://modernamedia.no
เซิร์ฟเวอร์ {
    ฟัง 443 ssl http2;
    server_name www.modernamedia.no;

    ssl_certificate /path/to/ssl_cert;
    ssl_certificate_key /path/to/ssl_key;

    ส่งคืน 301 https://modernamedia.no$request_uri;
}

#https://modernamedia.no
เซิร์ฟเวอร์ {
    ฟัง 443 ssl http2;
    server_name modernamedia.no;

    ssl_certificate /path/to/ssl_cert;
    ssl_certificate_key /path/to/ssl_key;

    # การกำหนดค่าเว็บไซต์จริงที่นี่
}
Stanley avatar
id flag
ขอขอบคุณ! ฉันไม่รู้ว่าปัญหาคืออะไร แต่การกำหนดค่าของคุณใช้งานได้แน่นอน!
Stanley avatar
id flag
api.modernamedia.no ยังคงไม่ทำงานสำหรับการเปลี่ยนเส้นทางแบ็กเอนด์ .net
us flag
โปรดเปิดคำถามใหม่ในแอปพลิเคชัน dot.net พร้อมคำอธิบายที่ชัดเจนว่า "ไม่ทำงาน" หมายถึงอะไร

โพสต์คำตอบ

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