Saya telah mengkonfigurasi ulang nginx tetapi saya tidak bisa membuatnya restart menggunakan konfigurasi berikut:
conf:
server {
listen 80;
server_name www.example.com;
return 301 $scheme://example.com$request_uri;
}
server {
listen 80;
server_name example.com;
access_log /var/log/nginx/access.log;
error_log /var/log/nginx/error.log;
location /robots.txt {
alias /path/to/robots.txt;
access_log off;
log_not_found off;
}
location = /favicon.ico { access_log off; log_not_found off; }
location / {
proxy_pass_header Server;
proxy_set_header Host $http_host;
proxy_redirect off;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Scheme $scheme;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_connect_timeout 30;
proxy_read_timeout 30;
proxy_pass http://127.0.0.1:8000;
}
location /static {
expires 1M;
alias /path/to/staticfiles;
}
}
setelah menjalankan sudo nginx -c conf -t
untuk menguji konfigurasi kesalahan berikut dikembalikan saya tidak tahu apa sebenarnya masalahnya
nginx: [emerg] "server" directive is not allowed here in /etc/nginx/sites-available/config:1
nginx: configuration file /etc/nginx/sites-available/config test failed
Contoh nginx.conf yang valid untuk reverse proxy; Jika seseorang terjebak seperti saya. di mana
10.x.x.x
server tempat Anda menjalankan server proxy nginx dan yang Anda sambungkan dengan browser, dan di10.y.y.y
mana server web Anda yang sebenarnya berjalanBerikut ini potongannya jika Anda ingin melakukan pass SSL. Itu jika
10.y.y.y
menjalankan webserver HTTPS. Di sini10.x.x.x
, atau di mana nignx berjalan mendengarkan port 443, dan semua lalu lintas ke 443 diarahkan ke server web target Andadan Anda bisa menyajikannya di buruh pelabuhan juga
sumber
Path ke
nginx.conf
file yang merupakan file Konfigurasi utama untuk Nginx - yang juga merupakan file yang akan TERMASUK Path untuk file Nginx Config lainnya jika diperlukan/etc/nginx/nginx.conf
.Anda dapat mengakses dan mengedit file ini dengan mengetik ini di terminal
cd /etc/nginx
/etc/nginx$ sudo nano nginx.conf
Lebih lanjut dalam file ini Anda dapat menyertakan file lain - yang dapat memiliki direktif SERVER sebagai SERVER BLOCK independen - yang tidak perlu berada dalam blok HTTP atau HTTPS, seperti yang dijelaskan dalam jawaban yang diterima di atas.
Saya ulangi - jika Anda memerlukan SERVER BLOCK untuk didefinisikan dalam file PRIMARY Config itu sendiri daripada SERVER BLOCK harus didefinisikan dalam blok HTTP atau HTTPS yang melingkupi
/etc/nginx/nginx.conf
file yang merupakan file Konfigurasi utama untuk Nginx.Juga catat -itu OK jika Anda mendefinisikan, SERVER BLOCK secara langsung tidak menyertakannya dalam blok HTTP atau HTTPS, dalam file yang terletak di jalur
/etc/nginx/conf.d
. Juga untuk membuat ini bekerja, Anda perlu memasukkan path dari file ini ke file PRIMARY Config seperti yang terlihat di bawah ini: -Selanjutnya Anda dapat berkomentar dari file PRIMARY Config, baris
dan tidak perlu menyimpan File Config apa pun
/etc/nginx/sites-available/
dan juga tidak perlu SIMBOLIS Tautkan ke/etc/nginx/sites-enabled/
, mohon perhatikan ini berfungsi untuk saya - jika ada yang berpikir itu tidak untuk mereka atau konfigurasi semacam ini ilegal dll dll, tolong tinggalkan komentar sehingga saya dapat mengoreksi diri sendiri - terima kasih.EDIT: - Menurut versi terbaru dari Nginx CookBook Resmi, kita tidak perlu membuat Konfigurasi apa pun di dalamnya -
/etc/nginx/sites-enabled/
, ini adalah praktik yang lebih lama dan sekarang sudah TIDAK DIGUNAKAN LAGI .Jadi Tidak perlu INCLUDE DIRECTIVE
include /etc/nginx/sites-available/some_file.conf;
.Kutipan dari halaman Buku Cook Nginx - 5.
sumber
Mungkin hanya ada kesalahan ketik di mana saja di dalam file yang diimpor oleh konfigurasi. Misalnya, saya membuat kesalahan ketik jauh di dalam file konfigurasi saya:
(loccation bukannya location), dan ini menyebabkan error:
sumber