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

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

4
วิธีการใช้ nginx to proxy ไปยังโฮสต์ที่ต้องการการรับรองความถูกต้อง?
ฉันจะตั้งค่าคำสั่ง nginx proxy_pass ที่จะรวมข้อมูลการตรวจสอบสิทธิ์ HTTP พื้นฐานที่ส่งไปยังโฮสต์โฮสต์ได้อย่างไร นี่คือตัวอย่างของ URL ที่ฉันต้องใช้เพื่อ: http://username:password@192.168.0.5/export?uuid=1234567890 เป้าหมายสุดท้ายคือการอนุญาตให้เซิร์ฟเวอร์ 1 ไฟล์แสดงไฟล์จากเซิร์ฟเวอร์อื่น (ไฟล์ที่เรากำลังจะให้) โดยไม่ต้องเปิดเผย URI ของพร็อกซีเซิร์ฟเวอร์ ฉันได้ทำงานถูกต้อง 90% ในขณะนี้จากการติดตามการกำหนดค่า Nginx ที่นี่: http://kovyrin.net/2010/07/24/nginx-fu-x-accel-redirect-remote/ ฉันแค่ต้องเพิ่มในการรับรองความถูกต้องของ HTTP Basic เพื่อส่งไปยังพร็อกซีเซิร์ฟเวอร์
41 nginx  proxy 

3
ทำไมการตั้งค่า Nginx เป็น reverse proxy เป็นความคิดที่ดี?
ฉันมีไซต์ Django ที่ทำงานบน Gunicorn ด้วย reverse proxy ผ่าน Nginx Nginx ไม่ใช่แค่ค่าใช้จ่ายที่ไม่จำเป็นเพิ่มขึ้นใช่ไหม? การเพิ่มที่ด้านบนของ Gunicorn ช่วยได้อย่างไร

3
การตั้งค่า Nginx ให้ตรวจสอบ vhost ที่ไม่ได้จัดการทั้งหมด
หากฉันมี virtualhosts อยู่แล้วฉันจะสร้างโฮสต์เสมือนเพื่อจัดการคำขอที่ไม่ตรงกับ virtualhosts ใด ๆ ได้อย่างไร (เช่นการเข้าถึงโดย IP โดเมนอื่นที่เชื่อมโยงกับ IP, .etc .etc)
41 nginx 

3
สัญลักษณ์ที่น่าสงสัยเกี่ยวกับการกำหนดค่า nginx
ฉันมีการกำหนดค่า nginx ต่อไปนี้เช่น server { listen 80; server_name example.com allow 127.0.0.0/8; เมื่อฉันรีสตาร์ทมันเตือนฉัน: Restarting nginx: nginx: [warn] server name "127.0.0.0/8" has suspicious symbols in /etc/nginx/sites-enabled/xxx ความคิดใด ๆ
41 nginx 

2
กำหนดค่า Nginx เป็น reverse proxy ด้วย upstream SSL
ฉันพยายามกำหนดค่าเซิร์ฟเวอร์ Nginx เป็น reverse proxy ดังนั้นการร้องขอ https ที่ได้รับจากลูกค้าจะถูกส่งต่อไปยังเซิร์ฟเวอร์ upstream ผ่านทาง https เช่นกัน นี่คือการกำหนดค่าที่ฉันใช้: http { # enable reverse proxy proxy_redirect off; proxy_set_header Host $http_host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwared-For $proxy_add_x_forwarded_for; upstream streaming_example_com { server WEBSERVER_IP:443; } server { listen 443 default ssl; server_name streaming.example.com; access_log /tmp/nginx_reverse_access.log; error_log /tmp/nginx_reverse_error.log; root /usr/local/nginx/html; …

6
ปฏิเสธสิทธิ์ในขณะที่อ่านต้นน้ำ
เราได้ติดตั้งแอปพลิเคชั่น Rails ของเราบน nginx และหน้าผู้โดยสารโหลดแอพพลิเคชั่นเป็นระยะ ๆ บางส่วนไม่มีข้อผิดพลาดในบันทึกของแอปพลิเคชัน แต่บันทึกข้อผิดพลาด nginx แสดงดังต่อไปนี้: 2011/02/14 05:49:34 [crit] 25389#0: *645 open() "/opt/nginx/proxy_temp/2/02/0000000022" failed (13: Permission denied) while reading upstream, client: x.x.x.x, server: y.y.y.y, request: "GET /signup/procedures?count=0 HTTP/1.1", upstream: "passenger:unix:/passenger_helper_server:", host: "y.y.y.y", referrer: "http://y.y.y.y/signup/procedures"
40 nginx 

4
วิธีเปิดใช้งาน HTTP header ที่ถูกต้องใน NGINX
วิธีที่เหมาะสมในการเปิดใช้งานส่วนหัวของชุดอักขระที่ถูกต้องใน NGINX คืออะไร ฉันกำลังวิเคราะห์เว็บไซต์ด้วย Google Page Speed มันบอกว่าฉันควรระบุชุดอักขระของไฟล์ HTML ในส่วนหัว HTTP วิธีที่ถูกต้องในการทำเช่นนี้คืออะไร? ฉันได้ลองตั้งค่าcharset utf-8;ในการserver {}ประกาศไฟล์การกำหนดค่า NGINX ของฉันแล้ว แต่ก็ไม่มีผลใด ๆ เซิร์ฟเวอร์ของฉันตอบกลับด้วยส่วนหัวต่อไปนี้: Connection: keep-alive Date: Fri, 16 Sep 2011 12:43:24 GMT Last-Modified: Fri, 02 Sep 2011 15:13:17 GMT Server: nginx/0.7.67 ขอขอบคุณ.
39 nginx  http  charset 

1
nginx ตั้งค่าตัวแปรในสถานที่
ฉันกำลังพยายามปรับการกำหนดค่า nginx ของฉันให้เหมาะสมดังนั้นจึงเป็นไปได้ที่จะตั้งค่าตัวแปรเดียวและเส้นทางตำแหน่งทั้งหมดจะอัปเดตโดยอัตโนมัติ ฉันมีคำถามสี่บรรทัด: server_name php.domain.com; root /srv/web/vhosts/php/web; error_log /srv/web/vhosts/php/logs/error.log; access_log /srv/web/vhosts/php/logs/access.log; สิ่งที่ฉันต้องการบรรลุคือการตั้งค่าหนึ่งตัวแปร (ในกรณีนี้ 'php') และรวมถึงการกำหนดค่า set $variable "php"; server_name $variable.domain.com; root /srv/web/vhosts/$variable/web; error_log /srv/web/vhosts/$variable/logs/error.log; access_log /srv/web/vhosts/$variable/logs/access.log; อย่างไรก็ตามมันเห็นว่า nginx ละเว้นตัวแปรในการกำหนดค่านี้ ฉันกำลังทำสิ่งผิดปกติหรือไม่สามารถใช้ตัวแปรในเส้นทางสถานที่ได้หรือไม่
37 nginx 

2
ฉันจะกำหนดค่าที่ตั้ง nginx เพื่อแชร์ตัวเลือกการกำหนดค่าทั่วไปได้อย่างไร
ฉันจะกำหนดค่าบล็อกการตั้งค่าที่ใช้ร่วมกันสำหรับชุดของตำแหน่งที่ตั้งได้อย่างไร location / { proxy_pass http://127.0.0.1:9000/; proxy_redirect off; proxy_set_header Host $http_host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_cache cache-test; proxy_cache_valid 200 302 24h; proxy_cache_valid 404 60s; add_header X-Cache-Status $upstream_cache_status; } location /api/0.1/user{ proxy_cache_key /user/$http_authorization; } ตอนนี้ถ้าฉันพยายามเข้าถึง /api/0.1/user แล้วฉันจะได้รับ 404 เพราะมันไม่ผ่านการร้องขอไปที่ 127.0.0.1:9000
37 nginx 

3
วิธีที่ดีที่สุดในการดีบักไฟล์กำหนดค่า nginx
ฉันมีกฎการเขียนซ้ำจำนวนมากที่ฉันต้องพอร์ตจาก apache ถึง nginx มันเป็นกระบวนการที่ค่อนข้างเจ็บปวดเพราะฉันไม่สามารถดูว่ากฎการเขียนใหม่ของฉันและเงื่อนไข "ถ้า" ทำงานได้ตามที่ฉันต้องการหรือไม่ Apache มีการดีบักสำหรับโมดูลการเขียนใหม่ ฉันจะทำอะไรเพื่อ nginx

4
การติดตั้งโมดูล Nginx ที่เป็นตัวเลือกด้วย apt-get
ปัจจุบันฉันมี Nginx ติดตั้งผ่านคำแนะนำในเว็บไซต์ Nginx: nginx=stable sudo su - add-apt-repository ppa:nginx/$nginx apt-get update apt-get install ฉันได้ปรับแต่ง Nginx แล้วและมันก็ทำงานได้ยอดเยี่ยมมาระยะหนึ่งแล้ว ตอนนี้ผมต้องการที่จะเพิ่มโมดูลที่กำหนดเอง - พูด, อัปโหลดความคืบหน้าโมดูล คำแนะนำสำหรับโมดูลนี้บอกว่าจะเพิ่ม--add-module=path/to/nginx_uploadprogress_moduleไปยัง./configureคำสั่งของคุณ อย่างไรก็ตามฉันไม่ได้ติดตั้ง Nginx จากแหล่งที่มา วิธีที่ดีที่สุดในการจัดการกับสถานการณ์นี้คืออะไร? มันเป็นไปได้ที่จะบอก APT ในการรวบรวมจากแหล่งที่มาและตัวเลือกผ่านไป./configure? ฉันสามารถรวบรวมการติดตั้งที่มีอยู่ได้หรือไม่? เกี่ยวกับเส้นทางฉันจะทำให้มันตรงกันได้อย่างไร หรือฉันต้องลบรุ่นที่จัดการ APT และเริ่มต้นใหม่หรือไม่

1
nginx: ไม่ได้รับอนุญาตให้ผูกพอร์ต 8090 แต่จะผูกกับ 80 และ 8080
ฉันกำลังดิ้นรนกับพฤติกรรมที่เกี่ยวข้องกับการอนุญาตแปลก ๆ : เมื่อฉันกำหนดค่า nginx เพื่อฟังพอร์ต 8080 ทุกอย่างทำงานได้ตามที่คาดไว้ แต่เมื่อฉันใช้พอร์ตอื่นฉันจะได้รับสิ่งที่ชอบ 2014/01/10 09:20:02 [emerg] 30181#0: bind() to 0.0.0.0:8090 failed (13: Permission denied) ใน /var/log/nginx/error.log ฉันไม่มีเงื่อนงำที่จะดูดังนั้นฉันไม่รู้จริง ๆ ว่าส่วนใดของการกำหนดค่าอาจน่าสนใจ ใน nginx.conf nginx ถูกกำหนดค่าให้ทำงานเป็น nginx: user nginx; ผู้ใช้ยัง nginx อยู่ในกลุ่ม 'git' อีกกลุ่มหนึ่ง ในไซต์ -config ฉันพยายามฟังเช่นนี้: server { listen 8090; #does not work #listen 8080; #works …

3
ฉันจะเปลี่ยนผู้ใช้ NGINX ได้อย่างไร
ฉันมีสคริปต์ PHP ที่สร้างไดเรกทอรีและส่งภาพไปยังไดเรกทอรี สิ่งนี้ทำงานได้ดีภายใต้ Apache แต่เมื่อเร็ว ๆ นี้เราตัดสินใจเปลี่ยนเป็น NGINX เพื่อใช้ประโยชน์จาก RAM ที่ จำกัด ฉันใช้คำสั่ง PHP mkdir () เพื่อสร้างไดเรกทอรี: mkdir(dirname($path['image']['server']), 0755, true); หลังจากเปลี่ยนเป็น NGINX ฉันได้รับคำเตือนต่อไปนี้: Warning: mkdir(): Permission denied in ... ฉันได้ตรวจสอบสิทธิ์ทั้งหมดของไดเรคทอรีหลักแล้วฉันจึงตัดสินใจว่าอาจต้องเปลี่ยนผู้ใช้ 'NGINX หรือ PHP-FPM แต่ฉันไม่แน่ใจว่าจะทำอย่างไร (ฉันไม่ต้องระบุผู้ใช้ สิทธิ์สำหรับ APACHE) ฉันไม่สามารถหาข้อมูลมากมายเกี่ยวกับเรื่องนี้ ความช่วยเหลือใด ๆ จะดีมาก! (หมายเหตุ: นอกจากการวางสายเล็กน้อยการสลับไปใช้ NGINX นั้นค่อนข้างราบรื่นฉันใช้มันเป็นครั้งแรกและใช้เวลาเพียง 10 นาทีในการขึ้นและทำงานกับ NGINX ตอนนี้ฉันแค่รีดผ้า …

5
วิธีหยุด nginx บน Mac OS X
ฉันได้ติดตั้งและกำหนดค่าเซิร์ฟเวอร์ nginx บน Mac ของฉันจาก MacPort sudo port install nginx ปฏิบัติตามคำแนะนำจากคอนโซลการติดตั้งพอร์ตและสร้างรายการเริ่มต้น launchd สำหรับ nginx จากนั้นเริ่มเซิร์ฟเวอร์ เปลี่ยนชื่อnginx.conf.exampleไปnginx.confและเปลี่ยนชื่อไปmime.types.examplemime.types มันใช้งานได้ดี แต่ฉันหยุดไม่ได้ ฉันพยายามsudo nginx -s stopแล้ว แต่นี่ไม่ได้หยุดเซิร์ฟเวอร์ฉันยังสามารถเห็น "ยินดีต้อนรับสู่ nginx!" หน้าในเบราว์เซอร์ของฉันบนhttp://localhost/; ผมก็ยังคงเห็นหลักและผู้ปฏิบัติงานของกระบวนการ Nginx ps -e | grep nginxกับ วิธีที่ดีที่สุดในการเริ่ม / หยุด nginx บน Mac คืออะไร BTW ฉันได้เพิ่ม "daemon off;" เข้าสู่ nginx.conf - ตามคำแนะนำของแหล่งข้อมูลต่างๆ
36 nginx  daemon  mac-osx 

5
Nginx vs Apache เป็น reverse proxy ซึ่งเป็นตัวเลือกหนึ่ง
อาจมีคำถามประเภทนี้ที่นี่ แต่ฉันไม่พบสิ่งใดที่ตรงกับคำถามของฉัน ได้ยินว่าประสิทธิภาพของ nginx ค่อนข้างน่าประทับใจ แต่ Apache มีเอกสารเพิ่มเติมชุมชน (อ่าน: ผู้เชี่ยวชาญ) เพื่อรับความช่วยเหลือ ตอนนี้สิ่งที่ฉันต้องการทราบว่าเว็บเซิร์ฟเวอร์ทั้งสองเปรียบเทียบในแง่ของประสิทธิภาพความง่ายในการกำหนดค่าระดับการปรับแต่ง ฯลฯ ย้อนกลับเป็นเซิร์ฟเวอร์ PROXY ในสภาพแวดล้อม vps หรือไม่? ฉันยังคงชั่งน้ำหนักระหว่างสองรายการสำหรับเว็บแอป ruby ​​(ไม่ใช่ ROR) ที่แสดงพร้อมกับเว็บเซิร์ฟเวอร์ (หนึ่งใน ruby) คำตอบเฉพาะจะได้รับการชื่นชมมาก คำตอบทั่วไปที่ไม่แตะต้องส่วนทับทิมก็โอเค ฉันยังคงไม่มีเสียงในการบริหารเว็บเซิร์ฟเวอร์

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