ฉันใช้ ruby on rail ในคอนเทนเนอร์นักเทียบท่าที่ใช้งานเว็บไซต์ของฉัน https://redrebelgames.com ที่พอร์ต 3000 ฉันกำลังพยายามตั้งค่า NGINX ให้เปลี่ยนเส้นทาง http:// การรับส่งข้อมูลไปที่ https:// และเปลี่ยนเส้นทางพอร์ต 80 ไปยังพอร์ต 3000 มันใช้งานได้ถ้าคุณไปที่ที่อยู่ IP โดยตรง: 143.244.156.208 มันเปลี่ยนเส้นทางการรับส่งข้อมูลไปยังพอร์ต 80 ด้วยซ้ำ อย่างไรก็ตาม รูปภาพบางรูปไม่โหลดดังที่แสดงด้านล่าง:
และโดเมนเองก็ใช้งานไม่ได้ เกิดอะไรขึ้นกับการกำหนดค่าของฉันใน /etc/nginx/sites-available/default คุณสามารถดูด้านในของไฟล์ด้านล่าง:
##
# คุณควรดู URL ต่อไปนี้เพื่อทำความเข้าใจที่แน่นอน
# ของไฟล์การกำหนดค่า Nginx เพื่อปลดปล่อยพลังของ Nginx ได้อย่างเต็มที่
# https://www.nginx.com/resources/wiki/start/
# https://www.nginx.com/resources/wiki/start/topics/tutorials/config_pitfalls/
# https://wiki.debian.org/Nginx/DirectoryStructure
#
# ในกรณีส่วนใหญ่ ผู้ดูแลระบบจะลบไฟล์นี้ออกจากไซต์ที่เปิดใช้งาน/ และ
# ปล่อยให้เป็นข้อมูลอ้างอิงภายในไซต์ที่มีอยู่ซึ่งจะยังคงอยู่ต่อไป
# อัปเดตโดยทีมบรรจุภัณฑ์ nginx
#
# ไฟล์นี้จะโหลดไฟล์การกำหนดค่าที่ผู้อื่นให้มาโดยอัตโนมัติ
# แอปพลิเคชัน เช่น Drupal หรือ Wordpress แอปพลิเคชันเหล่านี้จะทำขึ้น
# อยู่ภายใต้เส้นทางที่มีชื่อแพ็คเกจนั้น เช่น /drupal8
#
# โปรดดู /usr/share/doc/nginx-doc/examples/ สำหรับตัวอย่างโดยละเอียดเพิ่มเติม
##
# การกำหนดค่าเซิร์ฟเวอร์เริ่มต้น
#
เซิร์ฟเวอร์ {
ฟัง 80 default_server;
ฟัง [::]:80 default_server;
# การกำหนดค่า SSL
#
# ฟัง 443 ssl default_server;
# ฟัง [::]:443 ssl default_server;
#
# หมายเหตุ: คุณควรปิดการใช้งาน gzip สำหรับการรับส่งข้อมูล SSL
# ดู: https://bugs.debian.org/773332
#
# อ่านข้อมูลเพิ่มเติมเกี่ยวกับ ssl_ciphers เพื่อให้แน่ใจว่ามีการกำหนดค่าที่ปลอดภัย
# ดู: https://bugs.debian.org/765782
#
# ใบรับรองที่ลงนามด้วยตนเองที่สร้างขึ้นโดยแพ็คเกจ ssl-cert
# ห้ามใช้ในเซิร์ฟเวอร์ที่ใช้งานจริง!
#
# รวมตัวอย่าง/snakeoil.conf;
# ราก /var/www/html;
# เพิ่ม index.php ในรายการหากคุณใช้ PHP
# ดัชนี index.html index.htm index.nginx-debian.html;
ชื่อเซิร์ฟเวอร์ _;
ที่ตั้ง / {
proxy_pass http://localhost:3000;
# proxy_http_version 1.1;
# proxy_set_header อัพเกรด $http_upgrade;
# proxy_set_header การเชื่อมต่อ 'อัปเกรด';
# proxy_set_header โฮสต์ $host;
# proxy_cache_bypass $http_upgrade;
# ความพยายามครั้งแรกในการให้บริการคำขอเป็นไฟล์ จากนั้น
# เป็นไดเร็กทอรี จากนั้นถอยกลับไปแสดง 404
#try_files $uri $uri/ =403;
}
# ส่งสคริปต์ PHP ไปยังเซิร์ฟเวอร์ FastCGI
#
#location ~ \.php$ {
# รวมตัวอย่าง/fastcgi-php.conf;
#
# # ด้วย php-fpm (หรือซ็อกเก็ตยูนิกซ์อื่น ๆ ):
# fastcgi_pass ยูนิกซ์:/var/run/php/php7.4-fpm.sock;
# # ด้วย php-cgi (หรือซ็อกเก็ต tcp อื่น ๆ ):
# fastcgi_pass 127.0.0.1:9000;
#}
# ปฏิเสธการเข้าถึงไฟล์ .htaccess ถ้ารูทเอกสารของ Apache
# เห็นด้วยกับของ nginx
#
#location ~ /\.ht {
#ปฏิเสธทั้งหมด
#}
}
# การกำหนดค่าโฮสต์เสมือนสำหรับ example.com
#
# คุณสามารถย้ายไปยังไฟล์อื่นภายใต้ไซต์ที่มีจำหน่าย/ และ symlink ที่
# เพื่อเปิดใช้งานไซต์ / เพื่อเปิดใช้งาน
#
#เซิร์ฟเวอร์ {
# ฟัง 80;
# ฟัง [::]:80;
#
# server_name example.com;
#
# ราก /var/www/example.com;
# ดัชนี index.html;
#
# ที่ตั้ง / {
# try_files $uri $uri/ =404;
# }
#}
เซิร์ฟเวอร์ {
# การกำหนดค่า SSL
#
# ฟัง 443 ssl default_server;
# ฟัง [::]:443 ssl default_server;
#
# หมายเหตุ: คุณควรปิดการใช้งาน gzip สำหรับการรับส่งข้อมูล SSL
# ดู: https://bugs.debian.org/773332
#
# อ่านข้อมูลเพิ่มเติมเกี่ยวกับ ssl_ciphers เพื่อให้แน่ใจว่ามีการกำหนดค่าที่ปลอดภัย
# ดู: https://bugs.debian.org/765782
#
# ใบรับรองที่ลงนามด้วยตนเองที่สร้างขึ้นโดยแพ็คเกจ ssl-cert
# ห้ามใช้ในเซิร์ฟเวอร์ที่ใช้งานจริง!
#
# รวมตัวอย่าง/snakeoil.conf;
# ราก /var/www/html;
# เพิ่ม index.php ในรายการหากคุณใช้ PHP
# ดัชนี index.html index.htm index.nginx-debian.html;
server_name redrebelgames.com; # จัดการโดย Certbot
ที่ตั้ง / {
proxy_pass http://localhost:3000;
# proxy_http_version 1.1;
# proxy_set_header อัพเกรด $http_upgrade;
# proxy_set_header การเชื่อมต่อ 'อัปเกรด';
# proxy_set_header โฮสต์ $host;
# proxy_cache_bypass $http_upgrade;
# ความพยายามครั้งแรกในการให้บริการคำขอเป็นไฟล์ จากนั้น
# เป็นไดเร็กทอรี จากนั้นถอยกลับไปแสดง 404
#try_files $uri $uri/ =404;
}
# ส่งสคริปต์ PHP ไปยังเซิร์ฟเวอร์ FastCGI
#
#location ~ \.php$ {
# รวมตัวอย่าง/fastcgi-php.conf;
#
# # ด้วย php-fpm (หรือซ็อกเก็ตยูนิกซ์อื่น ๆ ):
# fastcgi_pass ยูนิกซ์:/var/run/php/php7.4-fpm.sock;
# # ด้วย php-cgi (หรือซ็อกเก็ต tcp อื่น ๆ ):
# fastcgi_pass 127.0.0.1:9000;
#}
# ปฏิเสธการเข้าถึงไฟล์ .htaccess ถ้ารูทเอกสารของ Apache
# เห็นด้วยกับของ nginx
#
#location ~ /\.ht {
#ปฏิเสธทั้งหมด
#}
ฟัง [::]:443 ssl ipv6only=เปิด; # จัดการโดย Certbot
ฟัง 443 ssl; # จัดการโดย Certbot
ssl_certificate /etc/letsencrypt/live/redrebelgames.com/fullchain.pem; # จัดการโดย Certbot
ssl_certificate_key /etc/letsencrypt/live/redrebelgames.com/privkey.pem; # จัดการโดย Certbot
รวม /etc/letsencrypt/options-ssl-nginx.conf; # จัดการโดย Certbot
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # จัดการโดย Certbot
}
เซิร์ฟเวอร์ {
ถ้า ($host = redrebelgames.com) {
ส่งคืน 301 https://$host$request_uri;
} # จัดการโดย Certbot
ฟัง 80 ;
ฟัง [::]:80 ;
server_name redrebelgames.com;
กลับ 404; # จัดการโดย Certbot
}