Rumah  >  Artikel  >  Operasi dan penyelenggaraan  >  Cara Nginx melaksanakan konfigurasi kawalan akses berdasarkan nama domain sumber permintaan

Cara Nginx melaksanakan konfigurasi kawalan akses berdasarkan nama domain sumber permintaan

WBOY
WBOYasal
2023-11-08 09:06:481504semak imbas

Cara Nginx melaksanakan konfigurasi kawalan akses berdasarkan nama domain sumber permintaan

Cara Nginx melaksanakan konfigurasi kawalan akses berdasarkan nama domain sumber permintaan memerlukan contoh kod khusus

Nginx ialah perisian pelayan web berprestasi tinggi , ia bukan sahaja boleh berfungsi sebagai pelayan fail statik, tetapi juga boleh mencapai kawalan capaian yang fleksibel melalui konfigurasi. Artikel ini akan memperkenalkan cara melaksanakan konfigurasi kawalan akses berdasarkan nama domain sumber permintaan melalui Nginx, dan memberikan contoh kod khusus.

Fail konfigurasi Nginx biasanya terletak di /etc/nginx/nginx.conf, dan kami boleh menambah konfigurasi yang berkaitan pada fail ini. Berikut ialah contoh fail konfigurasi Nginx asas:

http {
    server {
        listen 80;
        server_name example.com;

        location / {
            proxy_pass http://localhost:8000;
        }
    }
}

Dalam contoh di atas, kami mendengar pada port 80 dan memajukan semua permintaan ke port tempatan 8000. Arahan nama_server digunakan dalam konfigurasi ini untuk menentukan nama domain yang menerima permintaan. Secara lalai, Nginx akan menerima permintaan daripada semua nama domain. Jika anda ingin melaksanakan konfigurasi kawalan akses berdasarkan nama domain sumber permintaan, anda boleh menggunakan arahan if digabungkan dengan $request_header untuk mencapai ini.

Berikut ialah contoh:

http {
    server {
        listen 80;

        if ($http_host ~* "^(www.)?example.com$") {
            location / {
                proxy_pass http://localhost:8000;
            }
        }

        if ($http_host ~* "^(www.)?example2.com$") {
            return 403;
        }
    }
}

Dalam contoh di atas, kami menggunakan dua arahan if untuk melaksanakan konfigurasi kawalan akses berdasarkan nama domain sumber permintaan. Dalam blok if pertama, kami menggunakan pembolehubah $http_host untuk memadankan nama domain example.com dan memajukan permintaan ke port tempatan 8000. Dalam blok if kedua, kami juga menggunakan pembolehubah $http_host untuk memadankan nama domain example2.com dan mengembalikan ralat 403.

Perlu diingatkan bahawa menggunakan arahan if dalam Nginx akan menyebabkan kehilangan prestasi. Jika boleh, adalah disyorkan untuk menggunakan ungkapan biasa untuk padanan nama domain dan menggunakan arahan lokasi untuk mencapai konfigurasi yang lebih cekap.

Selain menggunakan arahan if, Nginx juga menyediakan banyak arahan dan modul lain untuk melaksanakan konfigurasi kawalan akses yang lebih kompleks, seperti modul ngx_http_access_module, modul ngx_http_auth_basic_module, dsb. Anda boleh memilih kaedah konfigurasi yang sesuai mengikut keperluan sebenar.

Ringkasnya, konfigurasi kawalan akses berdasarkan nama domain sumber permintaan boleh dilaksanakan melalui Nginx. Dengan menggunakan arahan if dalam kombinasi dengan pembolehubah $http_host dalam fail konfigurasi, pertimbangan bersyarat boleh dibuat berdasarkan nama domain yang diminta, dengan itu mencapai kawalan akses yang fleksibel. Sudah tentu, untuk memastikan prestasi, adalah disyorkan untuk memilih kaedah konfigurasi yang sesuai dan menggabungkannya dengan modul lain untuk mencapai keperluan kawalan yang lebih kompleks.

Atas ialah kandungan terperinci Cara Nginx melaksanakan konfigurasi kawalan akses berdasarkan nama domain sumber permintaan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn