คำถามติดแท็ก nginx

Nginx ("eNgine x") เป็นเซิร์ฟเวอร์ HTTP น้ำหนักเบาประสิทธิภาพสูงพร็อกซีย้อนกลับพร็อกซีสตรีมพร็อกซี TCP และพร็อกซีเมลซึ่งวางจำหน่ายภายใต้สิทธิ์ใช้งาน BSD

1
nginx: การเชื่อมต่อ () ล้มเหลว (111: การเชื่อมต่อถูกปฏิเสธ) ในขณะที่เชื่อมต่อกับอัปสตรีม
ฉันเห็นข้อความแสดงข้อผิดพลาดด้านล่างนี้ในบันทึกข้อผิดพลาดฉันสามารถเข้าถึงทรัพยากรทั้งหมด แต่ฉันไม่แน่ใจว่าทำไมข้อผิดพลาดคือการตั้งค่าสถานะ ข้อผิดพลาด: [ข้อผิดพลาด] 13368 # 0: * 449 การเชื่อมต่อ () ล้มเหลว (111: การเชื่อมต่อถูกปฏิเสธ) ในขณะที่เชื่อมต่อกับอัปสตรีมไคลเอนต์: xxxx, เซิร์ฟเวอร์: myserver.com คำขอ: "GET / Stories / mine HTTP / 1.1", upstream: " http: // [:: 1]: 5000 / เรื่อง / ของฉัน ", โฮสต์:" myserver.com " การกำหนดค่า Nginx ของฉัน ฉันกำลังเชื่อมต่อผ่านไปยังnode.jsคลัสเตอร์ที่ทำงานบนพอร์ต 5000 ไม่เห็นสิ่งที่ฉันจะพลาดหรือไม่ upstream api …
16 nginx  node.js 

3
จะอัพเดทรายชื่อเซิร์ฟเวอร์ upstream ของ nginx โดยอัตโนมัติอย่างไรเมื่อ aws ec2 hostname เปลี่ยนแปลงหรือเพิ่มขึ้น?
ฉันต้องการตั้งค่าการรับสัญญาณอัตโนมัติใน AWS ฉันไม่ต้องการใช้ Elastic Load Balancer การเข้าระบบอัตโนมัติใน Amazon สร้างอินสแตนซ์ EC2 อย่างต่อเนื่องระหว่างความต้องการเพิ่มขึ้นเพื่อรักษาประสิทธิภาพและลดลงโดยอัตโนมัติในระหว่างการขับกล่อมความต้องการเพื่อลดต้นทุน เนื่องจากอินสแตนซ์ EC2 นี้ถูกสร้างขึ้นโดยอัตโนมัติชื่อโฮสต์ของพวกเขาจึงไม่รู้จัก NGINX ฉันรู้และมีการตั้งค่าอัปสตรีมในอินสแตนซ์ nginx ถึง 10 EC2 แล้ว ฉันต้องการที่จะเพิ่ม / อัปเดต / ลบชื่อเซิร์ฟเวอร์โดยอัตโนมัติไปยังการกำหนดค่า nginx ของฉันเมื่อการเพิ่ม / ปรับปรุง / ลบอินสแตนซ์ EC2 ของการปรับอัตโนมัติ

3
ใช้การตรวจสอบสิทธิ์ SAML ภายใน nginx
ฉันต้องการ จำกัด การเข้าถึงเนื้อหาสแตติกให้บริการโดยใช้ nginx โดยใช้ SAML 2.0 IdP ที่มีอยู่ (ใน Apache สิ่งนี้จะทำกับโมดูลเช่นmod_mellonหรือmod_auth_saml) วิธีที่ดีที่สุดในการใช้การตรวจสอบสิทธิ์ SAML สำหรับเนื้อหาคงที่ใน nginx คืออะไร? หากยังคงใช้ส่วนหัว X-Accelอยู่จะมีสคริปต์ตัวช่วยออกจากพร็อกซีจากการตรวจสอบสิทธิ์ SAML หรือไม่หรือฉันต้องเริ่มต้นจากศูนย์

