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

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

2
การบล็อกตำแหน่ง nginx สามารถจับคู่สตริงการสืบค้น URL ได้หรือไม่
บล็อกnginx สามารถจับคู่สตริงข้อความค้นหา URL ได้หรือไม่location ตัวอย่างเช่นบล็อกตำแหน่งใดที่อาจตรงกับGETคำขอHTTP GET /git/sample-repository/info/refs?service=git-receive-pack HTTP/1.1
23 nginx  http 

3
อนุญาตเฉพาะผู้ใช้ท้องถิ่นใน nginx
ฉันต้องการ จำกัด การเข้าถึงสำหรับ VHosts บางอย่างเพื่อให้มีเพียง 127.0.0.1 เท่านั้นที่สามารถเข้าถึงได้ ฉันมักใช้สิ่งนี้เพื่อผูก VHost กับ localhost ไม่ใช่ IP ภายนอก: server { listen 127.0.0.1; server_name myvhost.local; location / { .... } } แต่ฉันสังเกตเห็นว่าบางบทช่วยสอนยังรวมถึงallowคำสั่งที่ชัดเจนสำหรับ localhost และปฏิเสธอย่างอื่นทั้งหมด: server { listen 127.0.0.1; server_name myvhost.local; location / { allow 127.0.0.1; deny all; ... } } allow/ denyคำสั่งเหล่านี้จำเป็นจริงๆเมื่อฉันฟังที่ 127.0.0.1 เท่านั้นหรือไม่?
22 nginx 

6
เพิ่มขนาดการอัพโหลด / โพสต์สูงสุดของ PHP-FPM
ฉันใช้ php5-fpm ภายใต้ Nginx บน Ubuntu 14.04 ฉันต้องการเพิ่มขนาดการอัปโหลดสูงสุด ฉันได้แก้ไข/etc/php5/fpm/php.iniเพื่อให้บรรทัดต่อไปนี้มีการกำหนดไว้ด้านล่าง upload_max_filesize = 20M post_max_size = 25M และฉันรีสตาร์ท php5-fpm และ nginx แต่phpinfo()ยังคงแสดงข้อ จำกัด ที่ 8M และ 2M สำหรับโพสต์และอัปโหลดตามลำดับ มีอะไรที่ฉันพลาดไปไหม
22 nginx  php-fpm  php.ini 

2
ย้อนกลับพร็อกซี nginx - ลองอัปสตรีม A จากนั้น B จากนั้น A อีกครั้ง
ฉันกำลังพยายามตั้งค่า nginx เป็น reverse proxy พร้อมเซิร์ฟเวอร์ backend จำนวนมาก ฉันต้องการเริ่มต้นแบ็กเอนด์ตามคำขอ (ตามคำขอแรกที่เข้ามา) ดังนั้นฉันจึงมีกระบวนการควบคุม (ควบคุมโดยคำขอ HTTP) ซึ่งเริ่มต้นแบ็กเอนด์ขึ้นอยู่กับคำขอที่ได้รับ ปัญหาของฉันคือการกำหนดค่า nginx ให้ทำ นี่คือสิ่งที่ฉันมี: server { listen 80; server_name $DOMAINS; location / { # redirect to named location #error_page 418 = @backend; #return 418; # doesn't work - error_page doesn't work after redirect try_files /nonexisting-file @backend; …
22 nginx  failover 

3
โซลูชัน Nginx สำหรับการตรวจสุขภาพของ AWS Amazon ELB - ส่งคืน 200 โดยไม่มี IF
ฉันมีรหัสต่อไปนี้ที่ทำงานบน Nginx เพื่อให้การตรวจสุขภาพ AWS ELB มีความสุข map $http_user_agent $ignore { default 0; "ELB-HealthChecker/1.0" 1; } server { location / { if ($ignore) { access_log off; return 200; } } } ฉันรู้ว่า 'IF' ดีที่สุดในการหลีกเลี่ยงกับ Nginx และฉันต้องการถามว่ามีใครรู้วิธีการบันทึกสิ่งนี้โดยไม่ใช้คำว่า 'if' หรือไม่? ขอขอบคุณ

2
วานิชกับ nginx นั้นดีกว่าการใช้ nginx หรือไม่? [ปิด]
ตามที่เป็นอยู่ในปัจจุบันคำถามนี้ไม่เหมาะสำหรับรูปแบบคำถาม & คำตอบของเรา เราคาดหวังคำตอบที่จะได้รับการสนับสนุนจากข้อเท็จจริงการอ้างอิงหรือความเชี่ยวชาญ แต่คำถามนี้จะเรียกร้องให้มีการอภิปรายโต้แย้งโต้แย้งหรือการอภิปรายเพิ่มเติม หากคุณรู้สึกว่าคำถามนี้สามารถปรับปรุงและเปิดใหม่ได้โปรดไปที่ศูนย์ช่วยเหลือเพื่อขอคำแนะนำ ปิดให้บริการใน7 ปีที่ผ่านมา ฉันเห็นจำนวนมากพูดคุยเกี่ยวกับการใช้ nginx กับวานิชและฉันไม่เข้าใจว่าทำไม ไม่เพียงพอหรือไม่ Nginx มี SSI, มี reverse proxy cache, มีน้ำหนักเบา, มี SSL, สามารถทำงานกับ cgi, fpm, เป็นต้น วานิชมีสิ่งเดียวกัน แต่ไม่มี ssl และไม่สนับสนุน cgi
22 nginx  varnish 

5
Nginx set_real_ip_from ที่อยู่ตัวโหลดบาลานซ์ของ AWS ELB
ฉันมีชุดเซิร์ฟเวอร์ Nginx ที่อยู่เบื้องหลังโหลดบาลานซ์ของ Amazon ELB ฉันใช้ set_real_ip (จากHttpRealIpModule ) เพื่อให้ฉันสามารถเข้าถึงที่อยู่ IP ไคลเอนต์ต้นทางบนเซิร์ฟเวอร์เหล่านี้ (สำหรับการส่งผ่านไปยัง php-fpm และใช้ในHttpGeoIPModule ) ดูเหมือนว่าset_real_ip_fromในการกำหนดค่า nginx สามารถยอมรับที่อยู่ IP เท่านั้น อย่างไรก็ตามเกี่ยวกับเครื่อง ELB Amazon พูดว่า: หมายเหตุ: เนื่องจากชุดของที่อยู่ IP ที่เชื่อมโยงกับ LoadBalancer สามารถเปลี่ยนแปลงได้ตลอดเวลาคุณจึงไม่ควรสร้างระเบียน "A" ด้วยที่อยู่ IP ใด ๆ หากคุณต้องการใช้ชื่อ DNS ที่เป็นมิตรสำหรับ LoadBalancer ของคุณแทนชื่อที่สร้างโดยบริการ Elastic Load Balancing คุณควรสร้างระเบียน CNAME สำหรับชื่อ DNS LoadBalancer หรือใช้ …


2
การกำหนดค่า Nginx: Front-End Reverse Proxy ไปยังพอร์ตอื่น
ฉันมีเว็บเซิร์ฟเวอร์ขนาดเล็กที่ให้บริการการร้องขอบนพอร์ต 5010 มากกว่า 80 ฉันต้องการใช้ nginx เป็น front end proxy เพื่อรับคำร้องขอบนพอร์ต 80 จากนั้นปล่อยให้คำร้องขอเหล่านั้นถูกจัดการโดยพอร์ต 5010 ฉันติดตั้ง nginx เรียบร้อยแล้วและทำงานได้อย่างราบรื่นบน Ubuntu Karmic แต่ความพยายามของฉันในการกำหนดค่าเริ่มต้น nginx.conf ไม่สำเร็จ ฉันพยายามรวมไว้ในเซิร์ฟเวอร์ directive เพื่อฟังอาร์กิวเมนต์สำหรับพอร์ต 5010 ฉันได้ลองสั่ง proxy_pass ด้วย คำแนะนำเกี่ยวกับการเปลี่ยนแปลงที่จำเป็นต้องทำหรือคำสั่งที่จำเป็นต้องตั้งค่าเพื่อให้มีเพียงการส่งต่อพอร์ต

2
สัญลักษณ์ตัวแทน / regex ในพา ธ ตำแหน่ง
config Nginx ฉันมี 404 .phpเช่น: ## Any other attempt to access PHP files returns a 404. location ~* ^.+\.php$ { return 404; } อย่างไรก็ตามฉันมีไฟล์ index.php อยู่ในโฟลเดอร์ย่อยที่ฉันต้องการเรียกใช้ การกำหนดค่าปัจจุบันมีลักษณะดังนี้: location = /sitename/subpage/index.php { fastcgi_pass phpcgi; #where phpcgi is defined to serve the php files } location = /sitename/subpage2/index.php { fastcgi_pass phpcgi; } …
22 nginx  regex  wildcard 

5
ฉันจะบังคับให้ NGINX โหลดไฟล์คงที่ใหม่ได้อย่างไร
ฉันเพิ่งผลักการอัปเดตที่สำคัญไปยังไซต์และฉันมีปัญหาที่บางคนไม่สามารถเข้าสู่ระบบได้เนื่องจากเบราว์เซอร์ของพวกเขากำลังโหลดไฟล์จาวาสคริปต์เก่า บางสิ่งที่ฉันทำรวมถึง: แคชใช้งานไฟล์จาวาสคริปต์ทั้งหมด ตั้งเป็นsendfile offnginx.conf ตั้งอยู่expires 1sใน mysite.conf ตั้งค่าส่วนหัวของ Cache-Control อย่างชัดเจน: add_header Cache-Control no-cache; ร้องเป็นไฟล์ conf ของฉันสำหรับ nginx ความช่วยเหลือใด ๆ ที่จะได้รับการชื่นชมมาก /etc/nginx/sites-enabled/mysite.conf proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=one:8m max_size=3000m inactive=600m; server { listen 80; server_name mysite.com; return 301 https://www.mysite.com$request_uri; } server { # listen for connections on all hostname/IP and at TCP …
22 nginx  cache 

3
มีไฟล์ที่เปิดด้วย nginx มากเกินไปดูเหมือนจะเพิ่มขีด จำกัด ไม่ได้
เซิร์ฟเวอร์คือ Ubuntu 13.04 (GNU / Linux 3.9.3-x86_64-linode33 x86_64) nginx คือ nginx / 1.2.6 ฉันทำงานนี้มาหลายชั่วโมงแล้วดังนั้นนี่คือสิ่งที่ฉันได้รับและนี่คือสิ่งที่ฉันทำ tail -f /usr/local/nginx/logs/error.log 2013/06/18 21:35:03 [crit] 3427#0: accept4() failed (24: Too many open files) 2013/06/18 21:35:04 [crit] 3427#0: accept4() failed (24: Too many open files) 2013/06/18 21:35:04 [crit] 3427#0: accept4() failed (24: Too many open files) …

5
ฉันจะระบุพา ธ ของไฟล์ Windows ใน nginx ได้อย่างไร
ฉันใช้ nginx รุ่น windows อย่างเป็นทางการ ฉันต้องการระบุ windows ที่เทียบเท่ากับการกำหนดค่านี้ location /static/ { alias /home/user/staticfiles/; } ฉันจะระบุพา ธ ของไฟล์ windows ในคำสั่ง alias ได้อย่างไร เป็นไปได้ไหม
22 windows  nginx 

3
ปิดใช้งาน TLS 1.0 ใน NGINX
ฉันมี NGINX ซึ่งทำหน้าที่เป็นพร็อกซีย้อนกลับสำหรับไซต์ของเราและทำงานได้ดีมาก สำหรับเว็บไซต์ที่ต้องการ ssl ฉันติดตามraymii.orgเพื่อให้แน่ใจว่าได้คะแนน SSLLabs ที่แข็งแกร่งที่สุดเท่าที่จะทำได้ หนึ่งในไซต์ต้องเป็นไปตามมาตรฐาน PCI DSS แต่จากการสแกน TrustWave ล่าสุดนั้นล้มเหลวเนื่องจาก TLS 1.0 เปิดใช้งานอยู่ ในระดับ http ใน nginx.conf ฉันมี: ssl_protocols TLSv1 TLSv1.1 TLSv1.2; สำหรับเซิร์ฟเวอร์เฉพาะฉันมี: ssl_protocols TLSv1.1 TLSv1.2; ฉันเปลี่ยน ciphers ย้ายสิ่งต่าง ๆ ออกจากระดับ http และไปยังเซิร์ฟเวอร์ไซต์ ssl แต่ละตัว แต่ไม่ว่าจะเกิดอะไรขึ้นเมื่อฉันเรียกใช้: openssl s_client -connect www.example.com:443 -tls1 ฉันได้รับการเชื่อมต่อที่ถูกต้องสำหรับ TLS 1.0 SSLLabs ทำให้การตั้งค่า …
22 nginx  tls  pci-dss 

6
Nginx การตั้งค่า server_names_hash_max_size และ server_names_hash_bucket_size
เราใช้ Nginx เป็น reverse proxy ให้ Apache ในบริการที่ให้เว็บไซต์ของตัวเอง เมื่อสร้างบัญชีระบบจะสร้างไฟล์ nginx conf ใหม่สำหรับโดเมนที่มีสองรายการหนึ่งรายการสำหรับพอร์ต 80 และอีกรายการสำหรับ 443 เรากำลังสังเกตเห็นว่าในทุก ๆ 30 โดเมนหรือมากกว่านั้นเราได้รับข้อผิดพลาด: Restarting nginx: nginx: [emerg] could not build the server_names_hash, you should increase either server_names_hash_max_size: 256 or server_names_hash_bucket_size: 64. ด้วยจำนวนโดเมน 200 โดเมนและที่เพิ่มขึ้นเราจึงต้องเพิ่มขนาดเซิร์ฟเวอร์_names_hash_maxเป็น 4112 และมีความกังวลว่าสิ่งนี้จะไม่ขยายใหญ่ขึ้น ฉันกำลังมองหาที่จะเข้าใจว่าการกำหนดค่าเหล่านี้ทำงานอย่างไรและการตั้งค่าที่เหมาะสมที่สุดคืออะไรเพื่อให้แน่ใจว่าเราสามารถเติบโตได้ถึงหลายพันโดเมนโดยใช้วิธีนี้ นอกจากนี้เมื่อขนาดแฮช nginx เริ่มใช้เวลาโหลดวินาทีซึ่งทำให้ระบบไม่สามารถใช้งานได้ในขณะที่รีสตาร์ท นี่คือการตั้งค่าโดยรวม (ทำงานบนเซิร์ฟเวอร์ Ubuntu 10.10 …
22 nginx 

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