Rumah > Operasi dan penyelenggaraan > Nginx > Cara menggunakan proksi terbalik Nginx dan cache proxy_cache untuk membina pelayan CDN

Cara menggunakan proksi terbalik Nginx dan cache proxy_cache untuk membina pelayan CDN

WBOY
Lepaskan: 2023-05-12 17:43:12
ke hadapan
1331 orang telah melayarinya

Menghadapi masalah:
Sangat lambat untuk pengguna mudah alih mengakses pelayan web www.osyunwei.com
Penyelesaian:
1 komputer di bilik komputer mudah alih pelayan proksi terbalik nginx Taiwan
2. Melalui resolusi pintar dns nama domain, semua pengguna mudah alih akan menyelesaikan ke pelayan proksi terbalik nginx apabila mengakses www.osyunwei.com
3. Digunakan antara nginx pelayan proksi terbalik dan pelayan web Sambungan talian khusus
Arahan:
1 Pelayan web
Talian: Telekom
ip: 192.168.21.129
Nama domain: www.osyunwei. .com
2. Pelayan proksi terbalik nginx
Talian: Mudah Alih
Sistem: centos 6.2
ip: 192.168.21.164
vi /etc/hosts #Edit, tambah baris berikut pada penghujung daripada fail
192.168.21.129 www. osyunwei.com
3 Pelanggan
Barisan: Mudah alih
Sistem: windows 7
ip:192.168.21.130
c2. notepad dan tambah baris berikut pada penghujung fail
192.168.21.164 www.osyunwei.com


################ ####Operasi berikut dilakukan pada Konfigurasi pelayan proksi terbalik nginx####################


1. Matikan selinux

vi /etc/selinux/config
#selinux=enforcing #Comment out
#selinuxtype=targeted #Comment out
selinux =disabled #Add
:wq Simpan dan tutup.
tutup -r sekarang mulakan semula sistem
2 Buka port tembok api 80
vi /etc/sysconfig/iptables
Tambah kandungan berikut
-a input -m. state --state new -m tcp -p tcp --dport 80 -j accept
/etc/init.d/iptables restart #Mulakan semula firewall untuk membuat konfigurasi berkuat kuasa
3 alat penyusunan
yum install wget make gcc gcc-c++ zlib-devel openssl openssl-devel pcre-devel gd kernel keyutils patch perl
4 lokasi storan pakej: /usr /local/srcKompilasi pakej dan lokasi pemasangan kod sumber:/usr/local/Nama perisian

5. Muat turun perisian
cd /usr/local/. src #Masukkan direktori ( 1), muat turun nginx (versi stabil semasa)
wget http://nginx.org/download/nginx-1.0.12.tar.gz
(2), muat turun pcre (menyokong nginx pseudo-static)
wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.21.tar.gz
(2), muat turun ngx_cache_purge (kosongkan cache url yang ditentukan)
wget http://labs.frickle.com/files/ngx_cache_purge-1.5.tar.gz

6. local/src
mkdir /usr/local /pcre #Buat direktori pemasangantar zxvf pcre-8.21.tar.gzcd pcre-8.21
./configure --prefix=/usr/local /pcre #Configure
make
make install

7 Pasang nginx

groupadd www #Add www group
useradd -g www www -s /bin/false #. Buat akaun nginx running www dan sertai kumpulan www, pengguna www tidak dibenarkan log masuk ke sistem teruscd /usr/local/srctar 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
Nota: --with-pcre=/usr/ local/src/pcre-8.21 menunjuk ke laluan di mana pakej kod sumber dinyahmampat berbanding laluan pemasangan, jika tidak, ralat akan dilaporkan
make #Compile
make install #Install
/usr/. local/nginx/sbin/nginx #Mulakan nginx
chown www.www -r /usr/ local/nginx/html #Tetapkan pemilik direktori
chmod 700 -r /usr/local/nginx/html #Tetapkan kebenaran direktori

vi /etc/rc.d/init.d/nginx # Tetapkan Mula nginx, edit fail permulaan dan tambah kandungan berikut

=========== ==============================
#!/ bin/bash# skrip permulaan nginx untuk pelayan http nginx# ia ialah versi v. 0.0.2.
# chkconfig: - 85 15
# penerangan: nginx ialah web berprestasi tinggi dan pelayan proksi.
# ia mempunyai banyak ciri, tetapi ia bukan untuk semua orang.
# nama proses: 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"
# perpustakaan fungsi sumber.
/etc/rc.d/init.d/functions
# konfigurasi rangkaian sumber.
. /etc/sysconfig/network
# semak bahawa rangkaian sudah siap.
[ ${networking} = "no" ] && keluar 0
[ -x $nginxd ] ||. keluar 0
# mulakan fungsi daemon nginx.
mulakan() {
jika [ -e $nginx_pid ];maka
gema "nginx sudah berjalan...."
keluar 1
fi
echo -n $"memulakan $prog: "
daemon $nginxd -c ${nginx_config}
retval=$?
echo
[ $retval = 0 ] && sentuh /var/lock/subsys/nginx
kembali $retval
}
# hentikan fungsi daemon nginx.
stop() {
echo -n $"hentikan $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=$ ?
gema
}
# lihat bagaimana kami dipanggil.
huruf "$1" dalam
mula)
mula

berhenti)
berhenti

muat semula)
muat semula

mulakan semula)
berhenti
mulakan
;;

status)
status $prog
retval=$?

