Saya bekerja dengan mengkonfigurasi proyek Django dengan Nginx dan Gunicorn.
Sementara saya mengakses port saya gunicorn mysite.wsgi:application --bind=127.0.0.1:8001
di server Nginx, saya mendapatkan kesalahan berikut dalam file log kesalahan saya;
2014/05/30 11:59:42 [crit] 4075 # 0: * 6 terhubung () ke 127.0.0.1:8001 gagal (13: Izin ditolak) saat tersambung ke hulu, klien: 127.0.0.1, server: localhost, permintaan: "GET / HTTP / 1.1", upstream:,
"http://127.0.0.1:8001/"
host: "localhost: 8080"
Di bawah ini adalah isi nginx.conf
file saya ;
server {
listen 8080;
server_name localhost;
access_log /var/log/nginx/example.log;
error_log /var/log/nginx/example.error.log;
location / {
proxy_pass http://127.0.0.1:8001;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header Host $http_host;
}
}
Di halaman HTML saya dapatkan 502 Bad Gateway
.
Kesalahan apa yang saya lakukan?
sumber
yum install policycoreutils-python
untuk mendapatkan yangaudit2allow
pertama. Referensi: centos.org/forums/viewtopic.php?t=5012policycoreutils-python
tidak memberikan perintahaudit2allow
. Setelah beberapa penelitian saya menemukan Anda harus menginstal paket develyum install policycoreutils-devel
. Referensi: danwalsh.livejournal.com/61710.htmlSaya juga mengalami masalah ini. Solusi lain adalah dengan mengaktifkan nilai SELinux boolean untuk terhubung ke jaringan httpd
on
(Nginx menggunakan label httpd).Untuk membuat perubahan tetap ada gunakan flag -P.
Anda dapat melihat daftar semua boolean SELinux yang tersedia untuk menggunakan httpd
sumber
Punya masalah serupa pada Centos 7. Ketika saya mencoba menerapkan solusi yang ditentukan oleh Sorin, saya mulai bergerak dalam siklus. Pertama-tama saya mendapat izin {write} ditolak. Kemudian ketika saya dipecahkan bahwa saya memiliki izin {connectto} ditolak. Kemudian kembali lagi ke izin {write} ditolak.
Mengikuti @Sid jawaban di atas memeriksa bendera menggunakan
getsebool -a | grep httpd
dan beralih mereka saya menemukan bahwa selain httpd_can_network_connect dimatikan. http_anon_write juga tidak aktif sehingga izin ditolak tulis dan izin ditolak {connectto}Diperoleh menggunakan sudo cat /var/log/audit/audit.log | grep nginx | grep ditolak seperti dijelaskan di atas.
Jadi saya memecahkannya satu per satu, mengibarkan bendera satu per satu.
Kemudian jalankan perintah yang ditentukan oleh @sorin dan @ Joseph di atas
Pada dasarnya Anda dapat memeriksa izin yang ditetapkan pada setsebool dan menghubungkannya dengan kesalahan yang diperoleh dari grepp'ing 'audit.log nginx, ditolak
sumber
Saya telah memecahkan masalah saya dengan menjalankan Nginx saya sebagai pengguna yang saat ini saya masuk dengannya, mulagala .
Secara default pengguna sebagai nginx didefinisikan di bagian paling atas dari
nginx.conf
file seperti yang terlihat di bawah ini;Ubah nginx dengan nama pengguna Anda saat ini - di sini, mulagala .
Namun, ini mungkin tidak mengatasi masalah yang sebenarnya dan mungkin sebenarnya memiliki efek samping biasa.
Untuk solusi yang efektif, silakan merujuk ke solusi Joseph Barbere .
sumber
jika kesalahan "502 Bad Gateway" melempar url api centos untuk api gateway proksi meneruskan pada nginx, jalankan perintah berikut untuk menyelesaikan masalah
sumber
13-izin-ditolak-saat-menghubungkan-ke-upstreamnginx di server centos -
setsebool -P httpd_can_network_connect 1
sumber
Saya juga mengalami masalah ini. Saya menggunakan Nginx dengan HHVM, solusi di bawah ini memperbaiki masalah saya:
sumber
/etc/nginx/nginx.conf
Sekarang lihat keajaibannya.
sumber
Terima kasih banyak. Saya telah menerapkan panduan ini pada: Centos 7, AspNet Core 3.1, pengaturan Nginx.
sumber
Terima kasih atas jawabannya. Jawaban dari Kumar pada 21 Agustus '19 di 12:14 memberi saya jeda setelah beberapa hari memecahkan masalah yang saya miliki, yaitu:
Solusi yang saya terapkan adalah sebagai berikut:
sumber
sumber