ฉันพยายามเซ็ตอัพ nginx ให้รันด้วยหนึ่งในแอพพลิเคชั่นทางรถไฟของฉันเมื่อดูผลลัพธ์ps -e | grep nginx
แล้วฉันก็รู้ว่ากระบวนการของคนงาน nginx ทำงานโดยไม่มีผู้ใช้
มีเหตุผลทำไมพวกเขาไม่ทำงานเป็นข้อมูล www?
ฉันพยายามเซ็ตอัพ nginx ให้รันด้วยหนึ่งในแอพพลิเคชั่นทางรถไฟของฉันเมื่อดูผลลัพธ์ps -e | grep nginx
แล้วฉันก็รู้ว่ากระบวนการของคนงาน nginx ทำงานโดยไม่มีผู้ใช้
มีเหตุผลทำไมพวกเขาไม่ทำงานเป็นข้อมูล www?
คำตอบ:
มีเหตุผลทำไมพวกเขาไม่ทำงานเป็นข้อมูล www?
ใช่. คุณมักไม่ได้ระบุผู้ใช้ของคุณ Nginx การตั้งค่า
คำสั่งของผู้ใช้: http://nginx.org/en/docs/ngx_core_module.html#user
syntax: user user [group];
default:
user nobody nobody;
context: main
คุณสามารถระบุผู้ใช้ / กลุ่มที่ nginx ทำงานเป็นในการกำหนดค่า nginx
นี่คือตัวอย่างของการกำหนดค่า nginx ที่อาจมีลักษณะ (สังเกตคำสั่งของผู้ใช้):
pid /path/to/nginx.pid;
user www-data www-data;
worker_processes 1;
events {
worker_connections 1024; # usually 1024 is a good default
}
http {
# more code goes here
}
เพียงอัปเดตการกำหนดค่าของคุณแล้วโหลดใหม่หรือรีสตาร์ท nginx และคุณน่าจะไปได้ดี
แน่นอนคุณควรเลือกผู้ใช้ที่ทำงานได้ดีที่สุดสำหรับระบบของคุณใน Debian / Ubuntu จะมี www-data เป็นค่าเริ่มต้นดังนั้นจึงเป็นตัวเลือกที่สมเหตุสมผล
กระบวนการหลักที่มีการทำงานเป็นรากแล้วจะ Nginx setuid()
/ setgid()
เพื่อ/USER
GROUP
หากGROUP
ไม่ได้ระบุแล้ว Nginx USER
ใช้ชื่อเดียวกับชื่อ
โดยค่าเริ่มต้นคือnobody
ผู้ใช้และnobody
หรือกลุ่ม nogroup หรือ--user=USER
และ--group=GROUP
จาก./configure
สคริปต์
คุณสามารถแก้ไข nginx.conf และ set user to www www;