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

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

11
ใน Nginx ฉันจะเขียนคำขอ http ทั้งหมดไปยัง https ใหม่อีกครั้งในขณะที่ดูแลโดเมนย่อยได้อย่างไร
ฉันต้องการเขียนคำขอ http ทั้งหมดบนเว็บเซิร์ฟเวอร์ของฉันใหม่ให้เป็นคำขอ https ฉันเริ่มต้นด้วยสิ่งต่อไปนี้: เซิร์ฟเวอร์ { ฟัง 80; ตำแหน่ง / { เขียนใหม่ ^ (. *) https: //mysite.com$1 ถาวร } ... ปัญหาหนึ่งคือว่าสิ่งนี้จะลบข้อมูลโดเมนย่อยใด ๆ (เช่น node1.mysite.com/folder) ฉันจะเขียนข้างต้นอีกครั้งเพื่อเปลี่ยนเส้นทางทุกสิ่งไปยัง https และดูแลโดเมนย่อยได้อย่างไร
508 nginx  redirect  https 


8
วิธีการบังคับหรือเปลี่ยนเส้นทางไปยัง SSL ใน nginx
ฉันมีหน้าลงทะเบียนในโดเมนย่อยเช่น: https://signup.example.com มันควรจะสามารถเข้าถึงได้ผ่าน HTTPS แต่ฉันกังวลว่าผู้คนอาจสะดุดมันผ่าน HTTP และรับ 404 html / server block ของฉันใน nginx มีลักษณะดังนี้: html { server { listen 443; server_name signup.example.com; ssl on; ssl_certificate /path/to/my/cert; ssl_certificate_key /path/to/my/key; ssl_session_timeout 30m; location / { root /path/to/my/rails/app/public; index index.html; passenger_enabled on; } } } สิ่งที่ฉันสามารถเพิ่มเพื่อให้ผู้คนที่ไปhttp://signup.example.comได้รับการเปลี่ยนเส้นทางไปยังhttps://signup.example.com? (FYI ฉันรู้ว่ามีปลั๊กอิน Rails ที่สามารถบังคับได้SSLแต่หวังว่าจะหลีกเลี่ยงได้)

4
ทำไมฉันถึงต้องการ Nginx และบางอย่างเช่น Gunicorn
ฉันกำลังมองหาคำตอบที่ง่ายเกินไปสำหรับคำถามต่อไปนี้ ฉันพยายามสร้างความเข้าใจพื้นฐานว่า Nginx ทำงานร่วมกับบางสิ่งเช่น Gunicorn ได้อย่างไร ฉันต้องมีทั้ง Nginx และบางอย่างเช่น Gunicorn เพื่อปรับใช้แอพ Django บน Nginx หรือไม่? ถ้าเป็นเช่นนั้นสิ่งที่จัดการกับคำขอ HTTP จริง ๆ ? ps ฉันไม่ต้องการใช้ Apache และ mod_wsgi!
219 nginx  django 

5
การให้บริการ nginx HTTPS ด้วยการกำหนดค่าเช่นเดียวกับ HTTP
มีวิธีการแบ่งปันคำสั่งการกำหนดค่าในสอง nginx server {}block หรือไม่? ฉันต้องการหลีกเลี่ยงการทำซ้ำกฎเนื่องจากเนื้อหา HTTPS และ HTTP ของเว็บไซต์ของฉันถูกแสดงด้วยการกำหนดค่าเดียวกัน ปัจจุบันเป็นเช่นนี้: server { listen 80; ... } server { listen 443; ssl on; # etc. ... } ฉันสามารถทำบางสิ่งตามแนวของ: server { listen 80, 443; ... if(port == 443) { ssl on; #etc } }
195 nginx  https 


13
ฉันจะใช้ตัวแปรสภาพแวดล้อมใน Nginx.conf ได้อย่างไร
[ข้ามโพสต์และแก้ไขจากhttps://stackoverflow.com/questions/21933955เนื่องจากถูกพิจารณาว่าเป็นระบบที่เหมือนกันกับ StackOverflow] ฉันมีตัวเทียบท่าที่ใช้ Nginx ซึ่งเชื่อมโยงไปยังคอนเทนเนอร์ตัวเทียบท่าอื่น ชื่อโฮสต์และที่อยู่ IP ของคอนเทนเนอร์ที่สองถูกโหลดลงในคอนเทนเนอร์ Nginx เป็นตัวแปรสภาพแวดล้อมเมื่อเริ่มต้น แต่ไม่ทราบมาก่อน (มันเป็นแบบไดนามิก) ฉันต้องการให้ฉันnginx.confใช้ค่าเหล่านี้ - เช่น upstream gunicorn { server $APP_HOST_NAME:$APP_HOST_PORT; } ฉันจะรับตัวแปรสภาพแวดล้อมในการกำหนดค่า Nginx เมื่อเริ่มต้นได้อย่างไร แก้ไข 1 นี่คือไฟล์ทั้งหมดหลังจากคำตอบที่แนะนำด้านล่าง: env APP_WEB_1_PORT_5000_TCP_ADDR; # Nginx host configuration for django_app # Django app is served by Gunicorn, running under port 5000 (via Foreman) upstream gunicorn …
183 nginx  docker 

7
ฉันจะเพิ่ม Access-Control-Allow-Origin ใน NGINX ได้อย่างไร
ฉันจะตั้งค่าส่วนหัว Access-Control-Allow-Origin เพื่อที่ฉันจะสามารถใช้เว็บแบบอักษรจากโดเมนย่อยของฉันบนโดเมนหลักของฉันได้อย่างไร หมายเหตุ: คุณจะพบตัวอย่างของส่วนนี้และส่วนหัวอื่น ๆ สำหรับเซิร์ฟเวอร์ HTTP ส่วนใหญ่ในโครงการ HTML5BP Server Configs https://github.com/h5bp/server-configs
158 nginx  cors 

5
Nginx reverse proxy + URL เขียนใหม่
Nginx ทำงานบนพอร์ต 80 และฉันใช้เพื่อย้อนกลับ URL พร็อกซีด้วยพา ธ/fooไปยังพอร์ต3200ด้วยวิธีนี้: location /foo { proxy_pass http://localhost:3200; proxy_redirect off; proxy_set_header Host $host; } ใช้งานได้ดี แต่ฉันมีแอปพลิเคชันบนพอร์ต3200ซึ่งฉันไม่ต้องการ/fooให้ส่งเริ่มต้นไปที่ นั่นคือ - เมื่อฉันเข้าถึงhttp://localhost/foo/barฉันต้องการเพียง/barเป็นเส้นทางตามที่ได้รับจากแอพ ดังนั้นฉันพยายามเพิ่มบรรทัดนี้ในบล็อกตำแหน่งที่ตั้งด้านบน: rewrite ^(.*)foo(.*)$ http://localhost:3200/$2 permanent; สิ่งนี้ทำให้เกิดการเปลี่ยนเส้นทาง 302 (เปลี่ยนเป็น URL) แต่ฉันต้องการ 301 ฉันควรทำอย่างไร

13
วิธีการตั้งค่า Nginx เป็น reverse proxy แคชหรือไม่
ฉันได้ยินเมื่อเร็ว ๆ นี้ว่า Nginx ได้เพิ่มการแคชลงในคุณลักษณะพร็อกซีย้อนกลับ ฉันมองไปรอบ ๆ แต่ไม่พบข้อมูลมากนัก ฉันต้องการตั้งค่า Nginx เป็น reverse proxy แคชหน้า Apache / Django: เพื่อให้คำขอพร็อกซี Nginx สำหรับหน้าแบบไดนามิกบางส่วน (แต่ไม่ใช่ทั้งหมด) ไปยัง Apache จากนั้นแคชหน้าที่สร้างขึ้นและให้บริการการร้องขอหน้าถัดไปจากแคชเหล่านั้น เป็นการดีที่ฉันต้องการทำให้แคชใช้ไม่ได้ใน 2 วิธี: ตั้งวันที่หมดอายุในรายการที่แคช เพื่อทำให้รายการที่แคชไว้ใช้ไม่ได้อย่างชัดเจน เช่นถ้าแบ็คเอนด์ Django ของฉันมีการอัพเดทข้อมูลบางอย่างฉันต้องการบอก Nginx ให้ทำการแคชของหน้าเว็บที่ได้รับผลกระทบ เป็นไปได้ไหมที่จะตั้งให้ Nginx ทำเช่นนั้น? อย่างไร?

5
Nginx เปิดใช้งานคำสั่งของไซต์
เราทุกคนรู้วิธีเปิดใช้งานเว็บไซต์โดยใช้ apache บน linux ฉันค่อนข้างแน่ใจว่าเราทุกคนเห็นด้วยกับการใช้คำสั่ง a2ensite น่าเสียดายที่ไม่มีคำสั่งเทียบเท่าเริ่มต้นที่มาพร้อมกับ Nginx แต่มันเกิดขึ้นว่าฉันติดตั้งแพคเกจบางอย่างบน Ubuntu ที่อนุญาตให้ฉันเปิด / ปิดการใช้งานไซต์และแสดงรายการ ปัญหาคือฉันจำชื่อของแพ็คเกจนี้ไม่ได้ ใครรู้ว่าฉันกำลังพูดถึงอะไร กรุณาบอกชื่อของแพ็คเกจนี้และชื่อคำสั่ง

4
โหลด Nginx config ใหม่โดยไม่ต้องหยุดทำงาน
ฉันใช้ nginx เป็น reverse proxy เมื่อใดก็ตามที่ฉันอัปเดตการกำหนดค่าโดยใช้ sudo "cp -r #{nginx_config_path}* /etc/nginx/sites-enabled/" sudo "kill -s HUP `cat /var/run/nginx.pid`" ฉันเผชิญกับการหยุดทำงานสั้น ๆ ฉันจะหลีกเลี่ยงสิ่งนั้นได้อย่างไร
122 nginx 

4
ตอบกลับด้วย 200 จากการกำหนดค่า Nginx โดยไม่ต้องให้บริการไฟล์
ฉันได้กำหนดค่า Apache ให้ส่งการตอบกลับ 200 รายการโดยไม่แสดงไฟล์ใด ๆ ด้วยบรรทัดการกำหนดค่านี้ Redirect 200 /hello ฉันสามารถทำสิ่งนี้กับ Nginx ได้หรือไม่? ฉันไม่ต้องการให้บริการไฟล์ฉันแค่ต้องการให้เซิร์ฟเวอร์ตอบกลับด้วย 200 (ฉันเพิ่งบันทึกคำขอ) ฉันรู้ว่าฉันสามารถเพิ่มไฟล์ดัชนีและบรรลุสิ่งเดียวกัน แต่การทำในการกำหนดค่าหมายความว่ามีสิ่งหนึ่งที่ผิดพลาดได้
122 nginx 

4
อะไรคือประเพณีที่แตกต่างกันสำหรับเว็บไซต์ที่สามารถใช้ได้กับไดเรกทอรี conf.d สำหรับ nginx
ฉันมีประสบการณ์ในการใช้ linux แต่ไม่มีใครใช้ nginx ฉันได้รับมอบหมายให้ทำการค้นคว้าตัวเลือกการปรับสมดุลโหลดสำหรับแอปพลิเคชันเซิร์ฟเวอร์ ฉันใช้ apt-get เพื่อติดตั้ง nginx และทุกอย่างดูดี ฉันมีคำถามสองสามข้อ ความแตกต่างระหว่างโฟลเดอร์ที่มีไซต์และโฟลเดอร์ conf.d คืออะไร โฟลเดอร์ทั้งสองนั้นรวมอยู่ในการตั้งค่าเริ่มต้นสำหรับ nginx บทเรียนใช้ทั้ง มีไว้เพื่ออะไรและแนวทางปฏิบัติที่ดีที่สุดคืออะไร โฟลเดอร์ที่เปิดใช้งานไซต์มีไว้เพื่ออะไร ฉันจะใช้มันได้อย่างไร การกำหนดค่าเริ่มต้นอ้างอิงผู้ใช้ www-data หรือไม่ ฉันต้องสร้างผู้ใช้รายนั้นหรือไม่? ฉันจะให้สิทธิ์ที่ดีที่สุดแก่ผู้ใช้สำหรับการเรียกใช้ nginx ได้อย่างไร

7
การตั้งค่าหมดอายุส่วนหัวสำหรับเนื้อหาคงที่แสดงจาก nginx
ฉันใช้ nginx กับเซิร์ฟเวอร์เนื้อหาคงที่ของฉันมีวิธีที่ฉันสามารถตั้งค่าส่วนหัวหมดอายุสำหรับทุกไฟล์ที่ตรงกับกฎเฉพาะหรือไม่ ตัวอย่างเช่นฉันสามารถตั้งค่าส่วนหัวหมดอายุสำหรับไฟล์ทั้งหมดที่มีนามสกุลเป็น '.css' ได้หรือไม่
96 nginx  cache 

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