Kami telah menggunakan aplikasi rel kami di pada nginx dan penumpang. Beberapa halaman aplikasi bisa dimuat secara parsial. Tidak ada kesalahan dalam log aplikasi. Tetapi log kesalahan nginx menunjukkan hal-hal berikut:
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"
Jawaban:
Saya memiliki masalah yang sama pada pengaturan NGINX / PHP-FPM (php-fpm = peningkatan fcgi untuk php).
Anda dapat mengetahui pengguna mana yang menjalankan proses nginx
Dan kemudian periksa apakah izin di file proxy Anda sudah benar
Dalam kasus saya, nginx berjalan sebagai
www-data
dan dua direktori di direktori proxy saya milik root.Saya belum tahu bagaimana itu terjadi, tetapi saya memperbaikinya dengan melakukan (sebagai root)
sumber
Anda mungkin mulai dengan root pengguna, lalu mengubahnya. Sekarang masalahnya adalah folder cache, yaitu
sudah dimiliki oleh root, sehingga nginx Anda (atau apa pun yang Anda coba untuk beralih) pengguna tidak dapat mengaksesnya karena mereka memiliki izin 700.
Jadi solusinya mudah. Hentikan nginx, lalu:
atau apa pun jalan di distro Anda dan lepaskan. Kemudian restart nginx yang akan membuat kembali folder-folder ini dengan izin yang sesuai.
sumber
Periksa juga file nginx.conf untuk memastikan Anda menentukan grup AND AND yang benar.
Saya punya masalah ketika izin pada direktori disetel untuk nama pengguna / nginx, tetapi pengguna nginx.conf hanya menentukan nama pengguna. Secara default, jika tidak ada grup yang diberikan ke arahan pengguna, ia menggunakan nama yang sama dengan pengguna. Jadi, nama pengguna / nama pengguna mencoba mengakses direktori alih-alih nama pengguna / nginx. Memperbarui konfigurasi telah memperbaiki masalah saya.
Lihat: http://nginx.org/en/docs/ngx_core_module.html#user
sumber
Jadi saya melakukan semua hal di atas dan sayangnya bagi saya itu memberi saya kesalahan yang sama. Saya menjalankan aplikasi rel yang dikemas ke dalam file jar dengan torquebox pada mesin centos 6.7 dengan nginx. Saya berjuang ini selama sekitar 3 jam sampai saya menemukan solusi lain dan saya harap ini membantu orang lain. Menurut artikel ini nginx dapat berjalan pada mode penegakan. Saya hanya mengubah nginx ke mode permissive dengan
Dengan itu, kesalahan sudah hilang dan saya bisa menjalankan aplikasi saya di lingkungan pementasan / produksi.
Saya tidak mengerti sampai saya menemukan kesalahan pada audit.log
Saya sangat berharap ini menyelamatkan seseorang 3 jam saya baru saja kehilangan.
sumber
setsebool -P httpd_can_network_connect 1
dari stackoverflow.com/a/24830777/721331Saat memulai nginx dari akun yang tidak terjangkau, akun
use_temp_path=off
.Ini diperlukan untuk menghindari nginx mencoba menempatkan file ke dalam default
proxy_temp_path
. Dari dokumen nginx:sumber
Saya memiliki masalah yang sama dan diselesaikan oleh chmod ke direktori itu.
sumber