当前位置: 首页 > 知识库问答 >
问题:

后端 - 能用nginx在本地让www.baidu.com跳转到自己想要的网页url上嘛?

竺展
2023-05-26

初学nginx,突发奇想想试验下本地能不能将www.baidu.com随意跳转到自己想要的页面上,但试了下发现我在浏览器里输入https://www.baidu.com还是会跳转到百度,而不是自己想要的网页里,目前不太清楚自己哪一步做错了,有懂的能指教下嘛,谢谢

nginx.conf如下

events {}
http {
  server {
    listen 443;
    server_name www.baidu.com; #域名

    location / {
        proxy_pass http://127.0.0.1:8080; #自己本地的一个页面
    }
  }
}

共有4个答案

锺离辰沛
2023-05-26

你百度一下。经典的面试题,浏览器地址栏输入www.baidu.com 按回车后,发生了什么?

澹台举
2023-05-26

其实是修改DNS,而不是去通过配置Nginx。
最简单的就是通过修改你本机的 hosts 来指向到你的期望的IP上面。

曹光霁
2023-05-26

首先你要理解当你在浏览器中输入一个URL(比如www.baidu.com)时候,浏览器会通过DNS解析来找到对应的IP地址。这个IP地址是百度的服务器地址,而不是你本地的Nginx服务器地址,所以就算你弄了代理,他还是会访问百度的服务器,修改host,然后你还得配证书百度的是https,没有证书会有安全警告

邢焱
2023-05-26

nginx 这么用叫做“代理”

首先,你要把请求发到 nginx 上,nginx 才会给你做转发

你自己在浏览器访问 www.baidu.com,就直接访问 baidu 了,根本不经过 nginx

不是你开一个 nginx,你电脑上的一切就都走 nginx

而是需要你主动去访问 nginx

比如访问 127.0.0.1:443 是会经过 nginx

你访问 www.baidu.com 根本不会经过 nginx

你访问 www.baidu.com ,是去访问 baidu 的 443,而不是你本地的 443,所以根本不会经过你自己的 nginx

nginx 不是全局代理,除非你主动访问 nginx,不然 nginx 不会起任何作用。你在浏览器访问baidu,就是通过浏览器访问baidu,和 nginx 没有半毛钱关系。所以,你这里的 nginx 不会起任何作用。不管是外面进来,还是里面出去,都和 nginx 没有半毛钱关系


如果你要让 nginx 作为全局代理,那么你可以需要在系统上设置,让系统把一些流量转发给 nginx

具体实施,参考如下:

要将 Nginx 作为全局代理并接管计算机的所有流量,你需要进行以下步骤:

  1. 安装 Nginx:首先,确保你已经在计算机上安装了 Nginx。你可以从 Nginx 官方网站(https://nginx.org/)下载适用于你的操作系统的二进制文件,然后按照指示进行安装。
  2. 配置 Nginx 作为代理:编辑 Nginx 的配置文件,通常位于 nginx.conf。你可以使用文本编辑器打开该文件,然后进行以下配置更改:

    http {
      server {
        listen 8888;  # 设置代理服务器监听的端口号
        server_name localhost;  # 设置代理服务器的名称
    
        location / {
          proxy_pass http://$host$uri;  # 将请求转发到目标服务器
          proxy_set_header Host $host;  # 设置请求头的 Host 字段
        }
      }
    }

    请根据你的需求进行相应的修改。保存并关闭文件后,重新启动 Nginx 以使配置生效。

  3. 配置系统代理设置:要使计算机的所有流量通过 Nginx 代理,你需要将系统的代理设置指向 Nginx。具体方法取决于你使用的操作系统:

    • Windows:打开「控制面板」,搜索「代理服务器设置」或「Internet 选项」,然后在设置中指定 Nginx 的监听地址和端口(例如 localhost:8888)作为代理服务器。
    • macOS:在「系统偏好设置」中,点击「网络」,选择你正在使用的网络连接(如 Wi-Fi),然后点击「高级」,进入「代理」选项卡。在「网页代理(HTTP)」和「安全网页代理(HTTPS)」部分,指定 Nginx 的监听地址和端口(例如 localhost:8888)作为代理服务器。
    • Linux:大多数 Linux 发行版都使用环境变量来配置系统代理。你可以在 ~/.bashrc~/.bash_profile 文件中添加以下行(如果文件不存在,请创建它):

      export http_proxy="http://localhost:8888"
      export https_proxy="http://localhost:8888"

      然后执行 source ~/.bashrcsource ~/.bash_profile 以使更改生效。

  4. 测试代理设置:重新启动你的浏览器或其他应用程序,并访问一个网站来测试代理设置是否生效。请求应该会经过 Nginx 代理服务器,并从目标服务器返回响应。你可以查看 Nginx 的访问日志(位于配置文件中指定的 access_log 路径)来确认请求是否成功转发。

请注意,将整个计算机的所有流量通过代理可能会影响系统的正常运行,包括其他应用程序和系统服务。在进行此

 类似资料:
  • 配置如下: cache_server表示ats,里面代理的源站有301,301回来后在nginx用301的Location的url发起请求,但是,后续请求变成404

  • Debian 和其它的发行版有些不同。即使您熟悉其它发行版的 Linux, 您也应该知道关于 Debian 的某些东西,以便能保持您的系统处于整洁良好的状态。 本章包含了帮助您转向的材料;这并不是一个关于如何使用 Debian 的入门指南, 而仅仅是对整个系统的一个非常概要的介绍。 8.2.1. Debian 的软件包系统 需要掌握的最重要的概念是 Debian 的软件包系统。 事实上,您的系统的

  • Debian 和其它的发行版有些不同。即使您熟悉其它发行版的 Linux, 您也应该知道关于 Debian 的某些东西,以便能保持您的系统处于整洁良好的状态。 本章包含了帮助您转向的材料;这并不是一个关于如何使用 Debian 的入门指南, 而仅仅是对整个系统的一个非常概要的介绍。 8.2.1. Debian 的软件包系统 需要掌握的最重要的概念是 Debian 的软件包系统。 事实上,您的系统的

  • Debian 和其它的发行版有些不同。即使您熟悉其它发行版的 Linux, 您也应该知道关于 Debian 的某些东西,以便能保持您的系统处于整洁良好的状态。 本章包含了帮助您转向的材料;这并不是一个关于如何使用 Debian 的入门指南, 而仅仅是对整个系统的一个非常概要的介绍。 8.2.1. Debian 的软件包系统 需要掌握的最重要的概念是 Debian 的软件包系统。 事实上,您的系统的

  • 想要架设内网环境 excel 网页编辑系统,文件保存在公司本地 请问有推荐的免费、开源的选项吗? 谢谢!

  • 我在网上下载了一种免费字体,如下: 安装到了系统里如下: 现在我该如何在网页上使用这个字体了,我自己的网站的 css 代码片段如下: 我明明把 荆南麦圆体 放到了第一位,但他还是显示的是微软雅黑字体,请问这个该怎么写才能显示成 荆南麦圆体 呢? 各位大佬请不要回答别人的机器能不能显示这个字体哦,我只要我的电脑能显示这个字体就行了。 另外因为这个字体库文件比较大,我不希望使用 src 那种方式引入自