Heim > Betrieb und Instandhaltung > Nginx > So verwenden Sie den Nginx-Reverse-Proxy und den Proxy_cache-Cache zum Erstellen eines CDN-Servers

So verwenden Sie den Nginx-Reverse-Proxy und den Proxy_cache-Cache zum Erstellen eines CDN-Servers

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
Freigeben: 2023-05-12 17:43:12
nach vorne
1383 Leute haben es durchsucht

Es ist ein Problem aufgetreten:
Der Zugriff mobiler Benutzer auf den Webserver www.osyunwei.com ist sehr langsam. Lösung:
1. Platzieren Sie einen Nginx-Reverse-Proxy-Server im mobilen Computerraum. 2 Domänennamen-DNS, alle Wenn mobile Benutzer www.osyunwei.com besuchen, werden sie zum Nginx-Reverse-Proxy-Server weitergeleitet
3 Eine dedizierte Leitungsverbindung wird zwischen dem Nginx-Reverse-Proxy-Server und dem Webserver verwendet

Anleitung:
1. WebserverLeitung: Telecom
IP: 192.168.21.129
Domainname: www.osyunwei.com
2. Nginx-Reverse-Proxy-Server
Leitung: Mobile
System: Centos 6.2
IP: 192.168.21.164
vi /etc/hosts # Bearbeiten Sie die folgende Zeile am Ende der Datei: 192.168 .21.129 www.osyunwei.com die folgende Zeile am Ende der Datei
192.168.21.164 www.osyunwei .com



###################Die folgenden Vorgänge werden auf der Nginx-Rückseite konfiguriert Proxyserver############### ####


1. Selinux ausschalten

