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

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

1
วิธีกำหนดค่า PHP-FPM บน NGINX ให้เขียนลงในไฟล์บันทึกต่อ virtualhost
ฉันมี Fedora 16 กับ Nginx และ PHP-FPM ทุกอย่างทำงานได้ดีมาก บันทึกทั้งหมดที่มีประกาศ PHP, คำเตือนข้อผิดพลาดอื่น ๆ /var/log/php-fpm/www-error.logที่อยู่ใน มีวิธีกำหนดค่า PHP-FPM ให้เขียนข้อผิดพลาดในไฟล์บันทึกที่เหมาะสมซึ่งกำหนดค่าเป็นบันทึกข้อผิดพลาดสำหรับ Nginx หรือไม่ ดังนั้นฉันต้องการบันทึกข้อผิดพลาด PHP ต่อ virtualhostไม่ใช่ไฟล์เดียวทั่วโลก (เหมือนใน Apache Httpd และ PHP)
11 linux  nginx  logging  php-fpm 

1
ฉันจะทำให้ nginx รู้จักไดเรกทอรีที่มีช่องว่างในชื่อได้อย่างไร
ฉันต้องการย้ายเว็บไซต์จาก / var / www / WebSite ไปยัง / media / Backed เว็บไซต์ / เว็บไซต์ ฉันไม่สามารถทำให้ nginx รู้จักไดเรกทอรี "Backed Website" พยายามด้วยคำพูดด้วย \ แต่ไม่ประสบความสำเร็จ ความคิดใด ๆ เป็นไปได้ไหม
11 nginx 

1
ทำไมโมดูล Precompression ของ Nginx Gzip จึงไม่ทำงาน
ขณะนี้ฉันกำลังพยายามตั้งค่า Nginx เพื่อให้บริการไฟล์คงที่ทั้งหมดของฉัน เนื่องจากพวกเขาจะไม่ถูกเปลี่ยนแปลงบ่อยมากเลยฉันต้องการให้เราโมดูล gzip_static เพื่อให้ฉันสามารถคัดลอกไฟล์ gzip ล่วงหน้าเพื่อประหยัดเวลาของซีพียูและให้การบีบอัดที่ดีขึ้น ฉันรวบรวม Nginx ด้วย--with-http_gzip_static_moduleและตั้งค่าเพื่อให้บริการไฟล์สแตติกของฉันโดยไม่มีปัญหา ฉันต้องการที่จะทดสอบและตรวจสอบให้แน่ใจว่า gzipping คงเป็นจริงการทำงานดังนั้นฉันทำสองไฟล์และtest.txt test.txt.gzบรรทัดแรกของแต่ละไฟล์บอกว่าพวกเขาเป็น gzipped หรือไม่แล้วมีบรรทัดใหม่และอักขระสุ่ม 256 ตัว (แตกต่างกันระหว่างสองไฟล์) ฉันได้อ่านว่าเวลาในการแก้ไขไฟล์และไฟล์ gzipped ควรเท่ากันและฉันได้ลองทั้งสองอย่างต่อไปนี้: touch test.* touch -r test.txt test.txt.gx บนเครื่องของฉันฉันกำลังทดสอบกับขด: curl $URL/test.txt ใช้งานได้ดีฉันกลับเวอร์ชันที่ฉันไม่ได้บีบอัดไว้ล่วงหน้า แต่เมื่อฉันทำสิ่งนี้: curl -H "Accept-Encoding: gzip" $URL/test.txt | gunzip ฉันยังได้รับกลับมารุ่นผมไม่ได้ precompress ฉันลองตั้งค่าgzip offของฉันnginx.confแต่ก็ไม่ได้สร้างความแตกต่าง ฉันได้รวบรวม Nginx อีกครั้งด้วย--without-http_gzip_moduleและดูเหมือนว่าจะไม่สร้างความแตกต่างเช่นกัน Nginx ยังคงเก็บสิ่งต่าง …
11 nginx  gzip 

