Gemeinsame Nutzung der Nginx-Szenario-Anwendungstechnologie

小云云
Freigeben: 2023-03-19 17:58:02
Original
1398 Leute haben es durchsucht

Dieser Artikel teilt Ihnen hauptsächlich die Nginx-Szenenanwendungstechnologie mit und hofft, allen zu helfen.

Nginx als statischer Ressourcen-Webdienst

Konfigurationskontext: http, Server oder Standort.

Es kann sich um Ressourcenkomprimierung, domänenübergreifenden Zugriff, Anti-Leeching und andere Szenarien handeln.

Kontext der Ressourcenkomprimierungskonfiguration: http, Server oder Standort
Kontext der domänenübergreifenden Konfiguration: http, Server oder Standort
Kontext der Anti-Hotlink-Konfiguration: Server, Standort

Konfigurationsreferenz

<span style="font-size: 14px;">vi /etc/nginx/conf.d/default.conf<br></span>
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
<span style="font-size: 14px;">server {<br>    ...<br>    <br>    # 开启sendfile,提高网络包的传输效率<br>    sendfile on;<br>    <br>    # 配置图片资源的存放路径及压缩方式<br>    location ~ .*\.(jpg|gif|png)$ {<br>        gzip on;<br>        gzip_http_version 1.1;<br>        gzip_comp_level 2;<br>        gzip_types text/plain application/javascript application/x-javascript text/css application/xml text/javascript application/x-httpd-php image/jpeg image/gif image/png;<br>        # 图片防盗链配置 <br>        # 不指定referer 协议不正确 放行指定IP 放行SEO优化<br>        valid_referers none blocked 39.104.116.91 ~/google\./;<br>        if ($invalid_referer) {<br>            return 403;<br>        }<br>        root /opt/app/code/images;<br>    }<br><br>    # 配置txt|xml资源的存放路径及压缩方式<br>    location ~ .*\.(txt|xml)$ {<br>        gzip on;<br>        gzip_http_version 1.1;<br>        gzip_comp_level 1;<br>        gzip_types text/plain application/javascript application/x-javascript text/css application/xml text/javascript application/x-httpd-php image/jpeg image/gif image/png;<br>        root /opt/app/code/doc;<br>    }<br>    # 缓存与跨域场景配置<br>    location ~ .*\.(html|htm)$ {<br>        #给返回报文添加Cache-Control、Expires头,控制缓存<br>        #expires 24h;<br>        #允许跨域到指定域<br>        add_header Access-Control-Allow-Origin http://somehost.com;<br>        add_header Access-Control-Allow-Methods GET,POST,PUT,DELETE,OPTIONS;<br>        root /opt/app/code;<br>    }<br><br>}<br></span>
Nach dem Login kopieren

Nginx als Proxy-Dienst

Forward-Proxy

Forward-Proxy ist der Client-Proxy. Der Client richtet einen Proxyserver ein, um die Zugriffsanforderungen für die Zieladresse zu erfüllen.

Nginx kann als dieser Proxyserver fungieren

Konfigurationsreferenz

<span style="font-size: 14px;">vi /etc/nginx/conf.d/default.conf<br></span>
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
<span style="font-size: 14px;">server {<br>    ...<br>    # 可能会涉及到DNS域名解析<br>    resolver 8.8.8.8;<br>    location / {<br>        # 原封不动的让自己转发客户端的请求<br>        proxy_pass http://$http_host$request_uri;<br>    }<br>}<br></span>
Nach dem Login kopieren

Reverse-Proxy

Reverse-Proxy ist ein serverseitiger Proxy. Verstecken Sie die echte Serveradresse vor Clients.

Konfigurationsreferenz

<span style="font-size: 14px;">vi /etc/nginx/conf.d/default.conf<br></span>
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
<span style="font-size: 14px;">server {<br>location / {<br>        #Real Server地址<br>        proxy_pass http://127.0.0.1:8080;<br>        include proxy_params;<br>    }<br>}<br></span>
Nach dem Login kopieren
<span style="font-size: 14px;"># 其他代理配置独立出去,方便复用<br>vi /etc/nginx/proxy_param<br></span>
Nach dem Login kopieren
<span style="font-size: 14px;"># default就可以了。除非返回301的场景,可能需要改写<br>proxy_redirect defalut;<br><br>#配置header信息,让Real Server了解实际客户端信息<br>proxy_set_header Host $http_host;<br>proxy_set_header X-Real-IP $remote_addr;<br><br>#一些代理超时设置<br>proxy_connect_timeout 30;<br>proxy_send_timeout 60;<br>proxy_read_timeout 60;<br><br>#代理缓冲区设置<br>proxy_buffer_size 32k;<br>proxy_buffering on;<br>proxy_buffers 4 128k;<br>proxy_busy_buffers_size 256k;<br>proxy_max_temp_file_size 256k;<br></span>
Nach dem Login kopieren

Nginx als Lastausgleichsdienst

Referenzkonfiguration

<span style="font-size: 14px;">vi /etc/nginx/conf.d/default.conf<br></span>
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
<span style="font-size: 14px;">upstream backend {<br>    server 192.168.1.101:8001;<br>    server 192.168.1.102:8002;<br>    server 192.168.1.102:8003 down;<br>    server 192.168.1.103:8004 backup;<br>}<br>server {<br>    ...<br>    location / {<br>        # 代理到upstream组<br>        proxy_pass http://backend;<br>        include proxy_params;<br>    }<br>}<br></span>
Nach dem Login kopieren

zusätzliche Serverparameter

Nach dem Server der Upstream-Gruppe werden folgende Parameter unterstützt:

Nicht am Lastausgleich teilnehmen
参数 说明
down 不参与负载均衡
backup 预留的备份服务器。当没有其他节点提供服务时,它才提供服务
max_fails 允许请求失败的次数
fail_timeout 经过max_fails失败后,服务暂停的时间
max_conns 限制最大接收的连接数
Parameter

Beschreibung
down
方式 说明
轮询 按顺序逐一分配给不同的后端服务器
加权轮询 weight值越大,分配到的几率越大
ip_hash 同一IP固定访问同一个后端服务器
least_conn 哪个连接数少就发哪个机器
url_hash 按url参数的hash结果来分配
hash关键数值 hash自定义的key
<span style="font-size: 14px;"># 加权轮询<br>upstream backend {<br>    server 192.168.1.101:8001 weight=5;<br>    server 192.168.1.102:8002;<br>    server 192.168.1.102:8003 down;<br>    server 192.168.1.103:8004 backup;<br>}<br></span>
Nach dem Login kopieren
Sicherung
<span style="font-size: 14px;"># IP HASH<br>upstream backend {<br>    ip_hash;<br>    server 192.168.1.101:8001;<br>    server 192.168.1.102:8002;<br>    server 192.168.1.102:8003 down;<br>    server 192.168.1.103:8004 backup;<br>}<br></span>
Nach dem Login kopieren
<span style="font-size: 14px;"># 最少连接数<br>upstream backend {<br>    least_conn;<br>    server 192.168.1.101:8001;<br>    server 192.168.1.102:8002;<br>    server 192.168.1.102:8003 down;<br>    server 192.168.1.103:8004 backup;<br>}<br></span>
Nach dem Login kopieren
Reservierter Sicherungsserver. Er stellt nur dann Dienste bereit, wenn kein anderer Knoten Dienste bereitstellt
<span style="font-size: 14px;"># URL HASH<br>upstream backend {<br>    url_hash;<br>    server 192.168.1.101:8001;<br>    server 192.168.1.102:8002;<br>    server 192.168.1.102:8003 down;<br>    server 192.168.1.103:8004 backup;<br><br></span>
Nach dem Login kopieren

max_fails

Erlaubt Anforderungsfehlerzeiten

fail_timeout

Nachdem max_fails fehlschlägt, wird der Dienst angehalten

max_conns

Begrenzen Sie die maximale Anzahl empfangener Verbindungen

Lastausgleichsplanungsalgorithmus
Methode Beschreibung
Abfrage Wird nacheinander verschiedenen Back-End-Servern zugewiesen
Gewichtete Abfrage Gewichtungswert Je größer der Wert, desto größer ist die Wahrscheinlichkeit der Zuweisung
ip_hash Die gleiche IP greift fest auf die gleiche zu post End server
least_conn Die Maschine mit den wenigsten Verbindungen wird an die Maschine gesendet
url_hash Verteilt entsprechend dem Hash-Ergebnis des URL-Parameters
Hash-Schlüsselwert Hash-benutzerdefinierter Schlüssel
Verwandte Empfehlungen: Detaillierte Erläuterung der Nginx-Geschwindigkeitsbegrenzung und der Verbindungsanzahlbegrenzung nginx Konfigurieren einer statischen React-Seite Beispiel-Tutorial So implementieren Sie einen Reverse-Proxy mit Nginx in PHP

Das obige ist der detaillierte Inhalt vonGemeinsame Nutzung der Nginx-Szenario-Anwendungstechnologie. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!