Linux

nginx proxy_pass 通過 curl 工作,但不適用於我的瀏覽器

  • February 19, 2021

我嘗試使用 nginx 設置反向代理並添加該proxy_pass子句 - 出於測試目的,我將其轉發到 google.com。我的nginx.conf樣子是這樣的:

user www-data;
worker_processes auto;
pid /run/nginx.pid;
#include /etc/nginx/modules-enabled/*.conf;

events {
   worker_connections 768;
   # multi_accept on;
}


http {
   ##
   # Basic Settings
   ##

   sendfile on;
   tcp_nopush on;
   tcp_nodelay on;
   keepalive_timeout 65;
   types_hash_max_size 2048;
   # server_tokens off;

   # server_names_hash_bucket_size 64;
   # server_name_in_redirect off;

   include /etc/nginx/mime.types;
   default_type application/octet-stream;

   ##
   # SSL Settings
   ##

   ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3; # Dropping SSLv3, ref: POODLE
   ssl_prefer_server_ciphers on;

   ##
   # Logging Settings
   ##

   access_log /var/log/nginx/access.log;
   error_log /var/log/nginx/error.log;

   ##
   # Gzip Settings
   ##

   gzip on;

   # gzip_vary on;
   # gzip_proxied any;
   # gzip_comp_level 6;
   # gzip_buffers 16 8k;
   # gzip_http_version 1.1;
   # gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;

   server {
       listen  80 default_server;
       listen [::]:80;
       server_name localhost;
       location / {
               proxy_pass http://www.google.com;
       }
   }


   ##
   # Virtual Host Configs
   ##

   #include /etc/nginx/conf.d/*.conf;
   #include /etc/nginx/sites-enabled/*;
}

但是,當使用它進行測試時,curl http://161.35.216.150 它工作得很好,但是當我在瀏覽器中輸入 IP 時,這不起作用。error.log沒有顯示任何條目並且執行nginx -t良好。

我的系統是:

lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 20.04.2 LTS
Release:        20.04
Codename:       focal

有一些類似問題的問題,但是提供的解決方案對我不起作用。(例如,特定於 suse 或與覆蓋 conf 文件的包含相關)

謝謝!

我會檢查你的防火牆規則。執行sudo ufw status

如果你沒有看到這個

Nginx HTTP                 ALLOW       Anywhere

執行sudo ufw allow http。然後執行sudo ufw reload

您是curl http://161.35.216.150從遠端機器還是本地機器的外殼執行?

此配置只會將您重定向到https://www.google.com

如果您嘗試使用此主機更改您的 IP 地址以進行搜尋或創建彈跳框,則通過 ssh 創建 socks5 代理會更成功。

在使用 Linux 或 OS/X 的本地電腦上,嘗試ssh -ND 1080 user@remote_server.

配置您的瀏覽器以使用socks5://localhost:1080

如果您使用 Chrome,這將在您的作業系統的網路配置中完成。

引用自:https://serverfault.com/questions/1054177