Rumah >Operasi dan penyelenggaraan >Nginx >Apakah senario aplikasi utama dalam Nginx?

Apakah senario aplikasi utama dalam Nginx?

PHPz
PHPzke hadapan
2023-05-16 14:55:171553semak imbas

    Senario aplikasi utama Nginx

    Penyerahan laman web statik

    nginx ialah pelayan web http yang boleh menyimpan fail statik pada pelayan ( html, css, gambar) dikembalikan kepada klien pelayar melalui protokol HTTP.

    Contoh: Kami menggunakan sumber statik index.html pada pelayan

    Apakah senario aplikasi utama dalam Nginx?

    Muat naik index.html ke linux /opt/www/test

    Apakah senario aplikasi utama dalam Nginx?

    Ubah suai nginx.conf dan tambah lokasi untuk memintas permintaan untuk /test. Laluan /opt/www yang sepadan dengan root mewakili laluan root, iaitu /slash di hadapan /test

    location /test {
                root   /opt/www;
                index  index.html;
            }

    Mulakan nginx atau muat semula nginx

    Apakah senario aplikasi utama dalam Nginx?

    Jom layari: http://192.168.253.130/test/

    Apakah senario aplikasi utama dalam Nginx?

    Pengimbangan beban

    Pengimbangan beban boleh dibahagikan kepada pengimbangan beban perkakasan dan pengimbangan beban perisian

    Pengimbangan beban perkakasan, seperti F5, Sangfor, Array, dsb., mempunyai kelebihan disokong oleh pasukan profesional pengilang Prestasi stabil; kelemahan adalah mahal

    Pengimbangan beban perisian, seperti Nginx, LVS, HAProxy, dll., kelebihan adalah sumber terbuka percuma, kos rendah

    Kaedah pengundian: peruntukkan permintaan secara bergilir-gilir Pada pelayan bahagian belakang, ia melayan setiap pelayan bahagian belakang secara sama rata, tanpa mengira bilangan sambungan sebenar ke pelayan dan beban sistem semasa.

    http {
        upstream test{
        ##后端实际服务器 nginx在轮询访问以下几台服务器
            server 10.100.30.1:8080;
            server 10.100.30.2:8080;
            server 10.100.30.3:8080;
            server 10.100.30.4:8080;
        }
        server {
        ##前端拦截入口
            listen 80;
            server_name www.test.com;
            location / { 
                proxy_pass http://test;
            }
        }
    }

    Kaedah undian berwajaran: Pelayan bahagian belakang yang berbeza mungkin mempunyai konfigurasi mesin yang berbeza dan beban sistem semasa, jadi rintangan tekanannya juga berbeza.

    Tetapkan pemberat yang lebih tinggi kepada mesin dengan konfigurasi tinggi dan beban rendah untuk membolehkan mereka mengendalikan lebih banyak permintaan; dan tetapkan pemberat yang lebih rendah kepada mesin dengan konfigurasi rendah dan beban tinggi untuk mengurangkan beban sistem mereka menangani masalah ini dengan baik dan mengedarkan permintaan ke bahagian belakang mengikut susunan dan mengikut berat.

    http {
        upstream test{
        ##后端实际服务器 nginx在轮询访问以下几台服务器
            server 10.100.30.1:8080 weight=1;
            server 10.100.30.2:8080 weight=3;
            server 10.100.30.3:8080 weight=1;
            server 10.100.30.4:8080 weight=1;
        }
        server {
        ##前端拦截入口
            listen 80;
            server_name www.test.com;
            location / { 
                proxy_pass http://test;
            }
        }
    }

    Kaedah pencincangan alamat sumber: Menurut alamat IP klien, nilai dikira melalui fungsi cincang, dan nilai digunakan untuk melaksanakan operasi modulo pada saiz senarai pelayan yang diperoleh adalah apa yang pelanggan inginkan Nombor siri untuk mengakses pelayan.

    Gunakan kaedah cincang alamat sumber untuk pengimbangan beban Pelanggan dengan alamat IP yang sama akan dipetakan ke pelayan bahagian belakang yang sama untuk akses setiap kali apabila senarai pelayan bahagian belakang kekal tidak berubah.

    upstream test{
            ip_hash;
            server 10.100.30.1:8080 weight=1;
            server 10.100.30.2:8080 weight=3;
            server 10.100.30.3:8080 weight=1;
            server 10.100.30.4:8080 weight=1;
        }

    Kaedah sambungan bilangan minimum: Memandangkan konfigurasi pelayan hujung belakang adalah berbeza, pemprosesan permintaan mungkin lebih pantas atau lebih perlahan Bilangan kaedah sambungan minimum secara dinamik memilih tunggakan semasa berdasarkan sambungan semasa status pelayan bahagian belakang Pelayan dengan bilangan sambungan yang paling sedikit akan mengendalikan permintaan semasa, meningkatkan kecekapan penggunaan perkhidmatan bahagian belakang sebanyak mungkin, dan mengagihkan tanggungjawab secara munasabah kepada setiap pelayan.

    upstream test{
            least_conn;
            server 10.100.30.1:8080;
            server 10.100.30.2:8080;
            server 10.100.30.3:8080;
            server 10.100.30.4:8080;
        }

    turun: Menunjukkan menghentikan perkhidmatan tertentu

    upstream test{
            server 10.100.30.1:8080 down;
            server 10.100.30.2:8080;
            server 10.100.30.3:8080;
            server 10.100.30.4:8080;
        }

    sandaran: Menentukan pelayan sandaran Dalam keadaan biasa, selagi pelayan lain boleh diakses secara normal, pelayan sandaran tidak akan diakses. hanya pelayan lain Pelayan siap sedia hanya akan digunakan apabila semua tidak berfungsi, jadi kaedah ini biasanya digunakan untuk melaksanakan penggunaan panas Kod dikemas kini ke pelayan siap sedia terlebih dahulu, dan kemudian pelayan biasa dihentikan selesai, pelayan siap sedia menunggu lagi, keseluruhan proses penggunaan membolehkan pengguna tidak mengalami masa henti.

    upstream test{
            server 10.100.30.1:8080 backup;
            server 10.100.30.2:8080 backup;
            server 10.100.30.3:8080;
            server 10.100.30.4:8080;
        }
    • Proksi statik

    • Pemisahan statik dan dinamik

    • Hos maya

    Senario dan contoh penggunaan Nginx

    Nginx ialah pelayan HTTP berprestasi tinggi, konkurensi tinggi dan sebaliknya Pelayan proksi boleh digunakan dalam pelbagai senario seperti pelayan sumber statik, pengimbang beban, proksi terbalik, pelayan cache dan pelayan web.

    Berikut ialah beberapa senario dan contoh penggunaan:

    1 Pelayan sumber statik

    Apabila menggunakan Nginx sebagai pelayan sumber statik, Nginx akan mengembalikan fail yang diminta secara langsung. Kurangkan beban pada pelayan web. Senario ini biasanya digunakan untuk menyediakan muat turun fail statik atau akses kepada fail besar seperti video.

    Berikut ialah contoh konfigurasi Nginx:

    server {
        listen       80;
        server_name  example.com;
        location / {
            root   /usr/share/nginx/html;
            index  index.html index.htm;
        }
        location /images/ {
            alias /var/www/images/;
        }
        location /downloads/ {
            alias /var/www/downloads/;
        }
    }

    Dalam konfigurasi di atas, Nginx akan memetakan permintaan untuk mengakses direktori root (/) ke direktori /usr/share/nginx/html. Jika permintaan Jika fail yang diminta ialah fail dalam direktori /images/, Nginx akan memetakannya ke direktori /var/www/images/ Jika fail yang diminta ialah fail dalam direktori /downloads/, Nginx akan memetakannya ke direktori /var/www/downloads/.

    2. Proksi terbalik

    Apabila menggunakan Nginx sebagai pelayan proksi terbalik, Nginx akan memajukan permintaan ke pelayan web untuk diproses, dan kemudian mengembalikan hasil pemprosesan kepada klien.

    Senario ini biasanya digunakan untuk mencapai pengimbangan beban, meningkatkan keselamatan pelayan web, menyembunyikan IP sebenar pelayan web, dsb.

    Berikut ialah contoh konfigurasi Nginx:

    upstream backend {
        server backend1.example.com:8080 weight=3;
        server backend2.example.com:8080;
    }
    server {
        listen 80;
        server_name example.com;
        location / {
            proxy_pass http://backend;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
        }
    }

    上述配置中,Nginx会将访问根目录(/)的请求转发给后端的Web服务器(backend1.example.com和backend2.example.com),其中backend1.example.com的权重为3,backend2.example.com的权重为1,表示backend1.example.com的处理能力更强。

    在转发请求时,Nginx还会设置HTTP头信息中的Host和X-Real-IP字段,从而隐藏Web服务器的真实IP。

    3.负载均衡器

    在使用Nginx作为负载均衡器时,Nginx会将请求均衡地分发到多个Web服务器上,从而实现高并发、高可用的服务。这种场景通常用于Web应用程序的集群部署、分布式系统的部署等。下面是一个示例Nginx配置:

    upstream backend {
        server backend1.example.com:8080;
        server backend2.example.com:8080;
        server backend3.example.com:8080;
    }
    server {
        listen 80;
        server_name example.com;
        location / {
        proxy_pass http://backend;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        }
    }

    上述配置中,Nginx会将请求均衡地分发到三个Web服务器(backend1.example.com、backend2.example.com和backend3.example.com)上,从而实现负载均衡。

    在转发请求时,Nginx还会设置HTTP头信息中的Host和X-Real-IP字段,从而隐藏Web服务器的真实IP。

    4.缓存服务器

    在使用Nginx作为缓存服务器时,Nginx会缓存Web服务器返回的响应,从而减少对Web服务器的请求。这种场景通常用于提高Web应用程序的性能、降低Web服务器的负载等。下面是一个示例Nginx配置:

    proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=my_cache:10m inactive=60m;
    server {
    listen 80;
    server_name example.com;
        location / {
            proxy_cache my_cache;
            proxy_pass http://backend;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
        }
    }

    上述配置中,Nginx会将Web服务器返回的响应缓存到/var/cache/nginx/my_cache目录下,并设置缓存有效期为60分钟。在缓存命中时,Nginx会直接返回缓存的响应,从而减少对Web服务器的请求。

    总之,Nginx具有很强的可扩展性和灵活性,可以根据不同的需求配置不同的使用场景。以上仅是一些示例,实际应用中还有很多其他的使用场景。

    5.反向代理服务器

    在使用Nginx作为反向代理服务器时,Nginx会将客户端请求转发到后端的Web服务器上,并将后端服务器返回的响应转发给客户端。这种场景通常用于隐藏后端服务器的真实IP、提高Web应用程序的可用性等。下面是一个示例Nginx配置:

    server {
        listen 80;
        server_name example.com;
        location / {
            proxy_pass http://backend;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
        }
    }

    上述配置中,Nginx会将客户端请求转发到http://backend上,并设置HTTP头信息中的Host和X-Real-IP字段,从而隐藏后端服务器的真实IP。

    6.WebSocket服务器

    在使用Nginx作为WebSocket服务器时,Nginx会将客户端请求转发到后端的WebSocket服务器上,并实现WebSocket协议的连接管理。这种场景通常用于实时通信、游戏等应用程序。

    下面是一个示例Nginx配置:

    map $http_upgrade $connection_upgrade {
        default upgrade;
        '' close;
    }
    server {
        listen 80;
        server_name example.com;
        location / {
            proxy_pass http://backend;
            proxy_http_version 1.1;
            proxy_set_header Upgrade $http_upgrade;
            proxy_set_header Connection $connection_upgrade;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
        }
    }

    上述配置中,Nginx会将WebSocket请求转发到http://backend上,并设置HTTP头信息中的Upgrade、Connection、Host和X-Real-IP字段,从而实现WebSocket协议的连接管理。

    总之,Nginx具有很多的使用场景,可以根据不同的需求配置不同的服务器功能。以上仅是一些示例,实际应用中还有很多其他的使用场景。

    Atas ialah kandungan terperinci Apakah senario aplikasi utama dalam Nginx?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

    Kenyataan:
    Artikel ini dikembalikan pada:yisu.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam