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

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

2
ในที่สุด nginx proxy_pass จะส่งคืน GATEWAY_TIMEOUT แม้ว่าเซิร์ฟเวอร์จะยังทำงานอยู่
ฉันได้ตั้งค่าพร็อกซี nginx passthrough ซึ่งทำงานได้ดีเมื่อเริ่มโหลด nginx แต่ในที่สุด (ในที่สุดอาจจะหลังจากผ่านไปหนึ่งวันแล้วหรือไม่? ไม่แน่ใจว่า ณ จุดนี้) ตำแหน่งที่เป็นพร็อกซี passthrough จะส่งคืนการ504 GATEWAY_TIMEOUTตอบกลับเท่านั้น สิ่งที่แปลกคือฉันได้ตั้งหลาย proxy_pass ที่ตั้งและเป็นสิ่งที่สุ่มลงไปและสิ่งที่ยังคงอยู่ นี่คือไฟล์ config nginx: server { listen 80; server_name example.com; access_log /var/log/nginx/access.log; error_log /var/log/nginx/error.log; root /srv/www/frontend/current/; location / { try_files $uri $uri/ /index.html; } # Block all svn access if ($request_uri ~* ^.*\.svn.*$) { …

3
เป็นไปได้ไหมที่จะใช้ตัวโหลดบาลานซ์หลายตัวเพื่อเปลี่ยนเส้นทางปริมาณการใช้งานไปยังเซิร์ฟเวอร์แอปพลิเคชันของฉัน
ฉันใหม่สำหรับการทำ load balance และฉันสงสัยว่าเป็นไปได้หรือไม่ที่จะใช้ load balancer หลาย ๆ ตัวเพื่อเปลี่ยนทราฟฟิกไปยังเซิร์ฟเวอร์แอปพลิเคชันของฉัน ฉันไม่เข้าใจจริงๆว่าสามารถทำสิ่งนี้ได้อย่างไร ชื่อโดเมนไม่ควรตรงกันแบบหนึ่งต่อหนึ่งกับที่อยู่ IP ของเซิร์ฟเวอร์ (ในกรณีนี้คือ IP ของ load balancer หนึ่งตัว) หากเซิร์ฟเวอร์ load balancing แต่ละเครื่องมี IP ที่แตกต่างกันจะสามารถรับคำขอได้จากทั้ง load balancer (หรือ 10 load balancer หรือ 50 หรือ 100)

1
HAProxy URL เขียนซ้ำในข้อผิดพลาด 404
วิธีการทำให้ HAProxy เขียนซ้ำไปยังส่วนหลังอื่นเมื่อไฟล์แรกหายไป? สิ่งที่ฉันต้องการคือerrorlocการเขียนใหม่แทนที่จะเปลี่ยนเส้นทางดังนั้นลูกค้าจึงไม่ทราบว่าจะเปลี่ยนเส้นทาง เราได้พัฒนาแอปพลิเคชันโดยคำนึงถึง NginX ซึ่งเป็นทั้งโหลดบาลานซ์บาลานซ์พร็อกซีย้อนกลับและเว็บเซิร์ฟเวอร์สำหรับไฟล์คงที่ แอปพลิเคชันขึ้นอยู่กับกรอบOpaซึ่งต้องการเซสชันที่ยึดตามคุกกี้ - ได้รับการสนับสนุนโดย NginX และ HAproxy คุณลักษณะแอปพลิเคชันที่เรามีปัญหาคือการสร้างเนื้อหาแบบไดนามิก มันสร้างภาพตามต้องการ แต่หลังจากรุ่นมันจะถูกบันทึกไว้ในดิสก์และสามารถเข้าถึงได้แบบคงที่ด้วยเส้นทางที่กำหนด ปัญหาได้รับการแก้ไขอย่างง่ายดายด้วย NginX - พยายามอ่านไฟล์โลคัลและใช้โหลดบาลานซ์แบ็คเอนด์เฉพาะในกรณีที่ไฟล์หายไป (ยังไม่ได้สร้าง): server { server_name wkaliszu.pl; location /thumb { root /path_on_disk/to_cached_content; expires 7d; # try to access already generated content try_files $uri @wkaliszu; } location / { # reverse proxy to …
9 nginx  haproxy 

4
ฉันจะระบุ subjectAltName ใน openssl cli ได้อย่างไร
ฉันกำลังสร้างใบรับรอง SSL ที่ลงชื่อด้วยตนเอง: $ openssl req -x509 -newkey rsa:2048 -subj 'CN=example.com' ฉันต้องการระบุหัวเรื่องAltNameในขณะที่สร้าง แต่ฉันไม่สามารถหาข้อมูลใน openssl manpage เกี่ยวกับวิธีการทำเช่นนี้ได้
9 nginx  ssl  openssl 

1
PHP5-FPM ส่งข้อผิดพลาดไปยัง nginx อย่างไร
ฉันทำการทดลองเล็กน้อยกับการบันทึกข้อผิดพลาดใน php-fpm และ nginx เนื่องจากฉันไม่พบคำอธิบายที่ดีใด ๆ บนเว็บ มัคคุเทศก์ส่วนใหญ่กล่าวว่าฉันควรเปลี่ยนcatch_workers_outputเป็นyesถ้าฉันต้องการส่งข้อผิดพลาดจาก php5-fpm กลับไปที่ nginx อย่างไรก็ตามในระหว่างการทดสอบของฉันฉันพบว่าแม้เมื่อcatch_workers_outputตั้งค่าเป็นnoข้อผิดพลาดยังคงถูกบันทึกอย่างถูกต้องโดย nginx นี่คือ virtualhost config ของฉัน: server { server_name domain.com; return 301 http://www.domain.com$request_uri; access_log off; } server { listen 80; listen [::]:80; root /home/websites/domain.com; index index.php index.html index.htm; error_log /home/websites/logs/domain.com/error.log warn; access_log /home/websites/logs/domain.com/access.log; #switch on gzip gzip on; gzip_min_length …
9 nginx  php-fpm 

1
แคช Nginx ใช้ร่วมกันระหว่างเซิร์ฟเวอร์หลายเครื่อง
เรามีเซิร์ฟเวอร์ REST-ish API 8 แห่งที่มี Nginx ใช้ FastCGI กับ PHP-FPM เพื่อจัดการคำขอ ขณะนี้เรากำลังใช้การแคช FastCGI ของ Nginx (คำสั่งเช่นfastcgi_cache_path) ซึ่งหมายความว่าการตอบสนองของ API ถูกแคช แต่มีแคชแยกต่างหากสำหรับแต่ละเซิร์ฟเวอร์ มีวิธีที่ดีในการแชร์ที่เก็บแคชระหว่างเซิร์ฟเวอร์ทั้งแปดหรือไม่ เราได้พิจารณาการใช้ Redis เป็นที่เก็บข้อมูลที่ใช้ร่วมกัน แต่โมดูลที่มีอยู่ดูเหมือนจะต้องการการเปลี่ยนแปลงแอปพลิเคชัน ในบางกรณีเราอาจต้องการแคชการตอบสนองภายนอกการควบคุมของเรา (ผ่าน HTTP ไปยัง API ภายนอก) โดยปกติแล้วการแทนที่แบบฝังสำหรับการแคช Nginx ในตัวของการตอบกลับ FastCGI และ HTTP จะพร้อมใช้งาน
9 nginx  cache 

3
คำจำกัดความของการถ่ายต่อเนื่องในการตั้งค่า Nginx limit_req คืออะไร?
อะไรคือความแตกต่างระหว่างสิ่งนี้: limit_req_zone $binary_remote_addr zone=flood:10m rate=30r/s; limit_req zone=flood nodelay และ: limit_req_zone $binary_remote_addr zone=flood:10m rate=30r/s; limit_req zone=flood burst=5 nodelay เอกสารhttp://wiki.nginx.org/HttpLimitReqModule
9 nginx 

2
php-fpm ส่งคืนการตอบกลับเปล่าไปยัง nginx
nginx กำลังเชื่อมต่อกับ php-fpm ผ่าน fastcgi โดยใช้มาตรฐาน/etc/nginx/fastcgi_paramsในบล็อกตำแหน่ง เมื่อเชื่อมต่อกับ /.status (php-fpm.ini :: ping.path) จากบรรทัดคำสั่งด้วยcgi-fcgi -bindผลลัพธ์จะกลับมาตามที่คาดไว้ (ชุด X-Powered-By ชุดการตอบสนอง ฯลฯ ) เมื่อร้องขอด้วย nginx ผลลัพธ์จะกลับมาว่างเปล่า (ชุด X-Powered-By ไม่มีความยาวหรือเนื้อหา) nginx ส่งคืน 200 เนื่องจากได้รับการตอบกลับ "ถูกต้อง" การเฝ้าดู tcpdump ฉันได้แยกคำขอให้เท่าเทียมกันในส่วนหัว FCGI ของพวกเขา (ลบด้วยตัวแปร env ที่เกี่ยวข้องกับผู้ใช้ที่ยังคงตั้งค่าโดยเชลล์)
9 php  nginx  php-fpm  fastcgi 

2
ทำไมต้อง“ proxy_pass_header Server”
ฉันเพิ่งเริ่มใช้ NGINX และฉันเห็นในตัวอย่างการกำหนดค่าที่ผู้คนใช้ proxy_pass_header Server; เมื่อพร็อกซี่ส่งคำขอไปยังเซิร์ฟเวอร์ upstream ที่นี่ทำอะไรกันแน่ กรณีการใช้งานที่เป็นไปได้คืออะไร?
9 nginx 

6
PHP FPM ให้สิทธิ์ปฏิเสธหรือไม่
ฉันอ่านหลายรายการว่าทำไม PHP-FPM อาจให้สิทธิ์ฉันถูกปฏิเสธ แต่ฉันไม่สามารถแก้ไขได้ บันทึกข้อผิดพลาดอ่านเช่น: 2013/04/20 23:33:28 [crit] 15479#0: *6 open() "/var/lib/nginx/tmp/fastcgi /2/00/0000000002" failed (13: Permission denied) while reading upstream, client: 99.999.999.999, server: example.net, request: "GET /wp-admin/ HTTP/1.1", upstream: "fastcgi://unix:/tmp/php-fpm.sock:", host: "example.net", referrer: "http://example.net/" ฉันเล็กน้อย แต่แพ้: ฉันได้ตั้ง / var / lib / nginx / tmp เป็นผู้ใช้ ec2 (ฉัน +777 ทุกอย่างเพื่อตรวจสอบ) …

2
Nginx และ PHP-FPM ขาดการเชื่อมต่อ
ฉันพบข้อผิดพลาดเช่นนี้ต่อไป [02-Jun-2012 01:52:04] WARNING: [pool www] seems busy (you may need to increase pm.start_servers, or pm.min/max_spare_servers), spawning 8 children, there are 19 idle, and 49 total children [02-Jun-2012 01:52:05] WARNING: [pool www] seems busy (you may need to increase pm.start_servers, or pm.min/max_spare_servers), spawning 16 children, there are 19 idle, and …
9 nginx  php-fpm 

2
ฉันสามารถนามแฝงคำขอไดเรกทอรีทั้งหมดไปยังไฟล์เดียวใน nginx ได้หรือไม่
ฉันพยายามหาวิธีนำคำขอทั้งหมดไปยังไดเรกทอรีเฉพาะและคืนค่าสตริง json โดยไม่เปลี่ยนเส้นทางใน nginx ตัวอย่าง: curl -i http://example.com/api/call1/ ผลลัพธ์ที่คาดหวัง: HTTP/1.1 200 OK Accept-Ranges: bytes Content-Type: application/json Date: Fri, 13 Apr 2012 23:48:21 GMT Last-Modified: Fri, 13 Apr 2012 22:58:56 GMT Server: nginx X-UA-Compatible: IE=Edge,chrome=1 Content-Length: 38 Connection: keep-alive {"logout": true} นี่คือสิ่งที่ฉันมีจนถึงตอนนี้ใน nginx conf: location ~ ^/api/(.*)$ { index /api_logout.json; alias …

2
โซลูชั่นการจัดการ API [ปิด]
ปิด. คำถามนี้เป็นคำถามปิดหัวข้อ ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้เป็นไปตามหัวข้อสำหรับข้อบกพร่องของเซิร์ฟเวอร์ ปิดให้บริการใน6 ปีที่ผ่านมา ขณะนี้ฉันกำลังสร้าง API และกำลังมองหาเครื่องมือเพื่อให้ฉันสามารถตรวจสอบ (ใน GUI) และการใช้อัตรา จำกัด ฉันเจอโซลูชันระดับองค์กรสองสามอัน ได้แก่ : http://apigee.com/ http://mashery.com/ http://www.layer7tech.com/ http://www.3scale.net/ แผนองค์กร Apigee เป็นสิ่งที่ฉันกำลังมองหา แต่แผนเริ่มต้นที่ $ 3,000 / เดือนซึ่งอยู่นอกช่วงราคาของฉัน โซลูชันอื่นทั้งหมดมีราคาแพงเกินไปหรือไม่มีวิธีแก้ไขปัญหาที่ฉันกำลังมองหา สิ่งนี้ทำให้ฉันมองไปที่ตัวเลือกโอเพนซอร์ซรวมถึง: http://apiaxle.com/ https://code.google.com/p/varnish-apikey/wiki/UsageManual วานิชดูเหมือนจะเป็นวิธีการแก้ปัญหาที่ค่อนข้างสมบูรณ์ อย่างไรก็ตามฉันจะต้องสร้าง GUI เพื่อให้เห็นภาพข้อมูล ตัวเลือกสุดท้ายของฉันคือการสร้างโซลูชันตั้งแต่เริ่มต้นโดยใช้ EventMachine และ ruby คำแนะนำใด ๆ?

1
คุณจะตั้งค่า ENV เฉพาะเซิร์ฟเวอร์ใน Nginx ได้อย่างไร
ฉันกำลังเริ่มโครงการที่ใช้ตัวแปรสภาพแวดล้อมเพื่อตั้งค่าการเชื่อมต่อฐานข้อมูลและอีกสองอย่าง (พวกเขาไม่ต้องการใช้ไฟล์การกำหนดค่าเนื่องจากคนไม่สนใจและเขียนทับพวกเขา) อย่างไรก็ตามผมกำลังใช้ Nginx และในขณะที่จะสนับสนุน env - มันดูเหมือนจะไม่สนับสนุนมันได้ดีพอ คุณไม่สามารถตั้งค่า env บนพื้นฐานบล็อกต่อเซิร์ฟเวอร์ กล่าวอีกนัยหนึ่งสิ่งนี้จะไม่ทำงาน: server { listen 80; server_name domain; env FOO = "bar"; } คุณต้องทำสิ่งนี้: env FOO = "bar"; http { server { listen 80; server_name domain; } } ซึ่งหมายความว่าฉันไม่สามารถมีค่าเฉพาะ vhost ดังนั้นฉันต้องสร้างการกำหนดค่า vhost ทั้งหมดสำหรับแต่ละไซต์และเปิดใช้งานเฉพาะสิ่งที่ฉันต้องการในขณะนั้นเพื่อให้การตั้งค่าถูกต้อง มีวิธีใดบ้างในการแก้ไขปัญหานี้?

1
nginx ล้มเหลวในการแก้ไขชื่อต้นน้ำในการโหลดซ้ำแม้ว่าพวกเขาจะแก้ไขได้โดยระบบปฏิบัติการ
เมื่อโหลดการกำหนดค่าใหม่ (โดยเฉพาะสำหรับ proxy_pass) - บางครั้งสิ่งนี้จะเห็น: nginx: [ฉุกเฉิน] ไม่พบโฮสต์ในอัปสตรีม อย่างไรก็ตาม - ชื่อของเซิร์ฟเวอร์ upstream จะแก้ไขได้ในระบบปฏิบัติการ (linux) - เฉพาะ nginx ที่ดูเหมือนจะมีปัญหานี้ สิ่งนี้ดูเหมือนจะเป็นการถดถอยครั้งล่าสุดเนื่องจากดูเหมือนว่าจะไม่เกิดขึ้นก่อนหน้าเวอร์ชัน 1.0.10 มีใครสังเกตเห็นเมื่อเร็ว ๆ นี้? พยายาม จำกัด สถานที่ให้แคบลงเพื่อค้นหา
9 nginx  proxy 

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