vi /etc/selinux/config
#selinux=enforcing #Kommentieren
#selinuxtype=targeted #Kommentieren
selinux=disabled #Hinzufügen
:wq Speichern und schließen.
shutdown -r now Starten Sie das System neu
2. Öffnen Sie den Firewall-Port 80
vi /etc/sysconfig/iptables
Fügen Sie den folgenden Inhalt hinzu
-a input -m state --state new -m tcp -p tcp --dport 80 -j akzeptieren
/etc/init.d/iptables restart #Starten Sie die Firewall neu, damit die Konfiguration wirksam wird
3 Installieren Sie die Kompilierungstools
yum install wget make gcc gcc-c++ zlib-devel openssl openssl-devel pcre -devel gd kernel keyutils patch perl
4. Systemvereinbarung
Speicherort des Software-Quellcodepakets: /usr/local/src
Speicherort des Quellcodepakets: /usr/local/Softwarename
5
cd /usr/local/ src #Geben Sie das Verzeichnis ein
(1), laden Sie Nginx herunter (derzeit stabile Version)
wget http://nginx.org/download/nginx-1.0.12.tar.gz
(2) , pcre herunterladen (unterstützt Nginx pseudostatisch)
wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.21.tar.gz
(2), ngx_cache_purge herunterladen (clear der angegebene URL-Cache)
wget http://labs.frickle.com/files/ngx_cache_purge-1.5.tar.gz
6. Installiere pcre
cd /usr/local/src
mkdir /usr/local/pcre #. Erstellen Sie das Installationsverzeichnis
tar zxvf pcre-8.21.tar .gz
cd pcre-8.21
./configure --prefix=/usr/local/pcre #Configure
make
make install
7, installieren Sie nginx
groupadd www #Www-Gruppe hinzufügen
useradd -g www www -s /bin/false #Erstellen Sie ein Nginx-Laufkonto www und treten Sie der www-Gruppe bei. www-Benutzer dürfen sich nicht direkt beim System anmelden
cd /usr/local/src
tar zxvf ngx_cache_purge-1.5.tar.gz
tar zxvf nginx-1.0.12. tar.gz
cd nginx-1.0.12
./configure --prefix=/usr/local/nginx --user=www --group= www --with-http_stub_status_module --with-openssl=/usr/ -- with-pcre=/usr/local/src/pcre-8.21 --add-module=../ngx_cache_purge-1.5
Hinweis: --with- pcre=/usr/local/src/pcre-8.21 zeigt auf das Quellpaket Der Dekomprimierungspfad, nicht der Installationspfad, andernfalls wird ein Fehler gemeldet
make #Compile
make install #Install
/usr/local/nginx/sbin /nginx #Nginx starten
chown www.www -r /usr/local/nginx/ html #Verzeichnisbesitzer festlegen
chmod 700 -r /usr/local/nginx/html #Verzeichnisberechtigungen festlegen
vi /etc/rc.d /init.d/nginx #Stellen Sie Nginx auf Start ein, bearbeiten Sie die Startdatei und fügen Sie den folgenden Inhalt hinzu
=========================== ====================== =======
#!/bin/bash
# Nginx-Startskript für den Nginx-HTTP-Server
# it ist die Version v.0.0.2.
# chkconfig: - 85 15
# Beschreibung: Nginx ist ein leistungsstarker Web- und Proxyserver.
# Er verfügt über viele Funktionen, ist aber nicht jedermanns Sache.
# Prozessname: Nginx
# pidfile: /var/run/nginx.pid
# config: /usr/local/nginx/ conf/nginx.conf
nginxd=/usr/local/nginx/sbin/nginx
nginx_config=/usr/local/nginx /conf/nginx.conf
nginx_pid=/usr/local/nginx/logs/nginx.pid
retval =0
prog="nginx"
# Quellfunktionsbibliothek.
/etc/rc.d/init.d/. Funktionen
# Quellnetzwerkkonfiguration.
. /etc/sysconfig/network
# Überprüfen Sie, ob das Netzwerk aktiv ist
[ ${networking} = "no" ] && Exit 0
[ -x $nginxd ] ||. Nginx-Daemon-Funktionen starten nginxd -c ${nginx_config}
retval=$?
echo
[ $retval = 0 ] && touch /var/lock/subsys/nginx
return $retval
}
# Nginx-Daemon-Funktionen stoppen.
stop() {
echo -n $"stopping $prog: "
killproc $nginxd
retval=$?
echo
[ $retval = 0 ] && rm -f /var/lock/subsys/nginx /usr/local/nginx/logs/nginx .pid
}
reload() {
echo -n $"reloading $prog: "
#kill -hup `cat ${nginx_pid}`
killproc $nginxd -hup
retval=$?
echo
}
# siehe wie wir genannt wurden.
case „$1“ in
start)
start

stop)
stop

reload)
reload

restart)
stop
start
;;

status)
status $prog
retval=$?

*)
echo $"usage: $prog {start|stop|restart|reload |status|help}"
exit 1
esac
exit $retval
====================== ================================
:wq!Speichern und beenden
chmod 775 / etc /rc.d/init.d/nginx #Dateiausführungsberechtigungen erteilen
chkconfig nginx on #Start festlegen
/etc/rc.d/init.d/nginx restart
service nginx restart
8. Nginx konfigurieren
cp /usr/local/nginx/conf/nginx.conf /usr/local/nginx/conf/nginx.confbak #Nginx-Konfiguration sichern Datei
(1) Richten Sie das laufende Nginx-Konto ein
vi /usr/local/nginx/conf/nginx.conf #Bearbeiten
Benutzer finden, niemand, ändern Sie es in
Benutzer www www; # In der ersten Zeile
(2), nginx leeren Host-Header verbieten
vi /usr/local/nginx/conf/nginx.conf #Bearbeiten
Suchen Sie den Server und fügen Sie Folgendes hinzu Inhalt zur obigen Zeile:
###########################
server {
listen 80 default;#🎜 🎜#server_name _;
location / {
root html;
return 404;
}
location ~ /.ht {
deny alle;#🎜 🎜#}
}
##########################
/etc /rc .d/init.d/nginx restart #Restart nginx
Nach dieser Einstellung springt der Zugriff auf den leeren Host-Header direkt zur Nginx404-Fehlerseite.
(3) Fügen Sie die Include-Datei für den virtuellen Nginx-Host hinzu
cd /usr/local/nginx/conf/ #Geben Sie das Nginx-Installationsverzeichnis ein
mkdir vhost #Erstellen Sie ein virtuelles Verzeichnis
vi /usr /local/nginx/conf/nginx.conf #Bearbeiten
Suchen Sie den im vorherigen Schritt hinzugefügten Code und fügen Sie am Ende den folgenden Inhalt hinzu:
include vhost/*.conf;
Zum Beispiel:
###########################
server {
listen 80 default;# 🎜🎜#server_name _ ;
location / {
root html;
return 404;
}
location ~ /.ht {
deny all;# 🎜🎜#}# 🎜🎜#}
include vhost/*.conf;
######################### #### 🎜🎜# (4) Proxy_cache-Parameterkonfiguration hinzufügen, Include-Datei
cd /usr/local/nginx/conf/ #Verzeichnis eingeben
touch Proxy.conf #Datei erstellen
vi / usr/local /nginx/conf/nginx.conf #Bearbeiten
Suchen Sie http { Fügen Sie eine Zeile unter
include Proxy.conf hinzu (5), fügen Sie die Proxy-Server-Liste hinzu, einschließlich Datei #🎜 🎜#cd /usr/local/nginx/conf/ #Verzeichnis eingeben
mysvrhost.conf berühren #Datei erstellen
vi /usr/local/nginx/conf/nginx.conf #Bearbeiten
Suchen Fügen Sie im vorherigen Schritt zum Hinzufügen von Code eine Zeile unten hinzu
include mysvrhost.conf;
(6), legen Sie die globalen Nginx-Parameter fest
vi /usr/local/nginx/conf/nginx.conf # Bearbeiten#🎜🎜 #worker_processes 2; # Die Anzahl der Worker-Prozesse ist die Anzahl der Kerne der CPU oder das Doppelte der Anzahl. worker_connections 65535; #Ändern auf 65535, maximale Verbindungsnummer.
}
#############Der folgende Code wurde im http {-Teil hinzugefügt und geändert##############🎜🎜 #server_names_hash_bucket_size 128; #Add
client_header_buffer_size 32k; #Add
large_client_header_buffers 4 32k; #Add
tcp_nop ush on; #Modify to on
keepalive_timeout 60; #Ändern auf 60
tcp_nodelay ein; #Hinzufügen, Nginx-Versionsinformationen nicht anzeigen
gzip_min_length 1k; Add#🎜 🎜#gzip_buffers 4 16k; #Add
gzip_comp_level 2; 🎜#gzip_vary on; #Add
cd /home #Geben Sie das Verzeichnis ein
mkdir -p /home/proxy_temp_dir #proxy_temp_dir und Proxy_cache_dir sind erforderlich In derselben Partition
mkdir -p /home/proxy_cache_dir #Die beiden Ordner Proxy_cache_dir und Proxy_temp_dir müssen sich in der befinden gleiche Partition
chown www.www -r Proxy-Cache-Verzeichnis Proxy-Temp_Verzeichnis #Verzeichnisbesitzer festlegen Inhalt&Kopie; Alle Rechte vorbehalten. Bitte geben Sie die Quelle und den Originallink zum Nachdruck an 🎜#proxy_temp_path /home/proxy_temp_dir; #Geben Sie das temporäre Dateiverzeichnis an
proxy_cache_path /home/proxy_cache_dirlevel=1:2keys_zone=cache_one:50m inactive=1d max_size=1g;
#Legen Sie den Namen fest Web-Cache-Bereich auf „cache_one“, Speicher-Cache auf 50 MB, automatisches Löschen von Dateien, auf die innerhalb eines Tages nicht zugegriffen wurde, und Festplatten-Cache auf 1 GB.
client_body_buffer_size 512k; #Erhöhen Sie die maximale Anzahl von Bytes, die der Puffer-Proxy puffern kann.
proxy_connect_timeout 60; #Erhöhen Sie das Timeout für die Verbindung zum Backend-Server Server zum Antworten auf Anfragen Timeout
proxy_send_timeout 60; #Erhöhen Sie das Timeout für den Backend-Server zum Senden von Daten
proxy_buffer_size 32k; #Erhöhen Sie die Größe des Proxy-Anfragepuffers
proxy_buffers 4 64k; #Erhöhen Sie #🎜 🎜#proxy_busy_buffers_size 128k; # Erhöhen Sie die Größe der Proxy-Puffer, die angewendet werden können, wenn das System ausgelastet ist.
proxy_temp_file_write_size 128k. #Erhöhen Sie die Größe der temporären Proxy-Cache-Dateien.proxy_next_upstream error timeout invalid_header http_500 http_503 http_404; #增加故障转移,如果后端的服务器返回502、504、执行超时等错误,自动将请求转发到upstream负载均衡池中的另一台服务器,实现故障转移。proxy_cache cache_one; #增加使用web缓存区cache_one
(八)、设置被代理服务器文件列表
cd /usr/local/nginx/conf/ #进入目录
vi mysvrhost.conf #编辑,添加以下代码
upstream osyunweihost {
server 192.168.21.129:80 weight=1 max_fails=2 fail_timeout=30s;
}
(九)、新建虚拟主机配置文件
cd /usr/local/nginx/conf/vhost #进入虚拟主机目录
touch www.osyunwei.com.conf #建立虚拟主机配置文件
vi www.osyunwei.com.conf #编辑

server {
listen 80;
server_name www.osyunwei.com osyunwei.com;

location /
{
proxy_pass http://osyunweihost;
proxy_cache_key $host$uri$is_args$args; #增加设置web缓存的key值,nginx根据key值md5哈希存储缓存
proxy_set_header host $host;
proxy_set_header x-forwarded-for $remote_addr;
proxy_cache_valid 200 304 12h;
expires 2d;
}
location ~ .*\.(php|jsp|cgi|asp|aspx|flv|swf|xml)?$ #列出的扩展名文件不缓存。

{
proxy_set_header host $host;
proxy_set_header x-forwarded-for $remote_addr;
proxy_pass http://osyunweihost;
}
access_log off;
}

location ~ /purge(/.*) #用于清除缓存
{
allow 127.0.0.1;
allow 192.168.21.0/24; #设置只允许指定的ip或ip段才可以清除url缓存。
deny all;
proxy_cache_purge cache_one $host$1$is_args$args;
}
###################以上操作在nginx反向代理服务器上配置###################
9、ngx_cache_pure清除缓存模块使用说明
说明:根据配置只允许192.168.21.0/24 ip段的主机才可以清除url缓存,现在我使用的客户机ip是:192.168.21.130,有权限清除url缓存。

1、浏览图片文件:http://www.osyunwei.com/images/nopic.gif

So verwenden Sie den Nginx-Reverse-Proxy und den Proxy_cache-Cache zum Erstellen eines CDN-Servers

2、清除这个文件缓存:http://www.osyunwei.com/purge/images/nopic.gif

So verwenden Sie den Nginx-Reverse-Proxy und den Proxy_cache-Cache zum Erstellen eines CDN-Servers

提示:successful purge,缓存文件清除成功,如果这个文件没有被缓存过,则提示:404 not found

So verwenden Sie den Nginx-Reverse-Proxy und den Proxy_cache-Cache zum Erstellen eines CDN-Servers

备注:
1、purge是ngx_cache_pure 模块指令
2、images/nopic.gif 是要清除的缓存文件url路径

至此,使用nginx反向代理和proxy_cache缓存功能配置cdn服务器教程结束。

附件:

1、nginx配置文件/usr/local/nginx/conf/nginx.conf

 user www www; 
worker_processes 2; 
#error_log logs/error.log; 
#error_log logs/error.log notice; 
#error_log logs/error.log info; 
#pid logs/nginx.pid; 

events { 
use epoll; 
worker_connections 65535; 
} 

http { 
include proxy.conf; 
include mysvrhost.conf; 
include mime.types; 
default_type application/octet-stream; 

#log_format main '$remote_addr - $remote_user [$time_local] "$request" ' 
# '$status $body_bytes_sent "$http_referer" ' 
# '"$http_user_agent" "$http_x_forwarded_for"'; 

#access_log logs/access.log main; 

server_names_hash_bucket_size 128; 
client_header_buffer_size 32k; 
large_client_header_buffers 4 32k; 
client_max_body_size 300m; 
sendfile on; 
tcp_nopush on; 

#keepalive_timeout 0; 
keepalive_timeout 60; 
tcp_nodelay on; 
server_tokens off; 

gzip on; 
gzip_min_length 1k; 
gzip_buffers 4 16k; 
gzip_http_version 1.1; 
gzip_comp_level 2; 
gzip_types text/plain application/x-javascript text/css application/xml; 
gzip_vary on; 

server { 
listen 80 default; 
server_name _; 
location / { 
root html; 
return 404; 
} 
location ~ /.ht { 
deny all; 
} 
} 
include vhost/*.conf; 
}
Nach dem Login kopieren

2、被代理服务器列表文件/usr/local/nginx/conf/mysvrhost.conf

 upstream osyunweihost { 
server 192.168.21.129:80 weight=1 max_fails=2 fail_timeout=30s; 
}
Nach dem Login kopieren

3、proxy_cache参数配置文件/usr/local/nginx/conf/proxy.conf

 proxy_temp_path /home/proxy_temp_dir; 
proxy_cache_path /home/proxy_cache_dir levels=1:2 keys_zone=cache_one:500m inactive=1d max_size=30g; 
client_body_buffer_size 512k; 
proxy_connect_timeout 60; 
proxy_read_timeout 60; 
proxy_send_timeout 60; 
proxy_buffer_size 32k; 
proxy_buffers 4 64k; 
proxy_busy_buffers_size 128k; 
proxy_temp_file_write_size 128k; 
proxy_next_upstream error timeout invalid_header http_500 http_503 http_404; 
proxy_cache cache_one;
Nach dem Login kopieren

4、虚拟主机配置文件/usr/local/nginx/conf/vhost/www.osyunwei.com.conf

 server { 
listen 80; 
server_name www.osyunwei.com osyunwei.com; 
location / 
{ 
proxy_pass http://osyunweihost; 
proxy_cache_key $host$uri$is_args$args; 
proxy_set_header host $host; 
proxy_set_header x-forwarded-for $remote_addr; 
proxy_cache_valid 200 304 12h; 
expires 2d; 
} 

location ~ /purge(/.*) 
{ 
allow 127.0.0.1; 
allow 192.168.21.0/24; 
deny all; 
proxy_cache_purge cache_one $host$1$is_args$args; 
} 

location ~ .*\.(php|jsp|cgi|asp|aspx|flv|swf|xml)?$ 
{ 
proxy_set_header host $host; 
proxy_set_header x-forwarded-for $remote_addr; 
proxy_pass http://osyunweihost; 
} 
access_log off; 
}
Nach dem Login kopieren

扩展阅读:
#################################################################
nginx修改版本等信息
vi /usr/local/src/nginx-1.0.12/src/core/nginx.h #编译前编辑
#define nginx_version
#define nginx_version
#define nginx_ver
#define nginx_var
修改上面的信息,即可更改nginx显示版本。
vi /usr/local/src/http/ngx_http_special_response.c #编译前编辑
static u_char ngx_http_error_full_tail[] =
static u_char ngx_http_error_tail[] =
修改上面的信息为你自己的。

Das obige ist der detaillierte Inhalt vonSo verwenden Sie den Nginx-Reverse-Proxy und den Proxy_cache-Cache zum Erstellen eines CDN-Servers. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:yisu.com
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
Aktuelle Ausgaben
Nginx-Lastausgleichsproblem
Aus 1970-01-01 08:00:00
0
0
0
Fehler beim Neustart von Nginx
Aus 1970-01-01 08:00:00
0
0
0
Nginx-Lastausgleich
Aus 1970-01-01 08:00:00
0
0
0
Nginx-Default.conf-Problem
Aus 1970-01-01 08:00:00
0
0
0
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage