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

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

3
มีวิธีบันทึก id เฉพาะสำหรับคำขอ nginx หรือไม่
มีโมดูลของบุคคลที่สามอยู่สองสามตัวสำหรับสิ่งนี้ https://github.com/newobj/nginx-x-rid-header https://github.com/hhru/nginx_requestid อย่างไรก็ตามถ้าเป็นไปได้ฉันไม่ต้องการสร้าง nginx ซึ่งฉันเชื่อว่าเป็นข้อกำหนดในการใช้ทั้งสองโมดูล ความพยายามครั้งแรกของฉันคือการใช้$msecกับ$pidที่ไม่ได้ผล (ฉันมีกระบวนการให้บริการสองคำขอที่มิลลิวินาทีเดียวกัน) ฉันได้อ่านเกี่ยวกับและดูเหมือนว่าจะทำงานร่วมกับ$connection $msecจะใช้งานได้หรือมีวิธีที่ดีกว่าโดยไม่ใช้โมดูลของบุคคลที่สามหรือไม่
12 ubuntu  nginx 

1
บรรทัดคำขอ nginx ใหญ่เกินไป
ฉันได้รับข้อผิดพลาด: Bad Request Request Line is too large (6060 > 4094) เมื่อฉันเข้าถึง URL เฉพาะบนเซิร์ฟเวอร์ของฉันเช่นนี้: /api/categorize?packages=package1,package2,...packageN ใน nginx.conf ฉันมี: large_client_header_buffers 8 16k; client_header_buffer_size 8k; ฉันไม่พบเอกสารเกี่ยวกับปัญหาเฉพาะนั้น docs สำหรับ large_client_header_buffers พูดถึง 400 คำขอไม่ถูกต้อง แต่เปลี่ยน "large_client_header_buffers" จาก 4 8k; หรือ 8 8k; หรือ 8 16; ไม่ได้แก้ไขปัญหา
12 nginx  http  web  400 