1
nginx: [ฉุกเฉิน] คำสั่งที่ไม่รู้จัก“ http”
เมื่อฉันพยายามสร้างรหัสเช่นนี้: 1. http { 2. script 3. server { 4. ... 5. location ... 6. } 7. } ฉันได้รับข้อผิดพลาด: nginx: [emerg] unknown directive "http" in /etc/nginx/conf.d/nginx.conf:1 เมื่อรหัสเป็นเช่นนี้: 1. server { 2. ... 3. location ... 4. script 5. } 6. server { 7. ... 8. location .... 9. script 10. …
11 nginx  http 

2
ฉันจะตั้งค่าโฮสต์เริ่มต้นสำหรับ nginx ได้อย่างไร
ฉันกำลังพยายามหาวิธีตั้งค่าโฮสต์เริ่มต้นสำหรับการติดตั้ง nginx ของฉัน ฉันพบบทความนี้ใน nginx Wiki: http://wiki.nginx.org/NginxVirtualHostExample#A_Default_Catchall_Virtual_Host น่าเสียดายที่มันใช้ไม่ได้ หลังจากรีสตาร์ทฉันได้รับสิ่งนี้: Restarting nginx: nginx: [emerg] unknown directive "http" in /etc/nginx/sites-enabled/catchall:1 nginx: configuration file /etc/nginx/nginx.conf test failed หลังจากลบคำสั่ง http ฉันได้รับ: Restarting nginx: nginx: [emerg] unknown log format "main" in /etc/nginx/sites-enabled/catchall:7 nginx: configuration file /etc/nginx/nginx.conf test failed ฉันใช้ Ubuntu 10.04.3 ซึ่งฉันใช้ nginx PPA อย่างเป็นทางการ …
11 ubuntu  nginx 

3
Nginx ควรอยู่ด้านหน้า HAProxy หรือตรงข้ามหรือไม่?
ฉันมีประสบการณ์น้อยในการออกแบบสถาปัตยกรรมโครงสร้างพื้นฐานของเว็บไซต์ ฉันรู้ว่ามันอาจจะเป็นสถานการณ์ที่เฉพาะเจาะจง เว็บไซต์ควรจะ: 1) ต้องการการสนับสนุน HTTPS สำหรับบางหน้า (เช่นหน้าเข้าสู่ระบบ) ในขณะที่หน้าอื่น ๆ เป็นเพียงหน้า HTTP 2) ต้องการเว็บเซิร์ฟเวอร์หลายเครื่องเพื่อให้โหลดบาลานซ์บางตัวจำเป็นต้องมี 3) ต้องการแคชและการบีบอัด HTTP เพื่อเพิ่มประสิทธิภาพ 4) คำขอบางอย่าง (เช่นการอัปโหลดรูปภาพ) ควรกำหนดเส้นทางไปยังเซิร์ฟเวอร์เบื้องหลังเฉพาะ ดังนั้นจำเป็นต้องมีการปรับสมดุลตาม URL ฉันรู้ว่า NginX และ HAProxy มีทั้ง Reverse Proxy และ / หรือ Load Balancer ที่ดี เนื่องจาก HAProxy ไม่รองรับ SSL ในขณะที่ Nginx load balancing นั้นไม่ดีเท่า HAProxy ฉันจะรับทั้งสองอย่าง ดังนั้นฉันควรใส่ Nginx …

