nginx proxy_pass 可通过 curl 运行,但无法通过我的浏览器运行

nginx proxy_pass 可通过 curl 运行,但无法通过我的浏览器运行

我尝试使用 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 文件的包含相关)

谢谢你!

答案1

我会检查你的防火墙规则。运行sudo ufw status

如果你没有看到这个

Nginx HTTP                 ALLOW       Anywhere

sudo ufw allow http。再跑sudo ufw reload

您是curl http://161.35.216.150从远程机器还是本地机器的 shell 运行?

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

如果您尝试使用此主机来更改您的 IP 地址以进行搜索或创建弹跳箱,则通过 ssh 创建 socks5 代理会更成功。

在您本地的 Linux 或 OS/X 机器上尝试ssh -ND 1080 user@remote_server
配置您的浏览器以使用socks5://localhost:1080
如果您使用 Chrome,则此操作可以在操作系统的网络配置中完成。

相关内容