Saya baru mengenal NGINX dan saya mencoba untuk mengatur hal yang bekerja minimal. Jadi saya mencoba menjalankan aplikasi mini aiohttp dengan nginx dan supervisor (dengan contoh ini). Tetapi saya tidak dapat mengkonfigurasi Nginx dengan benar dan mendapatkan kesalahan berikut:
nginx: [emerg] "http" directive is not allowed here in /etc/nginx/sites-enabled/default:1
Berikut ini adalah file default.conf lengkap:
http {
upstream aiohttp {
# Unix domain servers
server unix:/tmp/example_1.sock fail_timeout=0;
server unix:/tmp/example_2.sock fail_timeout=0;
server unix:/tmp/example_3.sock fail_timeout=0;
server unix:/tmp/example_4.sock fail_timeout=0;
}
server {
listen 80;
client_max_body_size 4G;
server example.com;
location / {
proxy_set_header Host $http_host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_redirect off;
proxy_buffering off;
proxy_pass http://aiohttp;
}
}
}
Kelihatannya benar. Arahan server
berada di http
sebagaimana mestinya. Dan http adalah direktif induk. Apa yang saya lakukan salah?
Saya mengasumsikan bahwa Anda memiliki http
di file /etc/nginx/nginx.conf Anda yang kemudian memberitahu nginx untuk include sites-enabled/*;
Jadi, Anda memiliki
http
http
server
Karena arahan http seharusnya hanya terjadi sekali saja, hapus saja arahan http dari file konfigurasi yang diaktifkan situs Anda