Saya menjalankan nginx di Windows Server 2008 R2 (x64) sebagai layanan windows. Saya menggunakan Windows Service Wrapper untuk itu. (Sebenarnya, saya telah mengikuti tutorial ini: http://mercurial.selenic.com/wiki/HgServeNginxWindows .)
Layanan berjalan ok. Namun, server tidak memproses sinyal (mis. Stop / reload).
Ini berarti jika saya menghentikan layanan, nginx tidak berhenti. (Aku harus membunuhnya.)
Dan ketika saya ingin memuat ulang konfigurasi dari baris perintah:
C:\Users\Administrator>E:\apath\nginx\nginx.exe -p E:\apath\nginx -c E:\apath\nginx.conf -s reload
Ini menghasilkan:
nginx: [error] OpenEvent("Global\ngx_reload_4268") failed (5: Access is denied)
Saya menjalankan perintah sebagai administrator dan layanan berjalan di bawah pengguna LAYANAN NETWORK.
Ada petunjuk atau masalah serupa?
Jawaban:
Anda harus menjalankan
reload
dari akun yang sama dengan menjalankan layanan. Misalnya, jika Anda menjalankan nginx sebagai SISTEM, maka Anda dapat menggunakanpsexec
alat:PSEXEC -s c:\nginx\nginx.exe -p c:\nginx -s reload
sumber
Saya menjalankan layanan nginx di bawah SISTEM LOKAL dan saya menggunakan konfigurasi xml berikut:
Saya menggunakan Windows Service Wrapper 1.18 dan konfigurasi ini berfungsi untuk saya. Proses nginx harus dihentikan dengan anggun sekarang. Semoga berhasil.
sumber
Beberapa hal untuk dicoba:
Mengapa dijalankan di akun LAYANAN NETWORK? Coba dengan default untuk semua layanan, LocalSystem.
Ikuti tutorial ini untuk mencoba pembungkus lain, AlwaysUp . Jika berhasil maka Anda mungkin menghadapi masalah dengan Windows Service Wrapper.
Silakan laporkan apa yang Anda temukan.
sumber
agar bisa bekerja untuk saya di Windows 10 dengan nginx 1.9.15 saya harus menambahkan
dalam argumen berhenti
sumber
cmd
sebagai Administrator .cd
ke folder tempat nginx berada dan kemudian jalankan perintah:cmd (sebagai Administrator)
sumber