2
“ ซ่อน” นามสกุลไฟล์. html โดยใช้การเขียนซ้ำ nginx
ฉันให้บริการเว็บไซต์คงที่ผ่าน nginx และเป้าหมายของฉันคือการแทนที่ URL ที่มีลักษณะดังนี้: http://foo.com/bar.html กับ http://foo.com/bar กุญแจไม่มีการทับ ขณะนี้ฉันกำลังทำสิ่งที่คล้ายกันโดยใช้ชื่อแทนสถานที่ แต่สิ่งนี้น่าเบื่อเพราะต้องใช้บล็อกตำแหน่งสำหรับทุกไฟล์และมันยังผนวกเครื่องหมายทับต่อท้ายเนื่องจาก nginx ดูชื่อแทนว่าเป็นไดเรกทอรี: location / { root /srv/www/foo/public_html; index index.html; } location /bar1 { alias /srv/www/foo/public_html/; index bar1.html; } location /bar2 { alias /srv/www/foo/public_html/; index bar2.html; } และอื่น ๆ ฉันอ่านเอกสารเกี่ยวกับการเขียนซ้ำและฉันไม่สามารถสังเคราะห์สิ่งที่พูดในสิ่งที่ฉันต้องการได้ ฉันไม่ได้เข้ามาจากเบื้องหลังของ Apache nginx เป็นการโจมตีเว็บเซิร์ฟเวอร์ครั้งแรกของฉันดังนั้นฉันแน่ใจว่าฉันขาดอะไรบางอย่างที่ชัดเจนเนื่องจากพื้นหลัง HTTP ของฉันอ่อนแอ ขอบคุณล่วงหน้าสำหรับความช่วยเหลือที่คุณสามารถให้ได้
16 nginx  rewrite 