3
เมื่อใดที่ฉันควรเปลี่ยนเป็น NGinx
ฉันมีเซิร์ฟเวอร์ที่มีหลายโดเมนและแอปพลิเคชันทำงานอยู่ทั้งหมดผ่าน Apache ทุกอย่างเป็นไปด้วยดีในขณะนี้ แต่ฉันมีแผนที่จะพัฒนาเว็บแอปพลิเคชั่นที่เน้นประสิทธิภาพมาก (ใช้ C ++ กับ CPPCMS) เริ่มต้นจากเซิร์ฟเวอร์ของฉันเพื่อทำการทดสอบบางทีอาจจะได้รับเซิร์ฟเวอร์แยกต่างหาก ไม่ว่าด้วยวิธีใดฉันได้ยินข่าวเกี่ยวกับ NGinx มากมายซึ่งดูเหมือนว่าจะมีประสิทธิภาพมากกว่า Apache ดังนั้นฉันจึงถามตัวเองว่ามันคุ้มค่ากับการทำงานกับโครงการใหม่หรือไม่ มันไม่ชัดเจนในใจของฉันเพราะฉันไม่รู้ว่าคอขวดประสิทธิภาพการทำงานชนิดใด NGinx แก้ไขได้อย่างแน่นอน ฉันไม่ใช่ผู้ใช้พลังงานของ Apache ฉันเป็นผู้ดูแลระบบ linux ที่ไม่ดีและฉันไม่ได้พัฒนาเว็บแอปมากนัก (แต่ฉันมีพัฒนาการ) ฉันทุ่มเทเพื่อการเขียนซอฟต์แวร์เป็นส่วนใหญ่ดังนั้นบางครั้งส่วนเว็บเซิร์ฟเวอร์ก็ไม่ชัดเจนสำหรับฉัน ทุกครั้งที่ฉันต้องกำหนดค่าเว็บไซต์ผ่าน apach ฉันต้องใช้เวลามากในการค้นหาเอกสารเพื่อให้แน่ใจว่าฉันจะไม่ทำลายทุกสิ่ง ที่ถูกกล่าวว่าฉันคิดว่าฉันดีขึ้นมากในด้านนี้ แต่ยังต้องการคำแนะนำ ฉันได้เห็นไฟล์การกำหนดค่า nginx อยู่รอบ ๆ และดูเหมือนว่าจะเข้าใจได้ดีกว่า Apache มากกว่า แต่บางทีฉันผิด จากข้อมูลที่ฉันรวบรวม NGinx จะเป็นตัวเลือกที่ดีที่สุดเมื่อคุณต้องการโหลดบาลานซ์ดังนั้นหากคุณมีแอปพลิเคชันของคุณกระจายอยู่ในเครื่องหลายเครื่องใช่ไหม ขณะที่ฉันกำลังคิดว่าแอปพลิเคชันของฉันสำหรับการ scalling (และการแสดง) ดูเหมือนว่าเป็นสิ่งที่ฉันต้องการ แต่บางทีฉันอาจต้องรู้เพิ่มเติมเกี่ยวกับสิ่งที่น่าสนใจเมื่อต้องย้ายจาก Apache ไปยัง NGinx มันคุ้มค่าที่จะเปลี่ยนมาใช้ …
11 apache-2.2  nginx 

4
Nginx ขาดอะไรบ้างที่ Apache มี?
Nginx ถูกกล่าวว่าเป็นทรัพยากรที่มีประสิทธิภาพและตั้งค่าได้ง่ายกว่า Apache เพื่อนบอกฉันว่า "ไม่สามารถทำบางสิ่งที่ Apache สามารถทำได้ แต่ฉันไม่ต้องการสิ่งเหล่านั้น" กระนั้นฉันก็ยังสงสัยว่า Apache ชนิดใดที่ Nginx ทำไม่ได้ ฉันไม่ต้องการรายการที่ละเอียดถี่ถ้วนเพียงแนวคิดทั่วไปของสถานการณ์ที่ Apache น่าจะเป็นทางเลือกที่ดีกว่า
11 apache-2.2  nginx 

5
Nginx - กำหนดเส้นทางคำขอทั้งหมดไปยังสคริปต์เดียว
ฉันมีสคริปต์ PHP ที่จัดการการกำหนดเส้นทางสคริปต์และทำสิ่งที่แปลกใหม่ เดิมทีมันถูกออกแบบมาสำหรับ Apache แต่ฉันพยายามที่จะโยกย้ายไปยัง nginx สำหรับกล่องบางส่วนของฉัน ตอนนี้ฉันกำลังพยายามทำให้ทุกอย่างราบรื่นบนเซิร์ฟเวอร์ทดสอบ ดังนั้นวิธีที่สคริปต์ทำงานคือมันสกัดกั้นปริมาณการรับส่งข้อมูล HTTP ทั้งหมดสำหรับไดเรกทอรี (ใน Apache) โดยใช้.htaccessไฟล์ นี่คือสิ่งที่ดูเหมือนว่า: <IfModule mod_rewrite.c> RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^.+$ index.php [L] </IfModule> ค่อนข้างตรงไปตรงมา คำขอทั้งหมดจะดำเนินการผ่านindex.phpธรรมดาและเรียบง่าย ฉันต้องการเลียนแบบพฤติกรรมนั้นใน nginx แต่ฉันยังไม่พบวิธี ใครมีคำแนะนำบ้าง? นี่คือสำเนาnginx.confไฟล์ของฉันในขณะนี้ โปรดทราบว่ามันถูกออกแบบมาสำหรับฉันเพียงแค่พยายามทำให้มันใช้งานได้ ส่วนใหญ่เป็นงานคัดลอก / วาง user www-data; worker_processes 1; error_log /var/log/nginx/error.log; pid /var/run/nginx.pid; …
11 php  nginx 

3
มีวิธีการหลีกเลี่ยงข้อผิดพลาดที่ต้องใช้ความยาวเนื้อหา nginx 411 หรือไม่?
ฉันได้รับสถานะ 411 จาก nginx เมื่อพยายามทำ PUT โดยไม่ระบุความยาวของเนื้อหา มีวิธีใดในการปิดใช้งานสิ่งนี้ไม่ให้เกิดขึ้น
11 nginx 

2
Nginx - ให้บริการเนื้อหาคงที่จากโดเมนที่ไม่มีเนื้อหา
ฉันใช้ส่วนขยาย " ความเร็วหน้า " สำหรับFirebugเพื่อพยายามเพิ่มประสิทธิภาพเว็บไซต์และฉันกำลังทำงานตามคำแนะนำต่อไปนี้: "ให้บริการเนื้อหาคงที่จากโดเมนที่ปรุงไม่ได้ " ฉันสร้างโดเมนย่อยแยกต่างหากสำหรับเนื้อหาบางส่วนเพื่อให้มีwww.example.comและimages.example.comแต่ฉันจะระบุได้อย่างไรว่าimages.example.comไม่มีเนื้อหาใด ๆ ฉันสามารถบังคับให้มันเป็นสิ่งที่ไม่น่าทำในเว็บเซิร์ฟเวอร์เช่น Nginx หรือ Apache หรือเป็นเรื่องง่ายที่จะไม่ตั้งคุกกี้ใด ๆ ในโดเมนนี้ในรหัสเซิร์ฟเวอร์ (เช่น PHP) เหตุผลที่ฉันถามเพราะ "Page Speed" ยังคงแสดงคำแนะนำเดียวกันแม้หลังจากที่ฉันพยายามแก้ไขแล้ว - ดังนั้นฉันเดาว่าคุกกี้บางตัวต้องเลื่อนผ่าน ฉันไม่เห็นคุกกี้ใด ๆ ในการค้นหาคุกกี้เบราว์เซอร์ของฉัน แต่ถ้าฉันตรวจสอบส่วนหัว HTTP ของทรัพยากรฉันจะเห็น: Cookie __utma=73051794.676740941.1271792323.1277710025.1277900715.20; __utmz=73051794.1271792323.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none); __utmx=73051794.00009825591030858779:3:0; __utmxx=73051794.00009825591030858779:2295429:2592000; __gads=ID=0a768e3407302ff8:T=1272608001:S=ALNI_MZ-GKhg3ETniU0TVftk0DdGyUypkQ ใครรู้ว่าฉันสามารถหยุดคุกกี้จากโดเมนย่อยของฉันได้อย่างไร

