Rumah >Operasi dan penyelenggaraan >Nginx >Bagaimana untuk membina proksi terbalik untuk pelayan Nginx

Bagaimana untuk membina proksi terbalik untuk pelayan Nginx

WBOY
WBOYke hadapan
2023-05-15 08:40:051693semak imbas

Bahagian 1: Pemasangan

1 Cipta pengguna dan kumpulan

  /usr/sbin/groupadd www 
  /usr/sbin/useradd -g www www

2 Pasang pcre untuk mendayakan penulisan semula sokongan proksi terbalik nginx mudah untuk keperluan masa hadapan

  wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-7.8.tar.gz 
  tar zxvf pcre-7.8.tar.gz 
  cd pcre-7.8/ 
  ./configure 
  make && make install

3 Pasang proksi terbalik nginx

  wget http://sysoev.ru/nginx/nginx-0.7.58.tar.gz 
  tar zxvf nginx-0.7.58.tar.gz 
  cd nginx-0.7.58/ 
  ./configure --user=www --group=www --prefix=/usr/
  local/webserver/nginx --with-http_stub_status_module 
  --with-http_ssl_module --with-cc-opt='-o2' --with-cpu-opt
  =opteron 
  make && make install

Perhatikan --with-cc-opt='-o2' --with-cpu- opt=opteron Ini ialah pengoptimuman pengkompil Pada masa ini, yang paling biasa digunakan ialah -02 dan bukannya 3. Yang terakhir sepadan dengan model CPU.

Bahagian 2: Fail Konfigurasi Konfigurasi dan Pengoptimuman

1 Fail Konfigurasi nginx.conf:

  user www www; 
  worker_processes 4; 
  # [ debug | info | notice | warn | error | crit ] 
  error_log /usr/local/webserver/nginx/logs/nginx_error.log crit; 
  pid /usr/local/webserver/nginx/nginx.pid; 
  #specifies the value for maximum file descriptors that 
  can be opened by this process. 
  worker_rlimit_nofile 51200; 
  events 
  { 
  use epoll; 
  worker_connections 51200; 
  } 
  http 
  { 
  include mime.types; 
  default_type application/octet-stream; 
  source_charset gb2312; 
  server_names_hash_bucket_size 256; 
  client_header_buffer_size 256k; 
  large_client_header_buffers 4 256k; 
  #size limits 
  client_max_body_size 50m; 
  client_body_buffer_size 256k; 
  client_header_timeout 3m; 
  client_body_timeout 3m; 
  send_timeout 3m; 
  #参数都有所调整.目的是解决代理过程中出现的一些502 499错误  
  sendfile on; 
  tcp_nopush on; 
  keepalive_timeout 120; #参数加大,以解决做代理时502错误 
  tcp_nodelay on; 
  include vhosts/upstream.conf; 
  include vhosts/bbs.linuxtone.conf;  
  }

2 fail konfigurasi upstream.conf (ini juga kaedah konfigurasi untuk memuatkan

  upstream.conf 
  upstream bbs.linuxtone.com { 
  server 192.168.1.4:8099; 
  }

3 fail konfigurasi tapak

  bbs.linuxtone.conf 
  server 
  { 
  listen 80; 
  server_name bbs.linuxtone.conf; 
  charset gb2312; 
  index index.html index.htm; 
  root /date/wwwroot/linuxtone/; 
  location ~ ^/nginxstatus/ { 
  stub_status on; 
  access_log off; 
  } 
  location / { 
  root /date/wwwroot/linuxtone/; 
  proxy_redirect off ; 
  proxy_set_header host $host; 
  proxy_set_header x-real-ip $remote_addr; 
  proxy_set_header remote-host $remote_addr; 
  proxy_set_header x-forwarded-for $proxy_add_x_forwarded_for; 
  client_max_body_size 50m; 
  client_body_buffer_size 256k; 
  proxy_connect_timeout 30; 
  proxy_send_timeout 30; 
  proxy_read_timeout 60; 
  proxy_buffer_size 256k; 
  proxy_buffers 4 256k; 
  proxy_busy_buffers_size 256k; 
  proxy_temp_file_write_size 256k; 
  proxy_next_upstream error timeout invalid_header http_500 
  http_503 http_404; 
  proxy_max_temp_file_size 128m; 
  proxy_pass http://bbs.linuxtone.com; 
  }

parameter telah dilaraskan. Tujuannya adalah untuk selesaikan Beberapa 502 499 ralat yang berlaku semasa proses proksi

  #add expires header for static content 
  location ~* \.(jpg|jpeg|gif|png|swf)$ { 
  if (-f $request_filename) { 
  root /date/wwwroot/linuxtone/; 
  expires 1d; 
  break; 
  } 
  } 
  log_format access '$remote_addr - $remote_user [$time_local] "$request" ' 
  '$status $body_bytes_sent "$http_referer" ' 
  '"$http_user_agent" $http_x_forwarded_for'; 
  access_log /exp/nginxlogs/bbs.linuxtone_access.log access; 
  }

Arahan biasa
Berikut ialah beberapa arahan biasa untuk proksi terbalik nginx

perintah pass_proxy
Sintaks

  proxy_pass  [url | upstream]

Fungsi
Arahan ini digunakan untuk menetapkan port atau soket pelayan proksi dan url

arahan pengalihan_proksi
Syntax

  proxy_redirect  [off | default | redirect replacement]

Fungsi
Arahan ini digunakan untuk menukar "lokasi" dan "refresh" dalam pengepala respons pelayan proksi
Tambahan:
Saya tidak melihat peranan perintah ini lagi Ya, ia dimatikan dalam tetapan sebenar Jika anda tahu apa-apa tentangnya, sila tinggalkan mesej di blog untuk membimbing saya

proxy_next_upstream command
Sintaks

Salin kod Kod adalah seperti berikut :

proxy_next_upstream [error|timeout|invalid_header|http_500|http_502|http_503|http_504|http_404|off]

Arahan ini digunakan untuk menetapkan situasi di mana Majukan permintaan ke pelayan seterusnya Dalam kumpulan pelayan proksi pengimbangan beban huluan, jika salah satu pelayan bahagian belakang tidak dapat dicapai atau mengembalikan kod tindak balas ralat yang ditentukan, anda boleh menggunakan arahan ini. untuk memajukan permintaan ke pelayan seterusnya dalam kumpulan ralat
Parameter Keterangan

: Jika ralat berlaku semasa menyambung ke pelayan, semasa menghantar permintaan atau semasa membaca mesej respons

tamat masa. : Jika ralat berlaku semasa menyambung ke pelayan, semasa menghantar permintaan, atau semasa membaca mesej respons daripada pelayan bahagian belakang Tamat masa
invalid_header: Pelayan bahagian belakang mengembalikan respons kosong atau salah
http_[500| 502|503|504|404]: Pelayan bahagian belakang mengembalikan kod status respons yang ditentukan
dimatikan: Melumpuhkan permintaan Majukan ke pelayan belakang seterusnya

arahan proxy_set_header
Sintaks

  proxy_set_header header value

Fungsi

Arahan ini membenarkan mentakrifkan semula atau menambah baris pengepala dimajukan ke Dalam maklumat permintaan pelayan proksi, nilainya boleh berupa teks, pembolehubah atau gabungan teks dan pembolehubah

Atas ialah kandungan terperinci Bagaimana untuk membina proksi terbalik untuk pelayan 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