4
ฉันจะกำหนดค่าเซิร์ฟเวอร์ HTTP Nginx proxy_pass Node.js ผ่านซ็อกเก็ต UNIX ได้อย่างไร
ฉันกำลังพยายามกำหนดค่าเซิร์ฟเวอร์ Nginx เพื่อเชื่อมต่อกับเซิร์ฟเวอร์ Node.js HTTP ผ่านซ็อกเก็ตโดเมน UNIX ไฟล์การกำหนดค่า Nginx: server { listen 80; location / { proxy_pass http://unix:/tmp/app.socket:/; } } (ตามhttp://wiki.nginx.org/HttpProxyModule#proxy_pass ) สคริปต์ Node.js: var http = require('http'); http.createServer(function(req, res) { console.log('received request'); req.end('received request\n'); }).listen('/tmp/app.socket'); ตอนนี้เมื่อฉันพยายามโทร curl http://localhost/ ฉันได้รับหน้าข้อผิดพลาด 502 Bad Gateway เป็นแบบม้วนเท่านั้นและไม่มีสิ่งใดในกระบวนการ Node.js ฉันกำลังทำอะไรผิดหรือเปล่า? แก้ไข: หลังจากลองวิธีแก้ปัญหาของ quanta ความผิดพลาดจะต้องเกี่ยวข้องกับการกำหนดค่า …

3
พร็อกซี nginx ลองอีกครั้งขณะที่แบ็กเอนด์กำลังเริ่มต้นใหม่
Nginx ส่งคืน 502 ขณะที่แบ็คเอนด์กำลังเริ่มต้นใหม่ ฉันจะทำให้พร็อกซี nginx ลองอีกครั้ง N ครั้งด้วยการหน่วงเวลา M วินาทีได้อย่างไร มีปลั๊กอินหรืออย่างอื่นหรือไม่?
16 nginx  proxy 

2
nginx เขียนใหม่สำหรับ URL ที่มีพารามิเตอร์
ฉันมี URL ประเภทนี้: http://www.example.com/?param1=val1&param2=&param3=val3&param4=val4&param5=val5 และฉันต้องการเปลี่ยนเส้นทางไปยังอันนี้: http://www.example.com/newparam/val3/val4 ดังนั้นฉันได้ลองกฎการเขียนใหม่นี้โดยไม่ประสบความสำเร็จ: rewrite "/?param1=val1&param2=&param3=(.+)&param4=(.+)&param5=(.+)" http://www.example.com/newparam/$1/$2 redirect; nginx ไม่สามารถจัดการกับพารามิเตอร์การสืบค้นได้หรือไม่ แก้ไข:ฉันไม่ต้องการเขียนคำร้องทั้งหมด ฉันต้องเขียน URL นั้นใหม่โดยไม่ส่งผลกระทบต่อคนอื่น

8
จะปรับ php5 + MySQL ให้สูงกว่า 200 คำร้องขอ / วินาทีได้อย่างไร?
ฉันกำลังปรับแต่งหน้าแรกของฉันเพื่อประสิทธิภาพขณะนี้สามารถจัดการได้ 200 คำขอ / วินาทีใน 3.14.by ซึ่งกิน 6 คิวรี่ SQL และ 20 รีคิว / วินาทีบน 3.14.by/forum ซึ่งเป็นฟอรัม phpBB น่าแปลกที่ตัวเลขมีความเหมือนกันใน VPS และเซิร์ฟเวอร์ Atom 330 โดยเฉพาะ ซอฟต์แวร์เซิร์ฟเวอร์มีดังต่อไปนี้: Apache2 + mod_php prefork 4 childs (ลองตัวเลขที่แตกต่างกันที่นี่), php5, APC, nginx, memcached สำหรับการจัดเก็บเซสชัน PHP MySQL ถูกกำหนดให้กิน RAM ประมาณ 30% (~ 150Mb บน VPS, 700Mb บนเซิร์ฟเวอร์เฉพาะ) ดูเหมือนว่ามีคอขวดบางแห่งที่ไม่ยอมให้ฉันไปสูงกว่านี้มีข้อเสนอแนะอะไรบ้าง? …

4
nginx รองรับกฎ. htaccess / rewrite หรือไม่ ความแตกต่างจาก Apache?
ฉันทำงานกับเซิร์ฟเวอร์ Apache http มาระยะหนึ่งแล้วและในที่สุดก็ย้ายไปยังเซิร์ฟเวอร์เนื้อหาคงที่ควบคู่ไปกับเครื่องเนื้อหาไดนามิกอื่น ๆ ฉันสงสัยว่า nginx รองรับไฟล์ ".htaccess" และสิ่งต่าง ๆ เช่น mod_rewrite หรือไม่ ในขณะที่ฉันคุ้นเคยกับไวยากรณ์ฉันสงสัยว่าความแตกต่าง (ไวยากรณ์) คืออะไรและเส้นโค้งการเรียนรู้นั้นเหมือนกับการย้ายจาก Apache configs ไปยัง nginx

5
การป้องกันแอ็พพลิเคชันอื่นจากการเชื่อมกับพอร์ต 80 และ 443
สัปดาห์ที่แล้วฉันได้รับโทรศัพท์จากลูกค้าที่กลัวเพราะเขาคิดว่าเว็บไซต์ของเขาถูกแฮ็ก เมื่อฉันค้นหาเว็บไซต์ของเขาฉันเห็นapache2หน้าเริ่มต้น คืนนั้นเซิร์ฟเวอร์ของฉัน ( Ubuntu 16.04 LTS) อัพเกรดและรีบูตแล้ว โดยปกติเมื่อมีสิ่งผิดปกติฉันจะได้รับการแจ้งเตือนในช่วงกลางคืน เวลานี้ไม่ได้เนื่องจากระบบการตรวจสอบจะตรวจสอบรหัสสถานะ HTTP 200 และapache2หน้าเริ่มต้นจะมาพร้อมกับรหัสสถานะ 200 สิ่งที่เกิดขึ้นคือในระหว่างการเริ่มต้นapache2เร็วกว่าที่จะผูกกับพอร์ต 80 และ 443 กว่าเว็บเซิร์ฟเวอร์จริงของฉัน nginx ฉันไม่ได้ติดตั้ง apache2 ด้วยตนเอง ผ่านaptitude why apache2ฉันพบ php7.0 แพ็คเกจต้องการมัน การเอาออกเพียงอย่างเดียวapache2จะไม่ทำงานเพราะ php7.0 นั้นต้องการมัน เป็นไปได้หรือไม่ที่จะสร้างข้อ จำกัด เพื่ออนุญาตให้ nginx เท่านั้นที่เชื่อมโยงกับพอร์ต 80 และ 443 โซลูชันอื่น ๆ ก็ยินดีต้อนรับเช่นกัน

1
การเอาชนะ nginx access_log directive - รายการบันทึกที่ซ้ำกัน
ฉันใช้แพคเกจเริ่มต้น nginx บนเซิร์ฟเวอร์ Ubuntu 14.04 มันถูกใช้/etc/nginx/nginx.confเป็นหลักการตั้งค่าและจากนั้นรวมถึงการกำหนดค่าจากและ/etc/nginx/conf.d/*.conf/etc/nginx/sites-enabled/* การกำหนดค่า nginx เริ่มต้นมีคำสั่งนี้สำหรับการบันทึกการเข้าถึงบันทึก access_log /var/log/nginx/access.log; ฉันต้องการเพิ่มส่วนหัว X-Forwarded-For ดังนั้นฉันจะทำสิ่งนี้ภายในconf.dโฟลเดอร์: log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"'; access_log /var/log/nginx/access.log main; ปัญหาที่ฉันมีคือเมื่อนั้นฉันจะได้รับสองระเบียนภายในไฟล์ access.log ของฉัน - หนึ่งที่มีข้อมูลส่วนหัวและอีกรายการหนึ่งที่ไม่มี ฉันรู้ว่าฉันสามารถเขียนทับnginx.confไฟล์ตัวเอง แต่ฉันควรหลีกเลี่ยงถ้าเป็นไปได้ ฉันต้องการใช้แฟ้มบันทึกเดียวกันต่อไป ( access.log) มีวิธีบอก nginx เพื่อแทนที่คำสั่งก่อนหน้าและเพียงแค่เปลี่ยนรูปแบบการบันทึกโดยไม่ต้องแก้ไขnginx.confไฟล์หลักหรือไม่

5
การสะท้อนการจราจรด้วย Nginx
ฉันต้องการทำซ้ำ / จำลองการรับส่งข้อมูลที่มอบให้เซิร์ฟเวอร์ / ทรัพยากรของฉัน ฉันหมายถึงฉันมีเซิร์ฟเวอร์ A และ B และ N (nginx) เป็นเว็บเซิร์ฟเวอร์ ปริมาณข้อมูลทั้งหมดที่ส่งไปยัง N / ทรัพยากร -> เปลี่ยนเส้นทางไปยัง A และ B เป็นไปได้ไหม?
16 nginx  traffic 

3
Nginx $ document_root $ fastcgi_script_name เทียบกับ $ request_filename
ฉันไม่สามารถสังเกตเห็นความแตกต่างใด ๆ หากอยู่ในไฟล์ปรับแต่งของฉัน fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; หรือ: fastcgi_param SCRIPT_FILENAME $request_filename; พวกเขาทำอะไรตามลำดับ เป็นหนึ่งในสองที่ดีกว่าอีกหรือไม่ ขอบคุณล่วงหน้า.

3
วิธีการใช้ Nginx เป็นพร็อกซีเซิร์ฟเวอร์ HTTP / HTTPS [ปิด]
ปิด. คำถามนี้เป็นคำถามปิดหัวข้อ ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้เป็นไปตามหัวข้อสำหรับข้อบกพร่องของเซิร์ฟเวอร์ ปิดให้บริการใน5 ปีที่ผ่านมา เป็นไปได้หรือไม่ที่จะใช้ Nginx เป็นพร็อกซี HTTP / HTTPS
16 nginx  proxy 

9
การจัดการคำขอ http และ https โดยใช้พอร์ตเดียวกับ nginx
ฉันสงสัยว่า nginx สามารถจัดการคำขอ http และ https บนพอร์ตเดียวกันได้หรือไม่ [*] นี่คือสิ่งที่ฉันพยายามจะทำ ฉันกำลังเรียกใช้เว็บเซิร์ฟเวอร์ (lighttpd) จัดการคำขอ http และโปรแกรม C ที่ให้บริการเฉพาะส่วนของแผนผังเอกสารผ่าน https กระบวนการทั้งสองนี้ทำงานบนเซิร์ฟเวอร์เดียวกัน ที่ระดับไฟร์วอลล์ฉันสามารถมีพอร์ตเดียวที่ส่งต่อทราฟฟิกไปยังเซิร์ฟเวอร์นี้ได้ ดังนั้นสิ่งที่ฉันต้องการจะทำคือการตั้งค่า nginx บนเซิร์ฟเวอร์นี้เพื่อให้ฟังการร้องขอบนพอร์ตเดียวแล้ว: A) เปลี่ยนเส้นทางคำขอhttp://myhost.com/ * ทั้งหมดเพื่อให้ไปที่ localhost: 8080 (โดยที่ lighttpd กำลังฟัง) B) หากผู้ใช้ร้องขอ URL ที่ขึ้นต้นด้วยเช่น https: // myhost.com/app ก็จะส่งคำขอนั้นไปยัง localhost: 8008 (โปรแกรม C) โปรดทราบว่าในกรณีนี้การรับส่งข้อมูลระหว่างเบราว์เซอร์ระยะไกลและ nginx จะต้องได้รับการเข้ารหัส คุณคิดว่าเป็นไปได้ไหม ถ้าเป็นเช่นนั้นจะทำอย่างไร? ฉันรู้วิธีการใช้สองพอร์ตที่แตกต่างกัน ความท้าทายที่ฉันเผชิญทำด้วยพอร์ตเพียงพอร์ตเดียว …
16 nginx  http  https  lighttpd 

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.