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

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

1
Nginx HTTP ไม่ทำงาน - ดาวน์โหลดไฟล์ชื่อ“ ดาวน์โหลด”
ถ้าฉันเข้าชมเว็บไซต์ nginx ของฉันด้วย https มันใช้งานได้ แต่ด้วย http มันกำลังดาวน์โหลดไฟล์ชื่อ "ดาวน์โหลด" (ไม่มีส่วนขยายใด ๆ ), 57 ไบต์และเปิดด้วย notepad เป็นต้นเพียงแค่แสดงสิ่งที่พูดพล่อยๆ นี่คือ vhost config ของฉัน: server { server_name www.domain.com domain.com; listen 80; return 301 https://domain.com$request_uri; } server { server_name www.domain.com listen 443 ssl; /* SSL Stuff */ return 301 https://domain.com$request_uri; } server { server_name domain.com; …
11 nginx 

4
จะติดตั้ง Gitlab-omnibus ด้วยเว็บเซิร์ฟเวอร์ที่ไม่ได้รวมมาได้อย่างไร?
ติดตั้ง ฉันติดตั้งgitlabแพคเกจผ่านแพ็คเกจ Omnibus ในdebian 7(เวอร์ชั่น7.8.1-omnibus-1_amd64.deb); เปลี่ยนการตั้งค่าตามที่อธิบายไว้ในการใช้เว็บเซิร์ฟเวอร์ที่ไม่ใช่บันเดิล รันคำสั่งตั้งค่าใหม่: sudo gitlab-ctl reconfigure(สมบูรณ์โดยไม่มีข้อผิดพลาด) Nginx ฉันไม่ได้ตั้งค่าnginx'สำหรับ gitlab นี้ยกเว้นสิ่งที่แพคเกจอาจสร้างขึ้นด้วย/etc/gitlab/gitlab.rbไฟล์ต่อไปนี้: external_url 'http://git.mydomain.fr' web_server['external_users'] = ['www-data'] nginx['enable'] = false ci_nginx['enable'] = false ท่อน /var/log/nginx/gitlab_error.log 2015/02/28 14:29:16 [alert] 4137#0: *14738 768 worker_connections are not enough while connecting to upstream, client: x.x.128.194, server: git.mydomain.fr, request: "GET / HTTP/1.0", upstream …

3
เปลี่ยนเส้นทางการวนซ้ำโดยใช้ ssl ยืดหยุ่นของ cloudflare
ฉันกำลังพยายามติดตั้ง SSL แบบยืดหยุ่นที่ CloudFlare จัดเตรียมให้กับเว็บไซต์ของฉัน นี่คือการกำหนดค่า nginx ของฉัน: # PHP-FPM upstream; change it accordingly to your local config! upstream php-fpm { server 127.0.0.1:9000; } server { listen 80; server_name example.com www.example.com; return 301 https://$server_name$request_uri; } server { ## Listen ports listen 443; # use _ if you want to accept …
11 nginx  cloudflare 

2
การปรับใช้แอปพลิเคชัน CherryPy: เซิร์ฟเวอร์สแตนด์อะโลน, WSGI หรือ NGinx
ฉันตั้งใจจะใช้ VPS เดียวเพื่อปรับใช้แอป CherryPy ที่มีปริมาณการใช้งานต่ำเป็นไดเรกทอรีย่อย เช่นexample.com/app1, example.com/app2ฯลฯ หลังจากทำการค้นคว้าเกี่ยวกับการปรับใช้ WSGI ดูเหมือนว่าวิธีที่ต้องการสำหรับการปรับใช้แอพคือการใช้เซิร์ฟเวอร์ WSGI (Gunicorn, uWSGI, ฯลฯ ) และ NGinx ในการตั้งค่า reverse-proxy ดูเหมือนว่า overkill การใช้สองเว็บเซิร์ฟเวอร์ควบคู่ - โดยเฉพาะอย่างยิ่งนับตั้งแต่แอป CherryPy ของฉันตัวเองเป็นเว็บเซิร์ฟเวอร์ - แต่ฉันไม่ต้องการที่จะยกเลิกความคิดตามที่ปรากฏทุกที่ ฉันไม่ได้เป็นผู้เชี่ยวชาญแน่นอนดังนั้นฉันต้องการที่จะหารือ ฉันเห็นสามตัวเลือก: ปรับใช้ CherryPy ด้วยตัวเอง ปรับใช้ภายใต้ Gunicorn หรือเซิร์ฟเวอร์ WSGI อื่น ปรับใช้ภายใต้เซิร์ฟเวอร์ WSGI และ reverse-proxy กับ NGinx ซึ่งดูเหมือนจะเป็นทางออกของทุกคน คำถามของฉัน: เหตุผลหลักที่ฉันเห็นรูปแบบนี้ทุกที่คืออะไร Nginx เป็นเพียงที่ดีหรือไม่? สำหรับแอปที่มีปริมาณการใช้งานต่ำเซิร์ฟเวอร์ …

4
วิธีการกำหนดค่า nginx เพื่อให้บริการเนื้อหาคงที่จาก RAM?
ฉันต้องการตั้งค่า Nginx เป็นเว็บเซิร์ฟเวอร์ของฉัน ฉันต้องการให้ไฟล์ภาพแคชในหน่วยความจำ (RAM) มากกว่าดิสก์ ฉันกำลังให้บริการหน้าเล็ก ๆ และต้องการภาพไม่กี่ภาพจาก RAM เสมอ ฉันไม่ต้องการใช้วานิช (หรือเครื่องมืออื่น ๆ ) เพราะฉันเชื่อว่า Nginx มีความสามารถในการแคชเนื้อหาลงใน RAM ฉันไม่แน่ใจว่าจะกำหนดค่า Nginx ได้อย่างไร? ฉันลองใช้ชุดค่าผสมสองสามตัว แต่ไม่ได้ผล Nginx ใช้ดิสก์ตลอดเวลาเพื่อรับรูปภาพ ตัวอย่างเช่นเมื่อฉันลอง Apache มาตรฐานเพื่อทดสอบด้วยคำสั่งต่อไปนี้: ab -c 500 -n 1000 http://localhost/banner.jpg ฉันได้รับข้อผิดพลาดต่อไปนี้: socket: Too many open files (24) ฉันเดาว่านี่หมายความว่า Nginx พยายามเปิดไฟล์มากเกินไปพร้อมกันจากดิสก์และระบบปฏิบัติการไม่อนุญาตการดำเนินการนี้ ใครช่วยกรุณาแนะนำฉันกำหนดค่าที่ถูกต้อง?
11 nginx  cache  memcache 

1
ปิดการใช้งาน SSL สำหรับเส้นทางที่แน่นอนใน Nginx
ฉันมีเว็บไซต์ที่ฉันต้องการร้องขอทั้งหมดที่จะต้องทำด้วย HTTPS ยกเว้นสำหรับการร้องขอไปยัง URL /foo/ที่มีเส้นทางที่เริ่มต้นด้วย ฉันจะกำหนดค่าสิ่งนี้ใน Nginx ได้อย่างไร ตอนนี้ฉันเรียกใช้คำขอทั้งหมดด้วย SSL: server { listen 443; ssl on; ssl_certificate /home/admin/ssl/ssl.crt; ssl_certificate_key /home/admin/ssl/ssl.key; server_name www.mydomain.com; location / { proxy_pass http://localhost:8000; ... } }
11 nginx 

1
การอ้างอิงตำแหน่งรูทเป็นตัวแปรในเซิร์ฟเวอร์ {} บล็อก
ในเซิร์ฟเวอร์ nginx ของฉัน {} block ฉันมีการรูทด้วยพา ธ ฉันจะอ้างอิงเส้นทางนี้ในภายหลังได้อย่างไร นี่คือสิ่งที่ฉันพยายามทำ: server { listen 80; root /var/www/foosite; ... include $root/*.ngaccess; } น่าเสียดายที่ใช้ $ root ไม่ทำงาน (เพราะฉันไม่ได้กำหนดไว้) Nginx มีวิธีการเข้าถึงค่ารูทหรือไม่?
11 nginx 

1
วิธีแยกเฉพาะชื่อไฟล์จากคำร้องขอ uri
ฉันพยายามเขียนคำร้องขอ uri ใหม่โดยขึ้นอยู่กับนามสกุลของไฟล์จากนั้นแตกเฉพาะชื่อไฟล์จาก uri และเก็บไว้ในโฟลเดอร์อื่น ปัญหาที่เกิดขึ้นที่นี่จะไม่มีการกำหนดไว้ล่วงหน้าสำหรับตัวแปรชื่อไฟล์และตัวแปรที่มีอยู่uri, request_uriและrequest_filenameจะให้ URI เต็ม server{ set $file_folder D:/nginx-1.0.15/imageAll/; location ~*+.(gif|jpg)$ { try_files $uri @imgstore; } location @imgstore { proxy_pass $file_folder$request_filename; proxy_store on; proxy_temp_path /nginx-1.0.15/images/; proxy_store_access user:rw group:rw all:r; } } สิ่งที่ดีที่สุดที่ฉันสามารถทำได้คือได้รับนามสกุล. jpg หรือ. gif ว่าเมื่อฉัน$1แทนที่$request_filenameสิ่งนี้: location @imgstore { proxy_pass $file_folder$1; } ดังนั้นฉันต้องการทราบ: จะรับชื่อไฟล์จากคำขอได้อย่างไร? มันเป็นวิธีที่ถูกต้องในการจัดเก็บภาพจากโฟลเดอร์หนึ่งไปอีกอันหนึ่งหรือไม่?
11 nginx  rewrite  images 

2
ฉันจะตรวจสอบได้อย่างไรว่าการเริ่มต้นเซสชัน SSL ใหม่ทำงานหรือไม่
ฉันใช้ nginx และต้องการใช้การเริ่มต้นเซสชัน SSL อีกครั้ง ฉันควรทดสอบว่ามันทำงานอย่างไร ฉันได้เปิดใช้งานการตั้งค่าเหล่านี้: ssl_session_cache shared:SSL:10m; ssl_session_timeout 10m;
11 nginx  ssl  https 

1
โฮสต์โฟลเดอร์ในโฮมไดเรกทอรีโดยใช้ nginx
ฉันต้องการเพิ่มเงื่อนไขในสคริปต์ผู้ใช้เพื่ออัปเดต nginx.conf เพื่อให้โหลด ~ / www เป็นhttp: // ipaddress / ~ ผู้ใช้ทุกครั้งที่ฉันสร้างผู้ใช้ใหม่ และเมื่อผู้ใช้ชื่อ www.domainname มันจะโฮสต์ชื่อโดเมนนั้นในโฟลเดอร์ ~ / www มีสคริปต์ที่ทำสิ่งนี้อยู่แล้ว?
11 linux  nginx  unix 

4
การควบคุมเป้าหมายพร็อกซี Nginx โดยใช้คุกกี้หรือไม่
ฉันพยายามแปลงพร็อกซีย้อนกลับโดยใช้การตั้งค่า Apache mod_rewrite ที่น่าสนใจเพื่อใช้ Nginx แทน (เนื่องจากความกังวลภายนอกที่เราย้ายจาก Apache เป็น Nginx และทุกอย่างทำงานได้ดียกเว้นส่วนนี้) การตั้งค่าดั้งเดิมของฉันคือการอ่านคุกกี้ HTTP (กำหนดโดยแอพพลิเคชั่นบางตัว) และขึ้นอยู่กับค่าของมัน มันเป็นอะไรเช่นนี้: RewriteCond %{HTTP_COOKIE} proxy-target-A RewriteRule ^/original-request/ http://backend-a/some-application [P,QSA] RewriteCond %{HTTP_COOKIE} proxy-target-B RewriteRule ^/original-request http://backend-b/another-application [P,QSA] RewriteRule ^/original-request http://primary-backend/original-application [P,QSA] ฉันพยายามทำสิ่งเดียวกันโดยใช้ Nginx และการกำหนดค่าเริ่มต้นของฉันเป็นแบบนี้ (โดยที่ "proxy_override" เป็นชื่อของคุกกี้): location /original-request { if ($cookie_proxy_override = "proxy-target-A") { rewrite . …

3
โครงการ nginx ในโฟลเดอร์ย่อย
ฉันผิดหวังกับการกำหนดค่า nginx ของฉันดังนั้นฉันจึงขอความช่วยเหลือในการเขียนไฟล์กำหนดค่าของฉันเพื่อให้บริการหลายโครงการจากไดเรกทอรีย่อยในรูทเดียวกัน นี่ไม่ใช่โฮสติ้งเสมือนเพราะพวกเขาทั้งหมดใช้ค่าโฮสต์เดียวกัน บางทีตัวอย่างจะอธิบายความพยายามของฉัน: คำขอ192.168.1.1/ควรทำหน้าที่index.phpจาก/var/www/public/ คำขอ192.168.1.1/wiki/ควรทำหน้าที่index.phpจาก/var/www/wiki/public/ คำขอ192.168.1.1/blog/ควรทำหน้าที่index.phpจาก/var/www/blog/public/ โครงการเหล่านี้ใช้ PHP และใช้ fastcgi การกำหนดค่าปัจจุบันของฉันน้อยมาก server { listen 80 default; server_name localhost; access_log /var/log/nginx/localhost.access.log; root /var/www; index index.php index.html; location ~ \.php$ { fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME /var/www$fastcgi_script_name; include fastcgi_params; } } ฉันได้ลองทำสิ่งต่าง ๆ ด้วยaliasและrewriteไม่สามารถตั้งค่าสิ่งที่ถูกต้องสำหรับ fastcgi ได้ ดูเหมือนจะมีควรจะเป็นวิธีที่มีคารมคมคายกว่าการเขียนบล็อกสถานที่และการทำซ้ำroot, index, SCRIPT_FILENAMEฯลฯ …
11 php  nginx  fastcgi 

2
nginx proxy_pass เขียนตำแหน่งการตอบกลับอีกครั้ง
จุดประสงค์ของอินสแตนซ์ nginx นี้คือการรับ GitLab และ OpenWRT Luci เพื่อเปลี่ยนเส้นทางผ่านพร็อกซีย้อนกลับ มันใช้งานได้แล้วสำหรับเว็บไซต์อื่น ๆ หลายแห่งซึ่งทั้งหมดมี url พื้นฐานซึ่งดูเหมือนจะตอบโต้ปัญหานี้ GitLab ในตัวอย่างนี้อยู่บนโลคัลเซิร์ฟเวอร์ที่พอร์ต 9000 เว็บไซต์ nginx อยู่ที่พอร์ต 8080 OpenWRT มีปัญหาเดียวกัน แต่มี / cgi-bin / luci / การกำหนดค่า nginx ที่เกี่ยวข้องสำหรับตำแหน่งตัวอย่างคือ location /gitlab/ { proxy_pass http://127.0.0.1:9000/; proxy_redirect default; } โปรดทราบว่าผลลัพธ์จะเหมือนกันทั้งที่มีและไม่มีเครื่องหมายทับ มีตัวเลือกการกำหนดค่าพร็อกซีส่วนหัวบางส่วนที่ใช้กับตำแหน่งนี้ # Timeout if the real server is dead proxy_next_upstream …

1
ฉันจะยืนยันความเป็นเจ้าของเว็บไซต์ใน Google Webmaster Tools ผ่าน nginx.conf ได้อย่างไร
ตั้งแต่สองสามปีที่ผ่านมากระบวนการตรวจสอบความเป็นเจ้าของไซต์ Google Webmaster Tools เริ่มทำให้ไฟล์การยืนยันนั้นมีเนื้อหาบางอย่างแทนที่จะอยู่ตรงนั้นและกลับมา200 OKและทำให้แน่ใจว่าไฟล์ใกล้เคียงอื่น ๆ จะกลับมา404 Not Foundเป็นต้น ด้วยข้อกำหนดใหม่ฉันจะแสดงไฟล์ยืนยันเว็บไซต์ของ Google Webmaster Tools ด้วยตนเองได้nginx.confอย่างไร

5
เส้นทางรูทโดเมน nginx แบบไดนามิกตามชื่อโฮสต์หรือไม่
ฉันกำลังพยายามตั้งค่าเซิร์ฟเวอร์พัฒนา nginx / PHP ของฉันด้วยการกำหนดค่า vhost หลัก / catch-all vhost เพื่อให้ฉันสามารถสร้าง___.framework.locโดเมนไม่ จำกัด ได้ตามต้องการ server { listen 80; index index.html index.htm index.php; # Test 1 server_name ~^(.+)\.frameworks\.loc$; set $file_path $1; root /var/www/frameworks/$file_path/public; include /etc/nginx/php.conf; } อย่างไรก็ตาม nginx ตอบกลับด้วยข้อผิดพลาด 404 สำหรับการตั้งค่านี้ ฉันรู้ว่า nginx และ PHP ทำงานได้และได้รับอนุญาตเนื่องจากการกำหนดค่าที่localhostฉันใช้งานได้ดี server { listen 80 default; server_name …
11 php  nginx  virtualhost 

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