


So verwenden Sie den Nginx-Reverse-Proxy und den Proxy_cache-Cache zum Erstellen eines CDN-Servers
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
2、清除这个文件缓存:http://www.osyunwei.com/purge/images/nopic.gif
提示:successful purge,缓存文件清除成功,如果这个文件没有被缓存过,则提示:404 not found
备注:
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; }
2、被代理服务器列表文件/usr/local/nginx/conf/mysvrhost.conf
upstream osyunweihost { server 192.168.21.129:80 weight=1 max_fails=2 fail_timeout=30s; }
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;
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; }
扩展阅读:
#################################################################
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!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen



Wie konfiguriere ich Nginx in Windows? Installieren Sie NGINX und erstellen Sie eine virtuelle Hostkonfiguration. Ändern Sie die Hauptkonfigurationsdatei und geben Sie die Konfiguration der virtuellen Host ein. Starten oder laden Nginx neu. Testen Sie die Konfiguration und sehen Sie sich die Website an. Aktivieren Sie selektiv SSL und konfigurieren Sie SSL -Zertifikate. Stellen Sie die Firewall selektiv fest, damit Port 80 und 443 Verkehr.

Verwenden Sie unter Linux den folgenden Befehl, um zu überprüfen, ob Nginx gestartet wird: SystemCTL -Status Nginx Richter basierend auf der Befehlsausgabe: Wenn "aktiv: aktiv (lief) angezeigt wird, wird Nginx gestartet. Wenn "Active: Inactive (Dead)" angezeigt wird, wird Nginx gestoppt.

Schritte zum Starten von Nginx unter Linux: Überprüfen Sie, ob Nginx installiert ist. Verwenden Sie SystemCTL Start Nginx, um den Nginx -Dienst zu starten. Verwenden Sie SystemCTL aktivieren NGINX, um das automatische Start von NGINX beim Systemstart zu aktivieren. Verwenden Sie den SystemCTL -Status NGINX, um zu überprüfen, ob das Startup erfolgreich ist. Besuchen Sie http: // localhost in einem Webbrowser, um die Standard -Begrüßungsseite anzuzeigen.

Der Server verfügt nicht über die Berechtigung, auf die angeforderte Ressource zuzugreifen, was zu einem NGINX 403 -Fehler führt. Zu den Lösungen gehören: Überprüfung der Dateiberechtigungen. Überprüfen Sie die Konfiguration .htaccess. Überprüfen Sie die Nginx -Konfiguration. Konfigurieren Sie Selinux -Berechtigungen. Überprüfen Sie die Firewall -Regeln. Fehlerbehebung bei anderen Ursachen wie Browserproblemen, Serverausfällen oder anderen möglichen Fehlern.

So bestätigen Sie, ob Nginx gestartet wird: 1. Verwenden Sie die Befehlszeile: SystemCTL Status Nginx (Linux/Unix), Netstat -ano | FindStr 80 (Windows); 2. Überprüfen Sie, ob Port 80 geöffnet ist; 3. Überprüfen Sie die Nginx -Startmeldung im Systemprotokoll. 4. Verwenden Sie Tools von Drittanbietern wie Nagios, Zabbix und Icinga.

Es gibt zwei Möglichkeiten, das Problem mit dem Cross-Domain-Problem mit dem NGINX-Problem zu lösen: Änderungen der Cross-Domänen-Antwort-Header: Fügen Sie Anweisungen hinzu, um Cross-Domain-Anforderungen zu ermöglichen, zulässigen Methoden und Header anzugeben und die Cache-Zeit festzulegen. Verwenden Sie das CORS-Modul: Aktivieren Sie Module und konfigurieren Sie die CORS-Regeln, um Cross-Domain-Anforderungen, Methoden, Header und Cache-Zeit zu ermöglichen.

Wie fixiere ich Nginx 403 Verbotener Fehler? Überprüfen Sie die Datei- oder Verzeichnisberechtigungen; 2.Htaccess -Datei prüfen; 3. Überprüfen Sie die Konfigurationsdatei der Nginx; 4. Starten Sie Nginx neu. Weitere mögliche Ursachen sind Firewall -Regeln, Selinux -Einstellungen oder Anwendungsprobleme.

Das Starten eines Nginx-Servers erfordert unterschiedliche Schritte gemäß verschiedenen Betriebssystemen: Linux/UNIX-System: Installieren Sie das NGINX-Paket (z. B. mit APT-Get oder Yum). Verwenden Sie SystemCTL, um einen Nginx -Dienst zu starten (z. B. sudo systemctl start nginx). Windows -System: Laden Sie Windows -Binärdateien herunter und installieren Sie sie. Starten Sie Nginx mit der ausführbaren Datei nginx.exe (z. B. nginx.exe -c conf \ nginx.conf). Unabhängig davon, welches Betriebssystem Sie verwenden, können Sie auf die Server -IP zugreifen
