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

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

5
ฉันจะบอกให้ Nginx รอสักครู่ก่อนแสดงเนื้อหาได้อย่างไร
ดังนั้นเมื่อฉันทดสอบสิ่งต่าง ๆ ในพื้นที่เช่นอาแจ็กซ์ในแอพที่ฉันเขียนฉันมักจะต้องการเพิ่มความล่าช้าในสคริปต์ฝั่งเซิร์ฟเวอร์โดยใช้sleepคำสั่ง ช่วยจำลองการเชื่อมต่อช้าเป็นต้น มีวิธีในการระบุพฤติกรรมการหน่วงเวลาที่คล้ายกันโดยตรงในการกำหนดค่า Nginx ที่จะทำงานกับไฟล์ HTML แบบแบนที่ให้บริการหรือไม่ ฉันรู้ว่าคุณสามารถทำการจำลองการหน่วงเวลาที่คล้ายกันในระดับเครือข่าย (ดูที่นี่ ) แต่ดูเหมือนว่ายุ่งมากและไม่เคยทำงานได้ดีสำหรับฉัน
14 nginx 

4
ทดสอบว่ามีการตั้งค่าตัวแปร nginx
ฉันจำเป็นต้องตั้งค่าตัวแปรให้เป็นค่าเริ่มต้นหากยังไม่ได้ตั้งค่า config ต่อไปนี้ทำงาน: if ($foo ~ "^$") { set $foo default-value; } แต่มันสร้างคำเตือนรันไทม์: ใช้ตัวแปร "foo" โดยไม่กำหนดค่าเริ่มต้น มีวิธีทดสอบว่าตัวแปรถูกตั้งค่าโดยไม่สร้างคำเตือนหรือไม่และปิดการเตือนทั่วโลกด้วย: uninitialized_variable_warn off;
14 nginx 

3
สิ่งนี้พิสูจน์ได้ว่าเป็นปัญหาคอขวดแบนด์วิดท์ของเครือข่ายหรือไม่
ฉันสันนิษฐานว่าการทดสอบ AB ภายในของฉันไม่ถูกต้องหมายความว่าเซิร์ฟเวอร์ของฉันสามารถจัดการ 1k concurrency @ 3k hits ต่อวินาที ทฤษฎีของฉันในขณะนี้คือเครือข่ายเป็นคอขวด เซิร์ฟเวอร์ไม่สามารถส่งข้อมูลได้เร็วพอ การทดสอบภายนอกจาก blitz.io ที่ 1k เห็นพ้องด้วยแสดงจำนวนครั้งที่ฉันเข้าชมสูงสุดที่ 180 โดยใช้เวลานานขึ้นและนานขึ้นในการตอบกลับเนื่องจากเซิร์ฟเวอร์สามารถส่งคืนได้ 180 ต่อวินาทีเท่านั้น ฉันทำหน้าที่ไฟล์เปล่าจาก nginx และ benched มันมันชั่ง 1: 1 พร้อมกัน ตอนนี้เพื่อแยกคอขวด IO / memcached (โดยปกติแล้ว nginx จะดึงจาก memcached) ฉันให้บริการหน้าแคชรุ่นคงที่จากระบบไฟล์ ผลลัพธ์คล้ายกันมากกับการทดสอบดั้งเดิมของฉัน ฉันปกคลุมที่ประมาณ 180 RPS การแยกหน้า HTML ออกครึ่งหนึ่งจะให้ RPS สองเท่าดังนั้นมันจึงถูก จำกัด ด้วยขนาดของหน้า ถ้าฉันภายใน ApacheBench …

7
Nginx + php5-fpm =“ ไม่พบไฟล์”
ฉันตีกำแพงระหว่างตั้งค่าไซต์โดยใช้ nginx / fpm หน้าแสดง "ไม่พบไฟล์" และสิ่งนี้จะปรากฏในข้อผิดพลาด nginx.log: FastCGI sent in stderr: "Primary script unknown" while reading response header from upstream ฉันใหม่สำหรับทั้ง nginx และ fpm และข้อความแสดงข้อผิดพลาดนั้นไม่มีความหมายสำหรับฉันเลยแม้แต่เครื่อง google ก็ยังไม่ได้ช่วย! ทุกคนสามารถปลดปล่อยแสงสว่างที่เกิดขึ้นได้หรือไม่?
14 nginx  php-fpm  socket 

