nginx - ubah hala gagal selepas dua proksi terbalik
怪我咯
怪我咯 2017-05-16 17:24:31
0
2
1184

Terdapat pelayan di intranet dengan 3 port yang menyediakan perkhidmatan Web Pelayan adalah nginx, apache dan serv-u. Sekarang kita perlu memajukan tiga perkhidmatan ke rangkaian luaran.

  • Tiada kebenaran untuk mengawal penghala
  • Pengurusan rangkaian hanya menggunakan PortTunnel untuk memajukan port 80 ke rangkaian luaran 882

Jadi saya ingin menggabungkannya menjadi pemajuan port dan menggunakan nginx untuk menentukan hos secara terbalik.
nginx.conf adalah seperti berikut:

server {
    listen       80;
    server_name  no1.home s1.abc.com;
    index index.html index.htm index.php;      
    access_log off;
    location / {
        proxy_set_header   X-Real-IP  $remote_addr;
        proxy_set_header   X-HappyHome  XMWZWX;
        proxy_set_header   X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_pass http://10.110.39.2:10;    
    }
}

Tiga keping kod masing-masing menggantikan tiga item. Ia adalah perkara biasa selepas menggunakan Host untuk menghuraikannya, tetapi sebaik sahaja anda menggunakan rangkaian luaran yang ditetapkan oleh sistem pengurusan rangkaian, masalah akan berlaku:

Selepas melawati http://xxx.com:882/folder
Ia secara automatik akan melompat ke http://xxx.com:80/folder/

Apa masalahnya? Adakah nginx.conf dikonfigurasikan dengan salah?

怪我咯
怪我咯

走同样的路,发现不同的人生

membalas semua(2)
左手右手慢动作

Baiklah, saya jumpa jawapannya setelah sekian lama meneliti dokumentasi nginx.
Tambahkan ayat
proxy_redirect "http://10.110.39.2:80" "http://$host:882" ;
pada konfigurasi tiga tapak Itu sahaja.

左手右手慢动作

Masalah tidak dapat dilihat dalam fail konfigurasi yang disiarkan. Jadi saya hanya boleh memberikan cadangan berikut (mengikut urutan):

  1. Buka access_log dan sahkan bahawa permintaan untuk mengakses http://xxx.com:882 memang telah diproses oleh nginx. Adalah disyorkan untuk menyemak log global dan bukannya log yang dikonfigurasikan untuk pelayan maya ini. Ini boleh digunakan untuk menghapuskan masalah permintaan yang diproses oleh pelayan maya lain disebabkan ralat konfigurasi. http://xxx.com:882的请求确实已经被该nginx处理。建议查看全局的log,而不是针对此 virtual server 所配置的日志,这样用来排除由于配置错误,请求被其他 virtual server 处理的问题。
  2. 如果[1]得到确认,则如法炮制确认 http://10.110.39.2:10 是否收到请求。
  3. 如果[2]也得到了确认,那么这个时候,请对监听 10.110.39.2:10
  4. Jika [1] disahkan, ikut kaedah yang sama untuk mengesahkan sama ada http://10.110.39.2:10 telah menerima permintaan tersebut.
🎜Jika [2] juga disahkan, maka pada masa ini, sila nyahpepijat aplikasi yang mendengar 10.110.39.2:10. 🎜 🎜
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan