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

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

5
วิธีการรับ nginx เพื่อเปลี่ยนเส้นทางจาก www ไปยังโดเมนที่ไม่ใช่ www
สมมติว่าฉันต้องการเปลี่ยนเส้นทางจาก www.example.com เป็น example.com และฉันต้องการใช้ nginx ฉันมองไปรอบ ๆ และไม่เห็นเอกสารที่ดีเกี่ยวกับเรื่องนี้ดังนั้นฉันจึงคิดว่าฉันจะถามและตอบคำถามของฉันเอง

2
nginx: คำสั่งแก้ปัญหา“ server_name” หรือไม่
ฉันมีบล็อก "เซิร์ฟเวอร์" หลายรายการใน nginx.conf ของฉัน เอกสารดูเหมือนผิดพลาดเกี่ยวกับลำดับการจับคู่ server_name ความเชื่อมั่นของฉันดูเหมือนว่า: server { listen 80 server_name domain.com *.domain.com # do stuff } server { listen 80 server_name sub.domain.com *.sub.domain.com # do something else } ฉันกำลังพยายามหาสาเหตุที่คำขอกับ host = www.sub.domain.com กำลังไปยังตำแหน่งที่ถูกต้อง (เซิร์ฟเวอร์ตัวที่สอง) เมื่อเอกสารระบุว่าควรไปที่เซิร์ฟเวอร์เครื่องแรก เอกสารประกอบของ Nginx ระบุว่าบล็อกเซิร์ฟเวอร์ได้รับการตรวจสอบ "ตามลำดับ" สำหรับการจับคู่หมายถึงคำขอใด ๆ กับโฮสต์ * .sub.domain.com ควรถูกตรวจพบโดยเซิร์ฟเวอร์เครื่องแรกไม่ใช่เซิร์ฟเวอร์ที่สอง ( http://wiki.nginx.org/HttpCoreModule#server_name …
8 nginx 

4
Nginx + PHP 5.3.3 (ด้วย php-fpm) - การใช้งานหน่วยความจำ?
ฉันเพิ่งซื้อXen VPS (linode.com) กับ Debian 5.0 เลนนี่ (i386), 512MB RAM ในขณะนี้ฉันมีเว็บไซต์ขนาดเล็กเพียงสามแห่งเท่านั้น (สร้างขึ้นโดยใช้ Drupal) โดยมีผู้ใช้งานทั้งหมดประมาณ 600 คนต่อวันบนเซิร์ฟเวอร์นี้ เป็นเว็บเซิร์ฟเวอร์ฉันใช้nginx 0.7.67 ( PHP 5.3.3กับphp-fpm ) อัตราสิ้นเปลืองหน่วยความจำเฉลี่ยอยู่ที่ประมาณ100-105MB นี่คือสิ่งที่กราฟ Munin แสดง: และนี่คือความหมายของคำสั่ง "สุดยอด" (เรียงตามการใช้หน่วยความจำ): ใน php5-fpm.conf ของฉัน: pm = dynamic pm.max_children = 50 pm.start_servers = 2 pm.min_spare_servers = 2 pm.max_spare_servers = 5 pm.max_requests = 500 …

1
NGINX - ข้อผิดพลาด CORS มีผลเฉพาะกับ Firefox
นี่เป็นปัญหาของ Nginx ที่มีผลต่อ firefox เท่านั้น ฉันมีการกำหนดค่านี้: http://pastebin.com/q6Yeqxv9 upstream connect { server 127.0.0.1:8080; } server { server_name admin.example.com www.admin.example.com; listen 80; return 301 https://admin.example.com$request_uri; } server { listen 80; server_name ankieta.example.com www.ankieta.example.com; add_header Access-Control-Allow-Origin $http_origin; add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS, PUT, PATCH, DELETE'; add_header 'Access-Control-Allow-Credentials' 'true'; add_header 'Access-Control-Allow-Headers' 'Access-Control-Request-Method,Access-Control-Request-Headers,Cache,Pragma,Authorization,Accept,Accept-Encoding,Accept-Language,Host,Referer,Content-Length,Origin,DNT,X-Mx-ReqToken,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type'; return 301 …

4
puppet master REST API ส่งคืน 403 เมื่อทำงานภายใต้การทำงานของผู้โดยสารเมื่อต้นแบบรันจากบรรทัดคำสั่ง
ฉันใช้ auth.conf มาตรฐานที่ให้ไว้ในการติดตั้งหุ่นเชิดสำหรับเจ้านายหุ่นเชิดซึ่งกำลังวิ่งผ่านผู้โดยสารภายใต้ Nginx อย่างไรก็ตามสำหรับแคตตาล็อกส่วนใหญ่ไฟล์และคำขอการรับรองฉันได้รับการตอบกลับ 403 ### Authenticated paths - these apply only when the client ### has a valid certificate and is thus authenticated # allow nodes to retrieve their own catalog path ~ ^/catalog/([^/]+)$ method find allow $1 # allow nodes to retrieve their own node definition path …

1
วิธีที่ดีที่สุดในการเปลี่ยนเส้นทาง 57,000 URL ใน nginx คืออะไร
ฉันวางแผนที่จะทำการเปลี่ยนเส้นทางจำนวนมากใน nginx ด้วยไฟล์การจับคู่เช่นในตัวอย่างด้านล่าง แต่เพิ่งค้นพบว่าฉันต้องเปลี่ยนเส้นทางประมาณ 57,000 URL วางไว้ในไฟล์กำหนดค่าเช่นนี้เป็นวิธีที่ดีที่สุดในการทำหรือมีวิธีที่ดีกว่า map $request_uri $redirect_uri { /old-path-1 /new-path-1; /old-path-2 /new-path-2; /old-path-3 /new-path-3; } การเปลี่ยนเส้นทางส่วนใหญ่สำหรับเครื่องมือค้นหา หลังจากพวกเขาจัดทำดัชนีเว็บไซต์อีกครั้งฉันคิดว่า URL จำนวนมากจะไม่ได้รับความนิยม ฉันส่วนใหญ่กังวลเกี่ยวกับปัญหาที่อาจเกิดขึ้นจากการสร้างไฟล์กำหนดค่าที่มีหลายบรรทัดในนั้น

3
NGINX Proxy Pass ไปยังแอป NodeJS: ส่งคืนข้อผิดพลาด 502
ฉันกำลังพยายามตั้งค่า NGINX เป็นส่วนหน้าของแอป NodeJS ซึ่งเปิดใช้งานอยู่127.0.0.1:3000แต่ฉันไม่สามารถแก้ไขข้อผิดพลาด 502 นี้ได้ NGINX สามารถเข้าถึงได้ในท้องถิ่นที่http://55.55.55.5/หรือhttp://dev.example dev.example (ไฟล์ใน: / etc / nginx / sites-available และ symlinked ไปยังเว็บไซต์ที่เปิดใช้งาน) upstream up_dev.example { server 127.0.0.1:3000; } server { listen 0.0.0.0:80; server_name dev.example example; access_log /var/log/nginx/dev.example.log; location / { proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $http_host; proxy_set_header X-NginX-Proxy true; …

2
Nginx + PHP FASTCGI ล้มเหลว - วิธีการแก้ไขปัญหา?
ฉันมีเซิร์ฟเวอร์บน AMAZON EC2 ที่ใช้ Nginx + PHP กับ PHP FASTCGI ผ่านพอร์ต 9000 เซิร์ฟเวอร์ทำงานได้ดีในเวลาไม่กี่นาทีและหลังจากนั้นไม่นาน (หลายพันครั้งในกรณีนี้) FastCGI Dies และ Nginx ส่งกลับข้อผิดพลาด 502 บันทึก Nginx จะแสดง 2010/01/12 16:49:24 [error] 1093#0: *9965 connect() failed (111: Connection refused) while connecting to upstream, client: 79.180.27.241, server: localhost, request: "GET /data.php?data=7781 HTTP/1.1", upstream: "fastcgi://127.0.0.1:9000", host: "site1.mysite.com", referrer: …
3 nginx  fastcgi 

3
เซิร์ฟเวอร์ Nginx ไฟล์สแตติกเก่าหลังจากคอมไพล์คอมมิท
ฉันใช้ Nginx เพื่อให้บริการไฟล์คงที่ (ในขณะที่ใช้เป็น reverse proxy สำหรับ NodeJS express RestAPI ของฉัน) ปัญหาคือเมื่อฉันกด git ใหม่ไปยังเซิร์ฟเวอร์ผู้ใช้จะยังคงได้รับไฟล์เก่า (การแก้ไขครั้งล่าสุด) วิธีแก้ปัญหาในตอนนี้คือผู้ใช้ล้างแคชในเบราว์เซอร์ อะไรคือสาเหตุของสิ่งนี้ ฉันเดาว่านี่คือการกำหนดค่าแคชฝั่งเซิร์ฟเวอร์ผิดหรือเปล่า? ดูด้านล่างการตั้งค่า nginx ของฉัน (พื้นฐาน + รวม) ดังที่คุณเห็นด้านล่างไฟล์สแตติก (.html, .js, .css) จะอยู่ภายใต้ / var / www / frontend ## # Basic Settings ## sendfile on; tcp_nopush on; tcp_nodelay on; keepalive_timeout 65; types_hash_max_size 2048; …
2 nginx  cache 

2
จะรวบรวมบันทึกสำหรับสถิติในไซต์ได้อย่างไร
ฉันต้องการรวบรวมบันทึกจาก nginx (เซิร์ฟเวอร์หลายเครื่อง, 1,000,000 บรรทัดในบันทึกเป็นนาทีสำหรับเซิร์ฟเวอร์ทั้งหมด) ไปยังเซิร์ฟเวอร์สถิติกลางสำหรับการประมวลผลสถิติ ฉันเห็น 2 สายพันธุ์: เขียนบันทึกไปยังไฟล์บันทึกท้องถิ่นสำหรับแต่ละเซิร์ฟเวอร์ เปลี่ยนชื่อบันทึกสำหรับเทมเพลต "DD.MM.YYYY HH" ในแต่ละเซิร์ฟเวอร์และส่งบันทึกไปยังเซิร์ฟเวอร์สถิติผ่าน ssh เป็นต้น ส่งสัญญาณสำหรับการโหลดบันทึกซ้ำไปยัง nginx บนแต่ละเซิร์ฟเวอร์ ใช้ syslog transport (หรืออื่น ๆ - ไฟล์ transcport ใดอาจเป็นชื่อไฟล์อัตโนมัติสำหรับเทมเพลต "DD.MM.YYYY HH"?) เพื่อส่งบันทึกไปยังเซิร์ฟเวอร์ stat ใช้ hadoop หรือ dir ชั่วคราวในหน่วยความจำบนเซิร์ฟเวอร์สถิติสำหรับบันทึกการเขียนจากเซิร์ฟเวอร์ทั้งหมด (ตัวแปรใดมีประสิทธิผลมากกว่าในกรณีนี้) คุณช่วยแนะนำอย่างอื่นได้ไหม

1
การใช้ nginx กับ reverse proxy ใน container docker ไม่ทำงาน
ฉันต้องการให้ทุกสิ่งที่เริ่มต้นด้วย/apiถูกนำไปhttp://localhost:3007 นี่คือ nginx.conf ของฉัน user nginx; worker_processes 1; daemon off; events { worker_connections 1024; } http { include mime.types; default_type application/octet-stream; sendfile on; keepalive_timeout 65; server { listen 80; server_name localhost; location / { root /usr/html; index index.html index.htm; } location /api { proxy_pass http://localhost:3007; proxy_read_timeout 5m; } error_page 500 …

1
Poste.io - ไม่สามารถเข้าสู่ระบบด้วยแอปพลิเคชันอีเมล - ใบรับรอง SSL ไม่ถูกต้อง
ฉันมีปัญหากับ poste.io และการกำหนดค่าด้วย nginx-proxy DOMAIN เป็นโดเมนที่ถูกต้อง :) นี่คือนักเทียบท่าของฉันเขียนสำหรับ poste.io: version: '3' volumes: mailserver_posteio: services: mailserver: image: analogic/poste.io container_name: poste-io restart: always ports: - "25:25" - "110:110" - "143:143" - "587:587" - "993:993" - "995:995" - "4190:4190" environment: - LETSENCRYPT_EMAIL=ssl@DOMAIN - LETSENCRYPT_HOST=mail.DOMAIN - VIRTUAL_HOST=mail.DOMAIN - HTTPS=OFF volumes: - /etc/localtime:/etc/localtime:ro - mailserver_posteio:/data …

1
HAProxy“ 503 บริการไม่พร้อมใช้งาน” สำหรับเว็บเซิร์ฟเวอร์ที่ทำงานบนเครื่องเสมือน KVM
ฉันตั้งเซิร์ฟเวอร์กับ KVM (IP 192.168.0.100) 192.168.0.194และฉันได้สร้างภายในของมันเป็นหนึ่งในเครื่องเสมือนโดยใช้การเชื่อมโยงเครือข่าย นี้เครื่องเสมือนมี Nginx http://192.168.0.194เช่นการทำงานซึ่งผมสามารถเข้าถึงได้จากเซิร์ฟเวอร์หรือจากคอมพิวเตอร์เครื่องคอมพิวเตอร์เครื่องใดก็ได้ในเครือข่ายภายในเพียงแค่พิมพ์ในเบราว์เซอร์ อย่างไรก็ตามฉันลองกำหนดค่า HAProxy ในเซิร์ฟเวอร์เดียวกันที่โฮสต์ KVM และค้นหาหน้าสถานะของ HAProxy มันจะแสดงเครื่องเสมือนเป็น "ลง" เสมอ ถ้าฉันพยายามจากเซิร์ฟเวอร์ก็ควรจะเหมือนกันกว่าถ้าฉันไปhttp://localhost http://192.168.0.194เป้าหมายของฉันคือสร้างพร็อกซีย้อนกลับ แต่ฉันลองตัวอย่างเล็ก ๆ น้อย ๆ นี้แล้วใช้ไม่ได้ ฉันทำอะไรไม่ดี นี่คือไฟล์ปรับแต่งของฉันในเซิร์ฟเวอร์: # /etc/haproxy/haproxy.cfg global maxconn 4096 user haproxy group haproxy daemon defaults log global mode http option httplog option dontlognull retries 3 option redispatch maxconn …

1
หมดอายุ 410 การตอบสนองใน nginx
เบราว์เซอร์แคช 410 Gone ตอบกลับไปเรื่อย ๆ ตามค่าเริ่มต้น 410 โดยไม่ตั้งใจสามารถฆ่า URL ได้ตลอดไป URL อาจถูกคืนค่าอีกครั้งในภายหลังด้วยเหตุผลอื่น ฉันต้องการตั้งค่าexpiresสำหรับยุค 410 เพื่อบังคับให้รีเฟรชเบราว์เซอร์เป็นครั้งคราว มีวิธีที่จะทำกับ nginx หรือไม่? server { # ... error_page 410 /errors/410.html; location /errors/ { internal; expires 1h; } location = /some/file { expires 1h; return 410; } } การกำหนดค่าข้างต้นส่งผลให้เกิดการตอบสนองโดยไม่มีคำสั่งควบคุมแคช

1
พร็อกซีย้อนกลับ nginx - ไม่ปิดการเชื่อมต่ออัปสตรีมเมื่อไคลเอ็นต์ HTTPS ยกเลิกการเชื่อมต่อ
ฉันมีเซิร์ฟเวอร์ที่ต้องรู้เมื่อลูกค้าปิดการเชื่อมต่อ เซิร์ฟเวอร์อยู่หลังพร็อกซีย้อนกลับ nginx ทุกอย่างทำงานได้ดีผ่าน HTTP แต่ทันทีที่ฉันเปิด SSL ดูเหมือนว่า nginx จะปิดการเชื่อมต่ออัปสตรีมไว้หนึ่งนาทีเต็มหลังจากไคลเอนต์ HTTPS ถูกตัดการเชื่อมต่อ ฉันจะรับ nginx เพื่อปิดการเชื่อมต่ออัพสตรีมเมื่อไคลเอ็นต์ยกเลิกการเชื่อมต่อได้อย่างไร นี่คือการกำหนดค่า nginx ของฉัน: ssl_session_cache off; server { listen 443; ssl on; ssl_certificate server.crt; ssl_certificate_key server.key; location /find { proxy_pass http://my_upstream; proxy_ignore_client_abort off; proxy_buffering off; } }
nginx  https 

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