1
กรณีแปลก ๆ ของ Mr. Time To First Byte
ฉันมีเว็บเซิร์ฟเวอร์โดยใช้ Linode 1024 VPS Ubuntu 11.10 Nginx 1.0.5 PHP 5.3.6 (ด้วย PHP-FPM, APC) วานิช 3.0.2 และมีบล็อกอีกสองสามตัวที่ใช้ WordPress 3.3.1 หนึ่งในนั้นคือบล็อกธรรมดาที่มีการกำหนดค่าเริ่มต้นชุดรูปแบบและเพียงโพสต์ "Hello World" เพื่อทดสอบเซิร์ฟเวอร์ อีกบล็อกหนึ่งถูกบล็อกจากเซิร์ฟเวอร์อื่นที่มีโพสต์เกือบ 10k และมีความคิดเห็นมากกว่า 10k บล็อกนี้มีเนื้อหาที่ไม่ซ้ำกัน 5 พันรายการต่อวัน เซิร์ฟเวอร์ให้ตัวเลขที่ดีในการทดสอบ ab สำหรับบล็อกทดสอบแต่การทดสอบเดียวกันกับบล็อกที่ทำโคลนนั้นเป็นไปไม่ได้: การทดสอบ ab โหลดเซิร์ฟเวอร์มากเกินไปและฉันต้องหยุดกระบวนการซึ่งทำให้ ab แสดงต่อไปผลลัพธ์ที่แย่มาก ฮ็อพแสดงให้เห็นถึงการโหลด "ปกติ" เมื่ออยู่ในการทำงานปกติแต่โหลดใหญ่ผิดปกติในระหว่างการทดสอบ ab มีสิ่งแปลกใหม่เกิดขึ้น (สำคัญที่สุดสำหรับฉัน): Time To First Byte สูงมากแต่หลังจากนั้นเว็บไซต์ก็โหลดเร็วมาก สามารถทดสอบได้อย่างง่ายดายด้วยบริการต่าง ๆ …

2
ApacheBenchmark ab - SSL อ่านล้มเหลว - ปิดการเชื่อมต่อ
เมื่อฉันเรียกใช้ ab บนเว็บไซต์ของฉันฉันได้รับคำตอบมากมาย: SSL read failed - closing connection SSL read failed - closing connection SSL read failed - closing connection และบางครั้งก็ประสบความสำเร็จ ฉันใช้ MacBook Pro 10.7.2 สิ่งที่แปลกคือมีคนอื่นทำการทดสอบแบบเดียวกันกับเครื่องจักรที่มีความซับซ้อนมาก ๆ ไม่ใช่ OS Lion ติดกับฉันและไม่มีปัญหา ความคิดใด ๆ ฉันแน่ใจว่านี่คือสิ่งที่อยู่ในเครื่องของฉันเพราะฉันได้รับ ab ไปทำงานทั่วสถานที่ คำสั่งนั้นเรียบง่าย: ab -c 100 -n 1000 https://mywebsite.com อีกอย่างหนึ่งเมื่อฉันดูในบันทึกของ nginx ฉันเห็นคำขอบางอย่างมาจาก ab ดังนั้นจึงทำงานได้ และบันทึกจะไม่แสดงรายการที่ล้มเหลว
14 apache-2.2  nginx  ssl  ab 

