Score:0

Nginx ไม่ฟังที่อยู่ในท้องถิ่น

ธง pk

เมื่อฉันไปที่ localhost บนพีซี ฉันสามารถเชื่อมต่อได้ แต่เมื่อฉันไปที่ ip สาธารณะของเราเตอร์บนพีซีโฮสต์ หน้าเว็บนั้นหมดเวลา มันใช้งานได้บนโทรศัพท์ของฉันและฉันสามารถดูเว็บไซต์ได้

นี่คือการกำหนดค่า nginx ของฉัน: (ฉันได้แทนที่ที่อยู่ฟังด้วย ***):

เซิร์ฟเวอร์ {
                ฟัง 80;
                ชื่อเซิร์ฟเวอร์ ***;
                ดัชนี index.html index.php;

                access_log /var/log/nginx/localhost.access_log หลัก;
                error_log /var/log/nginx/localhost.error_log ข้อมูล;

                รูท /var/www/localhost/htdocs;
                ตำแหน่ง ~ \.php$ {
                        try_files $uri =404;
                        fastcgi_pass ยูนิกซ์:/var/run/php-fpm/php-fpm.sock;
                        fastcgi_index index.php;
                        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
                        รวม fastcgi_params;
                }

                ฟัง 443 ssl; # จัดการโดย Certbot
                ssl_certificate /etc/letsencrypt/live/***/fullchain.pem; # จัดการโดย Certbot
                ssl_certificate_key /etc/letsencrypt/live/***/privkey.pem; # จัดการโดย Certbot
                รวม /etc/letsencrypt/options-ssl-nginx.conf; # จัดการโดย Certbot
                ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # จัดการโดย Certbot
                ถ้า ($scheme != "https") {
                    ส่งคืน 301 https://$host$request_uri;
                } # จัดการโดย Certbot
                #กลับ 404; # จัดการโดย Certbot
}
br flag
คุณกำหนดค่าเราเตอร์ของคุณถูกต้องหรือไม่?
RadoslavL avatar
pk flag
ใช่ ฉันได้ตั้งค่าการส่งต่อพอร์ตแล้วและมันทำงานได้อย่างถูกต้อง แต่ฉันไม่สามารถเข้าถึงเซิร์ฟเวอร์ของฉันบนเครื่องโฮสต์ของฉันโดยใช้ IP สาธารณะ การเชื่อมต่อ Localhost ใช้งานได้เช่นเดียวกับการเชื่อมต่อจากอุปกรณ์อื่น
br flag
สิ่งนี้ตอบคำถามของคุณหรือไม่ [ย้อนกลับไปยังที่อยู่ IP สาธารณะที่ส่งต่อจากเครือข่ายท้องถิ่น - Hairpin NAT](https://serverfault.com/questions/55611/loopback-to-forwarded-public-ip-address-from-local-network-hairpin-nat)
Score:0
ธง in

มีข้อมูลบางอย่างขาดหายไปเพื่อให้แน่ใจว่าอะไรจะช่วยแก้ปัญหาให้คุณได้

ฉันเดาว่าคุณต้องตั้งค่า "เซิร์ฟเวอร์เริ่มต้น" เพื่อรับบางสิ่งจาก localhost ตัวเลือกชื่อเซิร์ฟเวอร์บอกให้ nginx ฟังคำขอที่ส่งไปยังชื่อ IP ที่กำหนดค่าไว้เท่านั้น โดยปกติแล้ว localhost จะไม่สามารถเข้าถึงได้โดยชื่อเซิร์ฟเวอร์

ฟัง 80 default_server;

จากคู่มือ nginx (http://nginx.org/en/docs/http/request_processing.html):

ในการกำหนดค่านี้ nginx จะทดสอบเฉพาะฟิลด์ส่วนหัวของคำขอเท่านั้น âHostâ เพื่อกำหนดว่าเซิร์ฟเวอร์ใดควรส่งคำขอไปยังเซิร์ฟเวอร์ใด ถ้า ค่าของมันไม่ตรงกับชื่อเซิร์ฟเวอร์ใดๆ หรือคำขอไม่ตรงกัน บรรจุฟิลด์ส่วนหัวนี้เลย จากนั้น nginx จะกำหนดเส้นทางคำขอไปที่ เซิร์ฟเวอร์เริ่มต้นสำหรับพอร์ตนี้

RadoslavL avatar
pk flag
โซลูชันที่คุณระบุควรใช้งานได้ แต่แม้ว่าฉันจะเชื่อมต่อกับเพจโดยใช้ชื่อโฮสต์จาก server_name มันก็ไม่ทำงาน ฉันสามารถให้ข้อมูลเพิ่มเติม

โพสต์คำตอบ

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