5
บันทึกข้อผิดพลาด nginx มีขนาดใหญ่มากดังนั้นฉันจึงลบและสร้างขึ้นใหม่ตอนนี้ nginx จะไม่เริ่มทำงาน
ฉันลบไฟล์/var/log/nginx/error.logแล้วสร้างขึ้นใหม่โดยใช้: sudo nano error.log ทำls -laแสดงให้เห็นว่าerror.logและaccess.logมีสิทธิ์ที่เหมือนกัน เมื่อฉันลองและเริ่ม nginx ฉันได้รับข้อผิดพลาด: การแจ้งเตือน: ไม่สามารถเปิดไฟล์บันทึกข้อผิดพลาด: open () "/var/log/nginx/error.log" สิทธิ์ที่ล้มเหลวถูกปฏิเสธ ปรับปรุง เมื่อพยายามเริ่ม nginx ฉันก็เห็น: ฉุกเฉิน: /var/run/nginx.pid ล้มเหลว 13: สิทธิ์ถูกปฏิเสธ

2
เมื่อกำหนดค่า nginx เป็น reverse proxy จะสามารถเขียนส่วนหัวของโฮสต์ไปยังเซิร์ฟเวอร์ดาวน์สตรีมเช่น ProxyPreserveHost ของ Apache ได้หรือไม่?
ฉันไม่สามารถหาเทียบเท่าของ ProxyPreserveHost ของ Apache ได้http://httpd.apache.org/docs/2.0/mod/mod_proxy.html#proxypreservehostตัวเลือกใน nginx นี่เป็นสิ่งจำเป็นเพื่อย้อนกลับพร็อกซีไปยังโฮสต์เสมือน มันทำอะไรแทนชื่อโฮสต์ที่เบราว์เซอร์ระบุด้วยชื่อโฮสต์ของเซิร์ฟเวอร์ดาวน์สตรีม มันมีอยู่หรือไม่

3
ไม่รู้จักคำสั่ง“ สตรีม” ใน /etc/nginx/nginx.conf:86
ฉันมีnginx/1.12.0และตามเอกสารมันมีstreamโมดูล ฉันติดตั้ง nginx ด้วยคำสั่งต่อไปนี้ sudo add-apt-repository ppa:nginx/stable sudo apt-get update sudo apt-get install nginx nginx -v nginx version: nginx/1.12.0 ฉันพยายามเพิ่มคำสั่งสตรีมในnginx.conf: stream { upstream sys { server 172.x.x.x:9516; server 172.x.x.x:9516; } server { listen 9516 udp; proxy_pass sys; } } แต่เมื่อฉันเริ่มnginxฉันได้รับข้อผิดพลาดด้านล่างในnginxบันทึก unknown directive "stream" in /etc/nginx/nginx.conf:86 nginx -V output nginx version: …
11 nginx  stream 

3
ทำไมเซิร์ฟเวอร์ของฉันไม่รองรับ ALPN
ฉันใช้เซิร์ฟเวอร์ LTS Ubuntu 16.04.1 โดยใช้ NGINX 1.11.9 และ openssl 1.0.2g ตามที่ทุกอย่างที่ฉันอ่านรุ่นเหล่านี้ควรสนับสนุน ALPN แต่เมื่อฉันรันการทดสอบเครื่องมือทดสอบ HTTP / 2 ของ KeyCDNฉันได้รับ "ไม่รองรับ ALPN" และเมื่อฉันดำเนินการecho | openssl s_client -alpn h2 -connect example.com:443 | grep ALPNฉันจะได้รับ: depth=3 C = SE, O = AddTrust AB, OU = AddTrust External TTP Network, CN = AddTrust External CA …

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