5
ทำความเข้าใจกับข้อผิดพลาดนี้: apr_socket_recv: รีเซ็ตการเชื่อมต่อโดยเพียร์ (104)
ดังนั้นถ้าฉันทำการเปรียบเทียบกับ apache benchmark (ab) และฉันใช้การร้องขอจำนวนมาก จากนั้นบางครั้งในระหว่างการทดสอบฉันได้รับข้อผิดพลาดนี้ ฉันไม่รู้ด้วยซ้ำว่ามันหมายถึงอะไร ดังนั้นฉันจะแก้ไขได้อย่างไร หรือเป็นเพียงบางสิ่งที่จะเกิดขึ้นหากเซิร์ฟเวอร์ได้รับความนิยมมากเกินไป ปัญหาคือถ้าฉันวิ่ง 10,000 ครั้งมันจะทำงานได้อย่างสมบูรณ์แบบ หากฉันเรียกใช้อีกครั้งจะได้รับถึง 4,000 และได้รับข้อผิดพลาด: apr_socket_recv: Connection reset by peer (104) เล็ก ๆ น้อย ๆ เกี่ยวกับการตั้งค่าของฉัน: ฉันมี nginx รับคำขอคงที่และการประมวลผลแบบไดนามิกเพื่อ Apache ไฟล์ที่เป็นปัญหาถูกนำเสนอจากแคชโดย nginx ดังนั้นฉันคิดว่ามันน่าจะเกี่ยวข้องกับวิธีที่ nginx จัดการกับคำร้องขอ? ไอเดีย?

4
nginx และ memcached ทำงานร่วมกันได้ดีแค่ไหน?
เรามีเว็บแอปพลิเคชันที่ใช้ Java EE ทำงานบนคลัสเตอร์เซิร์ฟเวอร์แอปGlassfish ทราฟฟิกขาเข้าส่วนใหญ่จะเป็นคำขอที่เงียบสงบสำหรับการเป็นตัวแทนที่ใช้ XML ของทรัพยากรแอปพลิเคชันของเรา แต่บางที 5% ของการรับส่งข้อมูลอาจจะใช้สำหรับการเป็นตัวแทน JSON- หรือ XHTML / CSS ขณะนี้เรากำลังตรวจสอบโซลูชันการโหลดบาลานซ์เพื่อกระจายทราฟฟิกขาเข้าข้ามอินสแตนซ์ Glassfish ในคลัสเตอร์ นอกจากนี้เรายังดูวิธีการถ่ายโอนคลัสเตอร์โดยใช้ memcached ซึ่งเป็นแผนที่แฮชกระจายในหน่วยความจำซึ่งกุญแจจะเป็นชื่อทรัพยากร REST (เช่น "/ user / bob", "/ group / jazzlovers") และค่าที่เป็น การเป็นตัวแทน XML ที่สอดคล้องกัน วิธีการหนึ่งที่ให้สัญญาว่าจะฆ่านกทั้งสองด้วยหินก้อนเดียวและใช้เซิร์ฟเวอร์nginx HTTP น้ำหนักเบาและพร็อกซีย้อนกลับอย่างรวดเร็ว Nginx จะจัดการคำขอที่เข้ามาแต่ละรายการโดยค้นหา URI เป็นครั้งแรกใน memcached เพื่อดูว่ามีการแสดง XML ที่ยังไม่หมดอายุที่นั่นหรือไม่ ถ้าไม่ได้ nginx ส่งการร้องขอไปยังหนึ่งในอินสแตนซ์ Glassfish …
14 nginx  memcached 

1
แทนที่การกำหนดค่า http เริ่มต้น nginx โดยไม่เปลี่ยนค่าเริ่มต้น nginx.conf
ความตั้งใจของฉัน : ฉันต้องการแทนที่การกำหนดค่าเริ่มต้นที่กำหนดไว้ใน/etc/nginx/nginx.conf(ในเดเบียน 8) แนวคิดก็คือเก็บไฟล์นี้ไว้อย่างสมบูรณ์เพื่อให้ง่ายต่อการอัปเดตระบบในอนาคตและสามารถรับการเปลี่ยนแปลงล่าสุดสำหรับตัวเลือกที่ฉันไม่ได้แทนที่ สิ่งที่ฉันทำ : ฉันสร้างการกำหนดค่าแบบกำหนดเองใน/etc/nginx/conf.d/แบบเดียวกับที่ฉันทำกับบริการเดเบียนอื่น ๆ ปัญหา : อย่างไรก็ตามดูเหมือนว่าเป็นไปไม่ได้ที่จะแทนที่การกำหนดค่าบางอย่างเพราะฉันได้รับคำสั่ง "X" เป็นข้อผิดพลาดซ้ำซ้อน ดูเหมือนว่า Nginx จะไม่สนับสนุนการกำหนดค่าแทนที่เช่นเดียวกับบริการอื่น ๆ คำถาม : มีวิธีการแทนที่และเพิ่มตัวเลือกใหม่ให้กับบริบทhttp nginx โดยไม่ได้รับคำสั่งเป็นข้อผิดพลาดซ้ำกันหรือไม่ หรือฉันควรละทิ้งความคิดและอาละวาดอย่างสมบูรณ์nginx.confหรือไม่ ขอบคุณมากสำหรับความช่วยเหลือของคุณ. คำถามที่คล้ายกันนี้ไม่ได้แก้ปัญหาของฉันเพราะฉันต้องการกำไรจากตัวเลือกเริ่มต้นที่ nginx ตั้งค่าให้ฉันโดยอัตโนมัติ (เช่นworker_processes auto;)

6
Debian jessie nginx พร้อม openssl 1.0.2 เพื่อใช้ ALPN มากกว่า NPN
ฉันใช้ jessie debian บนเซิร์ฟเวอร์ของฉันและเพิ่งอัพเกรดเป็นเว็บเซิร์ฟเวอร์ nginx ใหม่พร้อมการสนับสนุน http / 2 (nginx 1.10) วันนี้มันใช้งานได้ดีและเว็บเซิร์ฟเวอร์ส่งเนื้อหาด้วยโปรโตคอล http2 ฉันได้อ่านแล้วChrome นั้นกำลังลดการสนับสนุน NPNและอนุญาตให้ ALPN เท่านั้นหลังจาก 15.5.2016 ALPN เป็นส่วนขยายซึ่งจำเป็นต้องติดตั้ง openssl 1.0.2 แต่บนเดเบียนเจสซีเป็น openssl 1.0.1 เท่านั้น (เช่นเดียวกับเดกซ์แบ็กและแหล่งเก็บข้อมูลอื่นไม่มีรุ่น openssl 1.0.2 สำหรับเดเบียนนี้) และมีปัญหา - ฉันได้อัพเกรดจาก SPDY เป็น http2 และในอีกไม่กี่วันฉันจะต้องปิด http2 และไม่สามารถใช้ SPDY ได้เนื่องจาก nignx รุ่นนี้มี http2 เท่านั้น ฉันได้อ่านแล้วว่าเดเบียนเวอร์ชันนี้จะติดอยู่กับ openssl 1.0.1 และเดซิเบลยืดเท่านั้นที่จะเปิด …

6
Nginx - อะไรคือความหมายของการนิยาม `burst 'ถ้ามีตัวเลือก' nodelay`
ในการกำหนดค่า Nginx เมื่อคุณต้องการ จำกัด อัตราการประมวลผลคำขอโดยใช้limit_req_zone/ limit_req instructionsฉันไม่เข้าใจการใช้nodelayตัวเลือก ในความเข้าใจของฉันมันจะยกเลิกการร้องขอข้างต้นอัตราที่กำหนดโดยไม่ล่าช้าพวกเขา burst=0ดังนั้นดูเหมือนว่าเทียบเท่ากับ นั่นคือเหตุผลที่ฉันไม่เข้าใจตัวอย่างต่อไปนี้: limit_req zone=one burst=5 nodelay; burstกำหนดจำนวนของการร้องขอที่อาจล่าช้าดังนั้นความหมายที่จะกำหนดburstถ้ามีnodelayตัวเลือกคืออะไร?
14 nginx 

1
ควร "keepalive_timeout" ถูกลบออกจากการกำหนดค่า Nginx หรือไม่
การกำหนดค่า / การปรับให้เหมาะสมที่ดีกว่าคืออะไร: เพื่อ จำกัดkeepalive_timeoutหรือให้ Nginx ฆ่าการเชื่อมต่อแบบ keepalive ด้วยตัวเองอย่างชัดเจน? ฉันเห็นคำแนะนำที่ขัดแย้งกันสองข้อเกี่ยวกับkeepalive_timeoutคำสั่งของ Nginx พวกเขามีดังนี้: # How long to allow each connection to stay idle; longer values are better # for each individual client, particularly for SSL, but means that worker # connections are tied up longer. (Default: 65) keepalive_timeout 20; และ # …
14 nginx  keepalive 

2
SSL vhost หลายตัวที่ใช้ไวด์การ์ดใน nginx
ฉันมีชื่อโฮสต์สองชื่อที่ใช้ชื่อโดเมนเดียวกันซึ่งฉันต้องการให้บริการผ่าน HTTP ฉันมีใบรับรอง wildcard-SSL และสร้าง vhost configs สองอัน: โฮสต์ A listen 127.0.0.1:443 ssl; server_name a.example.com; root /data/httpd/a.example.com; ssl_certificate /etc/ssl/wildcard.cer; ssl_certificate_key /etc/ssl/wildcard.key; โฮสต์ B listen 127.0.0.1:443 ssl; server_name b.example.com; root /data/httpd/b.example.com; ssl_certificate /etc/ssl/wildcard.cer; ssl_certificate_key /etc/ssl/wildcard.key; อย่างไรก็ตามฉันได้รับ vhost เดียวกันสำหรับชื่อโฮสต์อย่างใดอย่างหนึ่ง

4
การเริ่มต้น Nginx ล้มเหลว ssl ไม่มีไฟล์หรือไดเรกทอรีดังกล่าว
นี่คือข้อผิดพลาดที่ฉันได้รับ: การโหลดการกำหนดค่า nginx ใหม่: nginx: [ฉุกเฉิน] SSL_CTX_use_certificate_chain_file ("/ path / to / cert.pem") ล้มเหลว (SSL: ข้อผิดพลาด: 02001002: ไลบรารีระบบ: fopen: ไม่มีข้อผิดพลาดไฟล์หรือไดเรกทอรี: 20074002: BIO รูทีน: FILE_CTRL: ระบบ ข้อผิดพลาด lib: 140DC002: รูทีน SSL: SSL_CTX_use_certificate_chain_file: ระบบ lib) nginx: ไฟล์การกำหนดค่า /etc/nginx/nginx.conf การทดสอบล้มเหลว ฉันแน่ใจ 100% ว่าไฟล์อยู่ที่ตำแหน่งนั้น แต่ Nginx ดูเหมือนว่าจะคิดว่ามันไม่มี ฉันผสานdomain.crtและintermediate.crtด้วยตนเองตามลำดับนั้น ฉันเกาหัวมาตลอดทั้งวัน ฉันหวังว่าบางคนได้เห็นข้อผิดพลาดนี้และมีวิธีแก้ไขปัญหา (และหมายเหตุด้านข้างไม่ใช่ข้อผิดพลาดในการวางตำแหน่งไฟล์จะแสดงเพียงครั้งเดียวและไม่ใช่อีกครั้งหลังจาก 'ไม่มีไฟล์หรือไดเรกทอรีดังกล่าว')

1
เปลี่ยนเส้นทางย่อยไปยังโฮสต์ภายนอกด้วย Nginx
ฉันต้องสร้างแผนที่ง่าย ๆ ใน Nginx ที่เปลี่ยนเส้นทาง subpath ไปยังเซิร์ฟเวอร์อื่นที่อยู่ใน subnet เดียวกัน เซิร์ฟเวอร์ Nginx: 192.168.0.2 เซิร์ฟเวอร์ Tomcat: 192.168.0.3:8443 ฉันพยายามใส่สิ่งนี้ในส่วนเซิร์ฟเวอร์ location /tomcatapi/ { rewrite /tomcatapi/(.*) $1 break; proxy_pass http://192.168.0.3:8443; } แต่ทั้งหมดที่ฉันได้รับการเข้าถึงhttp://www.myservice.com/tomcatapi/เป็นหน้าข้อผิดพลาด 500 และในแฟ้มบันทึก nginx ฉันมีข้อผิดพลาดนี้: the rewritten URI has a zero length สิ่งที่ฉันขาดหายไปในความเชื่อมั่นนี้?

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