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

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

5
การหมดเวลาของ NGINX หลังจากการเชื่อมต่อพร้อมกัน +200
นี่คือของฉันnginx.conf(ฉันได้อัปเดตการกำหนดค่าเพื่อให้แน่ใจว่าไม่มี PHP ที่เกี่ยวข้องหรือคอขวดอื่น ๆ ): user nginx; worker_processes 4; worker_rlimit_nofile 10240; pid /var/run/nginx.pid; events { worker_connections 1024; } http { include /etc/nginx/mime.types; error_log /var/www/log/nginx_errors.log warn; port_in_redirect off; server_tokens off; sendfile on; gzip on; client_max_body_size 200M; map $scheme $php_https { default off; https on; } index index.php; client_body_timeout 60; client_header_timeout 60; …

6
ทำไมไฟล์ PHP ถึงถูกดาวน์โหลดแทนที่จะประมวลผลโดย Nginx
ฉันได้เห็นปัญหาเดียวกันและความละเอียดหลายประการที่ชี้ไปที่การเพิ่มตัวจัดการประเภท แต่นั่นก็สำหรับ Apache ฉันใช้ Arch Linux, Nginx, PHP และ PHP-FMP และฉันไม่สามารถหาสาเหตุที่ไฟล์ php ดาวน์โหลดแทนที่จะทำงาน นี่คือ nginx.conf ของฉัน: #user http; worker_processes 1; #error_log logs/error.log; #error_log logs/error.log notice; #error_log logs/error.log info; #pid logs/nginx.pid; events { worker_connections 1024; } http { include mime.types; default_type application/octet-stream; #log_format main '$remote_addr - $remote_user [$time_local] "$request" ' # …
12 php  nginx  php-fpm 

1
อะไรคือสิ่งที่เทียบเท่ากับ Apache ของ try_files ของ Nginx?
ใน Nginx มีtry_filesคำสั่ง config ที่ "ตรวจสอบการมีอยู่ของไฟล์ตามลำดับและส่งคืนไฟล์แรกที่พบ" ฉันคิดว่ามันเรียบร้อยมากในการทำเช่นนี้ location ~* \.(gif|jpe?g|css|js)$ { try_files $uri 404; } ซึ่งเป็นวิธีที่ปลอดภัยในการให้บริการไฟล์คงที่โดยตรงโดยไม่รบกวนกรอบเว็บ ฉันจะทำสิ่งเดียวกันใน Apache ได้อย่างไร
12 apache-2.2  nginx 

1
ตัวแปรในชื่อบันทึก - nginx
ฉันมีการตั้งค่าเซิร์ฟเวอร์เริ่มต้นต่อไปนี้ใน nginx: # Default HTTP Server server { listen 80 default; server_name _; access_log /var/log/nginx/$server_name.access.log; error_log /var/log/nginx/$server_name.error.log; server_name_in_redirect off; location / { root domain.com/public; index index.php; try_files $uri index.php; } location ~ \.(html|jpg|jpeg|gif|png|ico|css2|zip|tgz|gz|rar|bz2|doc|xls|exe|pdf|ppt|txt|tar|mid|midi|wav|bmp|rtf|js)$ { root /path/to/domain.com/public; expires 30d; break; } charset utf-8; location ~ \.php$ { include /opt/nginx/conf/fastcgi_params; fastcgi_pass 127.0.0.1:9000; …
12 nginx 

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

4
กฎ nginx ที่แตกต่างกันตามผู้อ้างอิง
ฉันใช้ WordPress กับ WP Super Cache ฉันต้องการผู้เข้าชมที่มาจาก Google (นั่นรวมถึงผู้อ้างอิงเฉพาะทุกประเทศเช่น google.co.in, google.co.uk และอื่น ๆ ) เพื่อดูเนื้อหาที่ไม่ได้ล้าง มีกฎ nginx ของฉันที่ไม่ทำงานตามที่ฉันต้องการ: server { server_name website.com; location / { root /var/www/html/website.com; index index.php; if ($http_referer ~* (www.google.com|www.google.co) ) { rewrite . /index.php break; } if (-f $request_filename) { break; } set $supercache_file ''; set …

2
วิธีการตรวจสอบใน PHP ถ้ามันทำงานบน Apache, Nginx หรือเว็บเซิร์ฟเวอร์อื่น ๆ ? [ปิด]
ปิด. คำถามนี้เป็นคำถามปิดหัวข้อ ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้เป็นหัวข้อสำหรับข้อบกพร่องของเซิร์ฟเวอร์ ปิดให้บริการใน2 ปีที่ผ่านมา ก่อนอื่นฉันรู้ตัวแปรนี้: _SERVER["SERVER_SOFTWARE"] ในแอปพลิเคชันของฉันฉันต้องการตรวจสอบจากสคริปต์ PHP ที่เว็บเซิร์ฟเวอร์ทำงานอยู่ โดยทั่วไปจะเป็นปลั๊กอิน wordpress ซึ่งจะช่วยบล็อกเกอร์ปรับแต่งการกำหนดค่าบางอย่าง ฉันได้สร้างกระบวนการแยกต่างหากสำหรับ Apache & Nginx และคิดเกี่ยวกับการปล่อยโค้ดเป็น 2 wordpress plugin ที่ต่างกัน จากนั้นฉันก็อยากรู้ว่ามีวิธีการแบบ FULLPROOF ใน PHP เพื่อตรวจจับผู้ให้บริการเว็บอย่างไร้ที่ติหรือไม่ โปรดพิจารณาทุกกรณี :: Apache, Nginx, Apache + Nginx, PHP เป็นโมดูล Apache, PHP โดยใช้ fastcgi, php-fpm, lighttpd, IIS, ฯลฯ มันสำคัญมากสำหรับแอพพลิเคชั่นของฉันในการตรวจจับคอมโบและพร็อกซี่ที่มีอยู่ ขอบคุณ -Rahul

3
ข้อเสียของการใช้ nginx เป็นเว็บเซิร์ฟเวอร์หลักหรือไม่
ฉันเคยเห็นเว็บไซต์หลายล้านแห่งที่ใช้ nginx เป็นเว็บเซิร์ฟเวอร์ที่ทำงานร่วมกันกับ Apache แต่ฉันเห็นเซิร์ฟเวอร์น้อยมากที่ใช้ nginx เป็นเว็บเซิร์ฟเวอร์เริ่มต้นเท่านั้น อะไรคือข้อเสียหลักของการกำหนดค่าดังกล่าว? ฉันเห็นบางอย่าง: ไม่สามารถใช้ไฟล์กำหนดค่าต่อไดเรกทอรีเช่น. htaccess ดังนั้นทุกการเปลี่ยนแปลงการกำหนดค่าควรทำกับไฟล์กำหนดค่าเซิร์ฟเวอร์หลักและต้องการโหลดเซิร์ฟเวอร์ใหม่ แต่ pecl htscanner สามารถชดเชยการตั้งค่า php ได้ ไม่สามารถใช้งาน mod_php สำหรับ nginx ซึ่งสามารถชดเชยได้ด้วย php-fpm คนอื่นคืออะไร ทำไมคนไม่ปล่อย Apache และย้ายไปที่ nginx หรือโซลูชันที่มีน้ำหนักเบาอื่น ๆ อาจจะมีเหตุผลพิเศษบางอย่าง? แก้ไข: คำถามนี้เกี่ยวกับการทำงานกับ LAMP stack เป็นหลัก

4
วิธีที่เหมาะสมในการหมุนบันทึก Nginx
ฉันต้องการที่จะบรรลุการหมุนของบันทึก nginx ที่: จะทำงานโดยไม่มีซอฟต์แวร์พิเศษใด ๆ (เช่น - ดีที่สุดหากไม่มี "logrotate") จะสร้างไฟล์ที่หมุนด้วยชื่อตามวันที่ วิธีที่ดีที่สุดคือ PostgreSQL มี - นั่นคือในตัวแปร config ของ log_filename ฉันสามารถระบุรูปแบบ strftime-style% Y-% m-% d และมันจะเปลี่ยนวันที่เข้าสู่ระบบ (หรือเวลา) โดยอัตโนมัติ อีกวิธีหนึ่งจาก Apache - ส่งบันทึกผ่านไพพ์ไปยังโปรแกรม rotatelogs เท่าที่ฉันสามารถค้นหา - ไม่มีวิธีการดังกล่าวอยู่ สิ่งที่ฉันทำได้คือใช้ตัวเลือก logrotate กับ dateext แต่มีชุดข้อเสียของตัวเองและฉันอยากใช้สิ่งที่ทำงานเช่น | rotatelogs หรือ log_filename ใน PostgreSQL

6
ไฟล์เปล่า gif (1x1 pix) มีจุดประสงค์อะไร
ฉันเคยเห็นหน้าสุ่มกล่าวถึงการใช้ภาพ gif ที่ว่างเปล่าเพื่อเพิ่มประสิทธิภาพ ฉันยังพบว่า nginx มีโมดูลสำหรับวัตถุประสงค์นี้เท่านั้น สิ่งที่ฉันไม่สามารถเข้าใจได้ก็คือการให้บริการไฟล์ขนาดเล็กนี้ควรเพิ่มประสิทธิภาพหรือรับการตอบสนองจากเว็บเซิร์ฟเวอร์ ใครช่วยให้ฉันเข้าใจถึงประโยชน์

2
symgin แคช Nginx
ฉันมีระบบการปรับใช้บนเว็บเซิร์ฟเวอร์ของฉันทุกครั้งที่มีการปรับใช้แอพมันจะสร้างไดเรกทอรีเวลาบันทึกใหม่และ symlink "ปัจจุบัน" ไปยังไดเรกทอรีใหม่ ทั้งหมดนี้ใช้งานได้ดีและยอดเยี่ยมใน apache แต่บนเซิร์ฟเวอร์ nginx ใหม่ที่ฉันได้ตั้งค่าดูเหมือนว่าสคริปต์จากการปรับใช้ "เก่า" จะถูกเรียกใช้แทนที่จะเชื่อมโยงใหม่ ฉันได้อ่านบทช่วยสอนและโพสต์เกี่ยวกับวิธีแก้ไขปัญหานี้ แต่มีข้อมูลไม่มากและดูเหมือนว่าจะไม่มีอะไรทำงาน นี่คือไฟล์ vhost ของฉัน: server { listen 80; server_name ~^(www\.)?(?<sname>.+?).testing.domain.com$; root /var/www/$sname/current/public; index index.html index.htm index.php; location / { try_files $uri $uri/ /index.php$is_args$args; } location ~* \.(jpg|jpeg|gif|png|bmp|ico|pdf|flv|swf|exe|html|htm|txt|css|js) { add_header Cache-Control public; add_header Cache-Control must-revalidate; expires 7d; } location …
12 nginx  php-fpm  cache  php7 

3
Nginx แฮงค์โดยใช้“ service nginx start”
ฉันรวบรวม nginx พร้อมเส้นทางที่กำหนดเองสำหรับเซิร์ฟเวอร์ที่ใช้งานจริงของฉันและเมื่อฉันพยายามเริ่ม / เริ่มบริการใหม่โดยใช้: service nginx start หรือ service nginx restart มันเข้าสู่บรรทัดใหม่โดยไม่ส่งคืนเชลล์: ดังนั้นปัญหาคือฉันไม่สามารถควบคุม nginx ได้โดยใช้serviceคำสั่ง บริการทำงานจริง แต่จะไม่ส่งคืนเชลล์ให้ฉันดังนั้นฉันต้องกดctrl+ cเพื่อรับมันกลับมาเสมอ ฉันยังต้องพูดถึงว่า nginx ทำงานได้ดีเมื่อเรียกมันด้วยnginxคำสั่งของตัวเองและหยุดหรือโหลดnginx -s stop/reloadซ้ำได้อย่างง่ายดายโดยใช้ ปัญหานี้ยังคงมีอยู่systemctl start nginxเช่นกัน แต่ก็systemctl stop nginxใช้ได้ดี ข้อมูล: $ lsb_release -a Distributor ID: Ubuntu Description: Ubuntu 15.10 Release: 15.10 Codename: wily $ uname -r 4.2.0-27-generic $ nginx …

1
ฉันจะบล็อกคำขอด้วยชุดส่วนหัวโฮสต์ที่ไม่ถูกต้องได้อย่างไร
ฉันใช้ nginx เพื่อให้บริการเว็บไซต์ของฉัน ฉันต้องการปิดกั้นคำขอทั้งหมดที่มีส่วนหัว HTTP "โฮสต์" ที่ไม่ตรงกับโดเมนของเว็บไซต์ของฉัน เพื่อให้เป็นรูปธรรมมากขึ้น nginx.conf ของฉันมีบล็อกเซิร์ฟเวอร์ทั้งสองนี้: server { # Redirect from the old domain to the new domain; also redirect # from www.newdomain.com to newdomain.com without the "www" server_name www.olddomain.com olddomain.com www.newdomain.com; listen 80; return 301 $scheme://newdomain.com$request_uri; } server { server_name newdomain.com localhost; listen 80; # …
12 nginx 

2
รูปแบบ Nginx regex vhost ลงท้ายด้วยชื่อเซิร์ฟเวอร์ PHP
ฉันมีคำจำกัดความเซิร์ฟเวอร์ nginx กับการจับคู่ regex เช่นนี้ server_name ~^(?<vhost>[a-z0-9-]+)\.example\.com$; root /var/www/example/$vhost; access_log /var/log/nginx/$vhost.example-access.log; ทั้งหมดนี้ทำงานได้ดี แต่โดเมนนี้โฮสต์โครงการ PHP ต่างๆโดยใช้ fastcgi และ PHP-FPM ซึ่งได้รับค่าเช่นนี้ใน$_SERVER: SERVER_NAME => "~^(?<vhost>[a-z0-9-]+)\.example\.com$" HTTP_HOST => "myhost.example.com" อย่างที่คุณเห็นรูปแบบ regex นั้นถูกใส่เข้าไปSERVER_NAMEแทนที่สตริงที่ตรงกับมัน ดูเหมือนว่าจะเป็นรถของฉันและยังแสดงถึงความเสี่ยงด้านความปลอดภัยซึ่งมันเป็นการเปิดเผยรายละเอียดที่ไม่จำเป็น (ในการกำหนดค่าอื่น ๆ ฉันกำลังจับคู่ชุดชื่อที่เจาะจงมากกว่าสัญลักษณ์ตัวแทน) คุณอาจพูดว่า "ใช้ HTTP_HOST แทน SERVER_NAME" - ถ้าเป็นแบบง่ายๆ - มีห้องสมุดที่คาดว่า SERVER_NAME จะมีชื่อของเซิร์ฟเวอร์ (ไม่แปลกใจ) ฉันไม่เห็นกรณีการใช้งานที่ดีสำหรับพฤติกรรมนี้
12 nginx 

2
Nginx: เปลี่ยนที่อยู่ IP เป็นชื่อโดเมน
ด้วยการกำหนดค่า Nginx ต่อไปนี้: server { listen 80; listen [::]:80 default_server ipv6only=on; server_name isitmaintained.com; ... } server { listen 178.62.136.230:80; server_name 178.62.136.230; add_header X-Frame-Options "SAMEORIGIN"; return 301 $scheme://isitmaintained.com$request_uri; } ฉันกำลังพยายามเปลี่ยนเส้นทางhttp://178.62.136.230/ไปยังhttp://isitmaintained.com/แต่เมื่อฉันปรับใช้การกำหนดค่านี้ฉันจะจบลงด้วยการRedirect loopเชื่อมโยงเหล่านี้อย่างใดอย่างหนึ่งหรือทั้งสอง ผมทำอะไรผิดหรือเปล่า?
12 nginx  redirect 

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