2
การกำหนดค่าพร็อกซีย้อนกลับ nginx บางรายการหยุดทำงานวันละครั้ง
ฉันมีพร็อกซีย้อนกลับ nginx ซึ่งพร็อกซีร้องขอจากภายนอก amazon ELB ไปยัง ELB ภายใน ฉันมีแบ็กเอนด์อินสแตนซ์ 6 ที่จัดการการร้องขอ การกำหนดค่าที่เปิดใช้งานไซต์จะมีลักษณะเช่นนี้ แต่มีหมายเลขพอร์ตที่แตกต่างกันและ proxy_pass ทุกอย่างอื่นเหมือนกัน: server { listen 3000; location / { proxy_pass http://internal-prod732r8-PrivateE-1GJ070M0745TT-348518554.eu-west-1.elb.amazonaws.com:3000; include /etc/nginx/proxy.conf; } } ทุกๆหนึ่งชั่วโมงการกำหนดค่าจะหยุดทำงานทุก ๆ 24 ชั่วโมง ผู้รับมอบฉันทะอื่น ๆ ทั้งหมดทำงานได้ดี หากฉันรีสตาร์ท nginx การกำหนดค่าทั้งหมดจะทำงานอีกครั้ง ไม่มีสิ่งใดใน error.log ไม่มีอะไรแปลกในบันทึกการเข้าถึง syslog หรือ dmesg สิ่งนี้เป็นที่รู้จักหรือไม่? ฉันทำสิ่งผิดปกติกับการกำหนดค่าพร็อกซีของฉันหรือไม่ มีบันทึกอื่น ๆ ที่ฉันสามารถดูได้หรือไม่

2
Nginx: ชื่อเซิร์ฟเวอร์นับพัน
ฉันจะกำหนดค่า Nginx ได้ จำกัด server_name หลายพันรายการโดยไม่สร้างไฟล์ config ภายนอกหลายพันรายการหรือเขียนบรรทัด server_name ที่ยาวมาก ๆ ได้อย่างไร แน่นอนฉันต้องการ Nginx เป็น reverse-proxy สำหรับ server1.com, server2.com และอื่น ๆ เท่านั้น ... ทางออกที่ดีที่สุดสำหรับฉันคือการมีไฟล์ปรับแต่งภายนอกหนึ่งไฟล์ที่มี server_names ที่ จำกัด ของฉัน: server1.com, server2.com ฯลฯ เป็นไปได้ไหม ? ตกลงขอบคุณสำหรับคำตอบของคุณมันใช้งานได้โดยไม่ต้องลงทะเบียน การแสดงออก เพียงแค่รายการ server_name ใหญ่ตามที่อธิบายโดย kolbijack ขอบคุณ.
12 nginx 

1
วิธีการปรับ nginx keepalive_timeout?
ฉันใช้ nginx พร้อมกับ php-fpm ไปยังเซิร์ฟเวอร์ไซต์ที่ใช้งาน mysql ไม่ว่าง ขณะนี้ฉันกำลังใช้keepalive_timeout = 5งานอยู่ แต่ฉันไม่มีความคิดที่ชัดเจนเกี่ยวกับวิธีการปรับอย่างเหมาะสมที่สุด ขอบคุณคำแนะนำของคุณ
12 nginx  keepalive 

5
เว็บเซิร์ฟเวอร์ที่เร็วที่สุดสำหรับการให้บริการเนื้อหาคงที่
ฉันกำลังปรับปรุงระบบของเราเพื่อให้มีการส่งเนื้อหาคงที่เร็วขึ้นและสงสัยว่าใครมีประสบการณ์ที่เหมาะสมกับเว็บเซิร์ฟเวอร์ที่เร็วที่สุดที่นั่นเพื่อจุดประสงค์ดังกล่าว จากผู้สมัครหลักสามคนที่ฉันได้พิจารณา Nginx, Cherokee และ Lighttpd แต่ละคนดูเหมือนว่าจะมีปัญหาของตัวเอง - แต่รายงานที่ฉันได้อ่านออนไลน์นั้นค่อนข้างเอนเอียงและเอนเอียงไปทางเซิร์ฟเวอร์ที่ผู้ใช้กำลังใช้อยู่ ความคิดเห็นเกี่ยวกับตำแหน่งที่จะดูเกณฑ์มาตรฐานที่เหมาะสมสำหรับวัตถุประสงค์เฉพาะนี้หรืออย่างน้อยก็ไม่ใช่รายการข้อดีข้อเสีย ประสบการณ์ส่วนตัวและข้อผิดพลาดใดที่ฉันควรแตกต่างกันไป ขอบคุณ แก้ไข: Serverfault.com ให้คำตอบในฐานะ nginx ฉันยังอยากจะได้ยินความคิดของนักพัฒนาจากจุดสิ้นสุดของจักรวาลนี้

2
ทำให้ nginx เพิกเฉยการกำหนดค่าไซต์เมื่อไม่สามารถเข้าถึงอัปสตรีมได้
มีการกำหนดค่าหลายไซต์ใน nginx ของฉันและเมื่อฉันรีสตาร์ทเครื่องหากหนึ่งในเว็บไซต์ต้นน้ำไม่สามารถเข้าถึงได้ nginx จะไม่เริ่มเลยและไซต์ที่มีสุขภาพดีจะไม่เริ่มต้นเป็นผลให้ทำอย่างไร nginx เพิกเฉยต่อไซต์ที่ไม่ถูกต้องเหรอ http { ## # Basic Settings ## sendfile on; tcp_nopush on; tcp_nodelay on; keepalive_timeout 65; types_hash_max_size 2048; # server_tokens off; # server_names_hash_bucket_size 64; # server_name_in_redirect off; include /etc/nginx/mime.types; default_type application/octet-stream; ## # Logging Settings ## access_log /var/log/nginx/access.log; error_log /var/log/nginx/error.log; ## # Gzip Settings …
12 nginx 

3
ในพร็อกซีย้อนกลับ nginx จะตั้งค่าการตั้งค่าสถานะที่ปลอดภัยสำหรับคุกกี้ได้อย่างไร
ฉันใช้ nginx เป็น reverse proxy เพื่อให้บริการเว็บไซต์ https เท่านั้น ดังนั้นฉันต้องการคุกกี้สำหรับไซต์นี้ถูกตั้งค่าสถานะว่าปลอดภัย แต่เซิร์ฟเวอร์ส่วนหลังเป็น http หนึ่งดังนั้นมันจะไม่ตั้งค่าสถานะความปลอดภัยเป็นคุกกี้ ฉันจะแก้ไขส่วนหัว Set-Cookie เพื่อตอบสนองเพื่อเพิ่มการตั้งค่าสถานะที่ปลอดภัยได้อย่างไร

2
ฉันจะกำหนดค่าบล็อกตำแหน่งที่ตั้งให้ส่งคืนไฟล์เดียวใน nginx ได้อย่างไร
ในแอปพลิเคชันของฉันฉันต้องการตำแหน่ง "/" เพื่อส่งคืนไฟล์ index.html แบบคงที่ฉันต้องการ "/ static" เพื่อให้บริการไฟล์คงที่จากโฟลเดอร์และฉันต้องการให้คำขออื่น ๆ ทั้งหมดส่งคืน 404 ไม่ใช่พบ ในภายหลังฉันจะเปลี่ยนเส้นทางคำขออื่น ๆ ทั้งหมดไปยังเซิร์ฟเวอร์ WSGI นี่คือการกำหนดค่าของฉันในปัจจุบัน: # Dev server. server { listen 1337; charset UTF-8; location / { rewrite ^ static/index_debug.html break; } location /static { alias /home/tomas/projects/streamcore/static; } } โฟลเดอร์คงทำงานได้อย่างสมบูรณ์ แต่ "/" กำลังกลับมา 404 ไม่พบ ฉันได้ลองด้วย: alias /home/tomas/projects/streamcore/static/index_debug.html; …

3
เมื่อใดที่จะใช้หรือไม่ใช้ sendfile เปิด / ปิดใน Nginx
เรามีการตั้งค่านี้ในของเราnginx.confค่อนข้างในขณะที่ sendfile on; เมื่อเราอัปเดตไฟล์เช่น/js/main.jsและเข้าถึงจากเบราว์เซอร์https://test.com/js/main.js?newrandomtimestampมันจะยังคงโหลดเวอร์ชันเก่ากว่ายกเว้นว่าเราทำการรีเฟรชเต็มรูปแบบ (ล้างแคช) จากเบราว์เซอร์ของเรา แต่เมื่อเราเปลี่ยนการตั้งค่าจาก sendfile บน; เพื่อ sendfile ปิด; เบราว์เซอร์จะโหลดเวอร์ชันที่ถูกต้องของไฟล์ที่อัปเดต สำหรับเว็บเซิร์ฟเวอร์ที่ใช้งานจริงเราควรใช้ sendfile หรือ sendfile off ;? หาก sendfile เปิด; เป็นสิ่งจำเป็น (อาจเป็นเหตุผลของการแคชที่ดีกว่าหรือไม่ประสิทธิภาพได้เร็วขึ้น?) แล้ววิธีการแก้ปัญหาดังกล่าวข้างต้น? ด้านล่างเป็นnginx.confเซิร์ฟเวอร์การผลิตของเราและเราใช้เวอร์ชั่น 1.7.5: user nginx; worker_processes 2; error_log /var/log/nginx/error.log warn; pid /var/run/nginx.pid; worker_rlimit_nofile 51200; events { use epoll; worker_connections 51200; } http { include /etc/nginx/mime.types; default_type …
12 nginx  cache 

4
ข้อผิดพลาด Nginx 400 เนื่องจากสตริงที่เข้ารหัสแบบสุ่มเริ่มต้นด้วย“ \ x” จากที่อยู่ IP แบบสุ่ม
ฉันคิดว่าสิ่งเหล่านี้เป็นบอตบางประเภท แต่ต้องการทราบว่าพวกเขาพยายามทำอะไรกับเซิร์ฟเวอร์ของฉัน บันทึกคำถามมีอยู่ด้านล่างและที่อยู่ IP ถูกเปลี่ยนจากต้นฉบับ 12.34.56.78 - - [18/Oct/2012:16:48:20 +0100] "\x86L\xED\x0C\xB0\x01|\x80Z\xBF\x7F\xBE\xBE" 400 172 "-" "-" 12.34.56.78 - - [18/Oct/2012:16:50:28 +0100] "\x84K\x1D#Z\x99\xA0\xFA0\xDC\xC8_\xF3\xAB1\xE2\x86%4xZ\x04\xA3)\xBCN\x92r*\xAAN\x5CF\x94S\xE3\xAF\x96r]j\xAA\xC1Y_\xAE\xF0p\xE5\xBAQiz\x14\x9F\x92\x0C\xCC\x8Ed\x17N\x08\x05" 400 172 "-" "-" 12.34.56.78 - - [18/Oct/2012:16:58:32 +0100] "g\x82-\x9A\xB8\xF0\xFA\xF4\xAD8\xBA\x8FP\xAD\x0B0\xD3\xB2\xD2\x1D\xFF=\xAB\xDEC\xD5\xCB\x0B*Z^\x187\x9C\xB6\xA6V\xB8-D_\xFE" 400 172 "-" "-" 12.34.56.78 - - [18/Oct/2012:17:06:59 +0100] "\xA61[\xB5\x02*\xCA\xB6\xC6\xDB\x92#o.\xF4Kj'H\xFD>\x0E\x15\x0E\x90\xDF\xD0R>'\xB8A\xAF\xA3\x13\xB3c\xACI\xA0\xAA\xA7\x9C\xCE\xA3\x92\x85\xDA\xAD1\x08\x07\xFC\xBB\x0B\x95\xA8Z\xCA\xA1\xE0\x88\xAEP" 400 172 "-" "-" 12.34.56.78 - - [18/Oct/2012:17:13:53 +0100] …
12 nginx  logging  hacking 

5
วิธีติดตั้ง nginx และติดตั้งไฟล์กำหนดค่าด้วย
ฉันเพิ่งถอนการติดตั้ง nginx 1.0.6 อย่างสมบูรณ์จากเซิร์ฟเวอร์ของฉัน (Ubuntu 11.04) โดยใช้ apt-get remove nginx rm -rf /etc/nginx/ rm -rf /usr/sbin/nginx rm /usr/share/man/man1/nginx.1.gz apt-get remove nginx* ตอนนี้ฉันต้องการติดตั้งอีกครั้งอย่างไรก็ตามเมื่อเริ่มต้น nginx ฉันได้รับข้อผิดพลาดเช่น: การรีสตาร์ท nginx: nginx: [ฉุกเฉิน] open () "/etc/nginx/nginx.conf" ล้มเหลว (2: ไม่มีไฟล์หรือไดเรกทอรีดังกล่าว) จากนั้นฉันวางไฟล์ conf ของฉันเองจากนั้นฉันได้รับข้อผิดพลาดใหม่: การรีสตาร์ท nginx: nginx: [ฉุกเฉิน] open () "/etc/nginx/mime.types" ล้มเหลว (2: ไม่มีไฟล์หรือไดเรกทอรีดังกล่าว) ใน /etc/nginx/nginx.conf:12 ตอนนี้ดูเหมือนapt-get …
12 ubuntu  nginx  apt 

1
หน้าว่าง example.com/phpmyadmin พร้อมข้อผิดพลาดในคอนโซลของเบราว์เซอร์
ฉันได้ติดตั้ง phpmyadmin และเชื่อมโยงกับเซิร์ฟเวอร์ LEMP ของฉัน (php 7) แต่เมื่อฉันได้รับชื่อโฮสต์ / phpmyadmin จะส่งคืนหน้าว่างด้วยไอคอน phpmyadmin บนแถบชื่อเรื่อง และข้อผิดพลาด 3 ข้อในคอนโซลของเบราว์เซอร์: ไม่สามารถโหลดทรัพยากร: net :: ERR_INCOMPLETE_CHUNKED_ENCODING Uncaught ReferenceError: $ ไม่ได้ถูกกำหนดไว้ Uncaught ReferenceError: PMA_commonParams ไม่ได้ถูกกำหนดไว้ ฉันได้ลองวิธีแก้ปัญหาหลายอย่างแล้ว แต่ไม่พบปัญหา :( กำหนดค่าเซิร์ฟเวอร์: server { # listen 80 ; # listen [::]:80 default_server; # SSL configuration # listen 443 ssl default_server; …

2
nginx ใช้ proxy proxy ถ้าแบ็กเอนด์ไม่ทำงาน
ฉันต้องการพร็อกซี nginx ใช้แคชหากเซิร์ฟเวอร์ด้านหลัง: นี่คือการกำหนดค่าของฉัน แต่ดูเหมือนว่าจะใช้แคช nginx โดยไม่ตรวจสอบเซิร์ฟเวอร์ backend http { # ... proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_cache_path /tmp/nginx levels=1:2 keys_zone=tmpzone:10m inactive=60m; proxy_cache_key "$scheme$request_method$host$request_uri"; server { server_name _; location / { proxy_connect_timeout 5s; proxy_read_timeout 5s; proxy_cache tmpzone; proxy_cache_valid 200 304 1d; proxy_cache_use_stale error timeout invalid_header updating …
11 nginx  proxy  cache  failover 

2
ต้องการการเชื่อมต่อขาเข้า IPv4 มากกว่า IPv6
เราเรียกใช้บริการสังคม / ท้องถิ่นที่ได้รับประโยชน์จากการระบุตำแหน่งทางภูมิศาสตร์ของ IP ของผู้ใช้ ปัญหาคือว่าด้วย IPv6 ตำแหน่งทางภูมิศาสตร์ค่อนข้าง spottier กว่าด้วย IPv4 มีวิธีใดที่จะชอบการเชื่อมต่อขาเข้ามากกว่า IPv6 บนโฮสต์ Ubuntu ที่มี nginx หรือไม่? การกำหนดค่ามีลักษณะดังนี้: server { listen 80 default_server; listen [::]:80 ipv6only=off default_server; }
11 nginx  ipv6  ipv4 

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