*)
gema $"penggunaan: $prog {start|stop|restart|reload|status|help}"
keluar 1
esac
keluar $retval
================================ =======================
:wq!Simpan dan keluar
chmod 775 /etc/rc.d/init.d/nginx # Beri kebenaran pelaksanaan fail
chkconfig nginx pada #Set startup
/etc/rc.d/init.d/nginx restart
service nginx restart
8 >cp /usr/local/nginx/conf/nginx.conf /usr/local/nginx/conf/nginx.confbak #Sandarkan fail konfigurasi nginx(1), tetapkan akaun menjalankan nginx
vi /usr/ local /nginx/conf/nginx.conf #Edit
untuk mencari pengguna tiada siapa; usr/ local/nginx/conf/nginx.conf #Edit
untuk mencari pelayan dan menambah kandungan berikut pada baris di atas:
################## ###### #######
pelayan {
dengar 80 lalai;
nama_pelayan _;
lokasi / {
root html;
kembali 404;
}
lokasi ~ /.ht {
nafikan semua;
}
}
###################### ##### ###
/etc/rc.d/init.d/nginx restart #Restart nginx
Selepas menetapkan seperti ini, akses pengepala hos kosong akan melompat terus ke halaman ralat nginx404.
(3) Tambah hos maya nginx sertakan fail
cd /usr/local/nginx/conf/ #Masukkan direktori pemasangan nginx
mkdir vhost #Buat direktori maya
vi /usr/local /nginx /conf/nginx.conf #Edit
untuk mencari kod yang ditambahkan pada langkah sebelumnya dan tambah kandungan berikut pada penghujung:
serta vhost/*.conf;
Contohnya:
######## ######################
pelayan {
dengar 80 lalai;
nama_pelayan _;
lokasi / {
root html;
kembali 404;
}
lokasi ~ /.ht {
nafikan semua;
}
}
sertakan vhost/* .conf;
## #########################
(4) Tambah konfigurasi parameter cache_proksi sertakan fail
cd /usr/local/ nginx/conf/ #Masukkan direktori
sentuh proxy.conf #Buat fail
vi /usr/local/nginx/conf/nginx.conf #Edit
Cari http { Tambahkan baris di bawah
serta proksi .conf;
(5) Tambahkan senarai pelayan proksi yang mengandungi fail
cd /usr/local/nginx/conf/ #Masukkan direktori
sentuh mysvrhost.conf. #Buat fail
vi /usr/ local/nginx/conf/nginx.conf #Edit
Cari kod yang ditambahkan pada langkah sebelumnya, tambah baris di bawah
serta mysvrhost.conf;
( 6), tetapkan parameter global nginx
vi /usr /local/nginx/conf/nginx.conf #Edit
proses_pekerja 2 #Bilangan proses pekerja ialah bilangan teras CPU atau dua kali bilangan
acara
{
gunakan epoll; #Tingkatkan
sambungan_pekerja 65535; #Ubah suai kepada 65535, bilangan maksimum sambungan.
}
##############Kod berikut ditambah dan diubah suai dalam http { bahagian##############
server_names_hash_bucket_size 128 ; # Tingkatkan
saiz_penimbal_klien 32k; ; #Ubah suai kepada 60
tcp _nodelay on; #Tambah
server_tokens off; 🎜>gzip_http_versi 1.1 ; #Tambah
gzip_comp_level 2; , tetapkan parameter cache_proksi Konfigurasi
cd /home #Masukkan direktori
mkdir -p /home/proxy_temp_dir #Dua folder proxy_temp_dir dan proxy_cache_dir mesti berada dalam partition yang sama
mkdir -p /home/proxy_cache_dir #proxy_cache_dir dan proxy_temp_dir Folder mesti berada dalam partition yang sama
chown www.www -r proxy_cache_dir proxy_temp_dir #Tetapkan pemilik direktori
chmod -r 777 proxy_cache_dir proxy_temp_dir #Tetapkan kebenaran direktori
Operasi dan penyelenggaraan sistem www.osyunwei.com Peringatan hangat :qihang01 kandungan asal © Semua hak terpelihara Sila nyatakan sumber dan pautan teks asal semasa mencetak semula
cd /usr/local/nginx/conf/ #Masukkan direktori
vi proxy.conf #Edit, tambah. kod berikut
proxy_temp_path /home/proxy_temp_dir; #Tentukan direktori fail sementara
proxy_cache_path /home/proxy_cache_dir levels=1:2 keys_zone=cache_one:50m inactive=1d max_size=1g>#saiz_penimbal_badan_klien 512k; #Tingkatkan bilangan maksimum bait yang diminta oleh proksi penimbal
masa_sambung_proksi 60 #Tingkatkan tamat masa untuk menyambung ke pelayan hujung belakang
masa tamat_baca 60; untuk bertindak balas kepada permintaan
proxy_send_timeout 60; #Tingkatkan masa tamat untuk pelayan backend untuk menghantar data
proxy_buffer_size 32k #Naikkan saiz buffer permintaan proksi
proxy_buffers 4 64k_8k_proxyproxy_temp_file_write_size 128k #Tingkatkan saiz fail sementara cache proksi
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

Cara menggunakan proksi terbalik Nginx dan cache proxy_cache untuk membina pelayan CDN

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

Cara menggunakan proksi terbalik Nginx dan cache proxy_cache untuk membina pelayan CDN

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

Cara menggunakan proksi terbalik Nginx dan cache proxy_cache untuk membina pelayan CDN

备注:
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; 
}
Salin selepas log masuk

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

 upstream osyunweihost { 
server 192.168.21.129:80 weight=1 max_fails=2 fail_timeout=30s; 
}
Salin selepas log masuk

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;
Salin selepas log masuk

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; 
}
Salin selepas log masuk

扩展阅读:
#################################################################
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[] =
修改上面的信息为你自己的。

Atas ialah kandungan terperinci Cara menggunakan proksi terbalik Nginx dan cache proxy_cache untuk membina pelayan CDN. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:yisu.com
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan