Advertisement

Nginx正向代理处理非80端口请求

  •  5星
  •     浏览量: 0
  •     大小:None
  •      文件类型:None


简介:
本文探讨了如何配置Nginx作为正向代理服务器来转发非标准HTTP端口(如80以外的端口)的网络请求,帮助用户解决特定环境下的访问问题。 使用Nginx作为正向代理并监听80端口时遇到一个问题:当用户请求的URL包含非80端口号时,Nginx默认将该请求转到80端口。经过一番搜索,网友提供的方法大多无法解决问题: 1. 最常见的解决方式是在$host后面添加端口,但这不能完全解决问题。 2. 其次是通过增加cookie值来尝试解决,这种方法能处理大约50%的情况。 3. 我个人使用Lua脚本解决了这个问题,并且能够百分之百地解决问题。

全部评论 (0)

还没有任何评论哟~
客服
客服
  • Nginx80
    优质
    本文探讨了如何配置Nginx作为正向代理服务器来转发非标准HTTP端口(如80以外的端口)的网络请求,帮助用户解决特定环境下的访问问题。 使用Nginx作为正向代理并监听80端口时遇到一个问题:当用户请求的URL包含非80端口号时,Nginx默认将该请求转到80端口。经过一番搜索,网友提供的方法大多无法解决问题: 1. 最常见的解决方式是在$host后面添加端口,但这不能完全解决问题。 2. 其次是通过增加cookie值来尝试解决,这种方法能处理大约50%的情况。 3. 我个人使用Lua脚本解决了这个问题,并且能够百分之百地解决问题。
  • NginxHTTPS及80配置指南.pdf
    优质
    本PDF指南详细介绍了如何使用Nginx设置正向代理以支持HTTPS协议及非标准80端口的配置方法与最佳实践,帮助读者解决复杂网络环境下的访问问题。 Nginx的代理功能非常强大,在实际工作中常用于反向代理。但在某些情况下,需要使用正向代理,并且在安装过程中发现常见的方法存在两个问题:一是不支持HTTPS代理;二是当访问地址包含非80端口时会出现403错误。 经过反复测试后,我找到了解决这些问题的方法: 1. 安装`ngx_http_proxy_connect_module`模块可以实现对HTTPS的代理。 2. 使用`lua-nginx-module`模块来处理非80端口的代理问题。 附件中包含了完整的安装过程和配置步骤(包括Nginx.conf文件以及Lua的相关设置),适合新手按照步骤操作。需要注意的是,我测试过在Nginx 1.10.3版本中可以正常安装nua,但在Nginx 1.12.2版本上会出现不兼容的问题。
  • Nginx配置实例,涵盖80映射
    优质
    本教程提供详细的Nginx反向代理设置示例,特别介绍如何将外部请求从非标准端口重定向到目标服务器的指定端口。适合需自定义HTTP服务部署的技术人员参考学习。 在网上找到的Nginx反向代理配置文件通常只能通过80端口进行访问。当尝试映射到其他端口时,系统可能无法获取相应的设置。经过查阅资料并进行试验后,我找到了能够解决这一问题的方法。
  • Nginx和反详解
    优质
    本文深入浅出地解析了Nginx在配置正向代理与反向代理时的关键概念和技术细节,旨在帮助读者全面理解并灵活运用这两种模式。 本段落分享了如何使用Nginx实现正向代理和反向代理的具体配置方法及不同实例情况,内容非常详尽,希望读者会喜欢。
  • NginxTCP配置详解
    优质
    本文详细讲解了如何在Nginx中进行TCP端口的反向代理配置,适合需要实现特定网络功能或服务转发的技术人员阅读。 nginx反向代理TCP端口的详细操作如下: 1. 配置监听本地服务器上的指定端口。 2. 设置upstream模块定义后端服务器集群,并配置相应的权重、连接数限制等参数。 3. 使用server块内location指令,将请求转发到定义好的upstream组中的某个节点上。 代理所有TCP端口时,请确保在nginx.conf文件中正确设置listen选项来监听需要的全部端口号。同时注意安全性和性能优化调整,避免不必要的资源消耗和潜在风险问题出现。
  • Nginx80被封的服务器解决办法
    优质
    本文章介绍了当Nginx中的80端口被封时如何配置和使用代理服务器来解决问题的方法。 首先需要准备一台VPS,并配置好相应的环境。早上我已经完成了这个步骤并进行了测试。 如果你还不清楚如何配置环境,请参考以下教程:使用SSH连接到终端后,依次执行LNMP一键安装脚本中的命令来搭建CentOS下的LNMP(Linux+Nginx+MySQL+PHP)环境。 接下来,由于80端口被封禁了,我们需要为网站分配一个新的访问端口。这里以IIS为例进行说明,至于Nginx和Apache的具体操作方式,请自行查阅相关文档或教程,并确保能够正常访问你的站点。 最后,在编辑nginx.conf文件时,在最后一个}之前添加如下内容: 这样应该就可以顺利完成了。
  • Nginx HTTPS 模块(透明
    优质
    本模块为Nginx提供正向HTTPS透明代理功能,允许服务器作为客户端访问互联网时的中间代理,增强安全性和灵活性。 Nginx 本身并不支持 HTTPS 正向代理。对于类似 baidu.com 的 HTTPS 请求,默认情况下 Nginx 并不提供支持,但可以通过使用第三方模块来实现这一功能。
  • Nginx (一) 与反及其配置
    优质
    本教程详细介绍了Nginx作为正向代理和反向代理的工作原理及配置方法,适合网络管理员和技术爱好者学习。 目录介绍Nginx正向代理 正向代理配置 反向代理 反向代理配置 介绍Nginx Nginx是一款自由的、开源的高性能HTTP服务器和反向代理服务器;同时也是一个IMAP、POP3、SMTP代理服务器。它不仅可以作为HTTP服务器进行网站发布处理,还可以作为反向代理实现负载均衡。 Nginx使用基于事件驱动架构,能够支持数以百万计的TCP连接,并且具有高度模块化的特点以及自由软件许可证,这使得第三方模块层出不穷(开源)。 作为一个跨平台服务器,Nginx可以运行在多种操作系统上,包括Linux、Windows、FreeBSD、Solaris、AIX和Mac OS等。其稳定性极高。
  • 80被封锁了如何?解除80屏蔽的方法
    优质
    本文介绍了解决80端口被封问题的方法和步骤,帮助读者解除对80端口的屏蔽,确保网络服务正常运行。 网站最重要的就是80端口,如果这个端口被封了或屏蔽了,必须立即采取措施。下面介绍解决80端口被屏蔽的方法。
  • Nginx配置HTTP和HTTPS.md
    优质
    本文档详细介绍了如何配置Nginx作为正向代理来处理HTTP和HTTPS请求。通过具体步骤和示例,帮助读者掌握Nginx代理设置技巧。 ### Nginx正向代理http和https #### 1. 环境介绍 - **操作系统**:CentOS Linux release 7.6.1810 (Core) - **Nginx版本**:nginx1.18.0 - **网络结构**: - **服务器A**:部署在DMZ区域,IP地址为192.168.252.247,可以访问互联网。 - **服务器B**:位于内部网络中,IP地址为192.168.10.247,无法直接访问互联网,但可以与服务器A通信。 - **目标**:配置Nginx正向代理服务,使得服务器B可以通过服务器A访问http和https资源。 #### 2. 安装依赖环境 在服务器A上(IP地址为192.168.252.247)安装必要的依赖库: ```shell yum install gcc gcc-c++ autoconf automake -y yum install zlib zlib-devel -y yum install pcre pcre-devel -y yum install openssl openssl-devel -y yum install patch -y yum install git -y ``` #### 3. 安装Nginx及第三方模块 - **下载并准备Nginx源码** ```shell # 进入src目录 cd /usr/local/src # 下载nginx源码包 wget http://nginx.org/download/nginx-1.18.0.tar.gz # 克隆第三方模块项目到本地 git clone https://github.com/chobits/ngx_http_proxy_connect_module.git # 解压nginx源码包 tar zxvf nginx-1.18.0.tar.gz # 进入解压后的nginx目录 cd nginx-1.18.0 # 对第三方模块进行处理 patch -p1 < /usr/local/src/ngx_http_proxy_connect_module/patch/proxy_connect_rewrite_101504.patch ``` - **配置Nginx编译参数** ```shell ./configure --prefix=/usr/share/nginx \ --sbin-path=/usr/sbin/nginx \ --modules-path=/usr/lib64/nginx/modules \ --conf-path=/etc/nginx/nginx.conf \ --error-log-path=/var/log/nginx/error.log \ --http-log-path=/var/log/nginx/access.log \ --http-client-body-temp-path=/var/lib/nginx/tmp/client_body \ --with-http_stub_status_module \ --http-proxy-temp-path=/var/lib/nginx/tmp/proxy \ --http-fastcgi-temp-path=/var/lib/nginx/tmp/fastcgi \ --http-uwsgi-temp-path=/var/lib/nginx/tmp/uwsgi \ --http-scgi-temp-path=/var/lib/nginx/tmp/scgi \ --pid-path=/run/nginx.pid \ --lock-path=/run/lock/subsys/nginx \ --user=nginx \ --group=nginx \ --with-file-aio \ --with-http_ssl_module \ --with-http_v2_module \ --with-http_realip_module \ --with-stream_ssl_preread_module \ --with-http_addition_module \ --with-http_gunzip_module \ --with-http_gzip_static_module \ --with-stream_ssl_module \ --add-module=/usr/local/src/ngx_http_proxy_connect_module ``` - **编译并安装** ```shell make sudo make install ``` #### 4. 配置Nginx正向代理 ##### 4.1 HTTP正向代理配置 在`etc/nginx/nginx.conf`文件中添加如下配置: ```nginx http { proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=my_cache:10m inactive=60m; proxy_temp_path /var/lib/nginx/tmp/proxy; server { listen 8080; server_name proxy.example.com; location / { proxy_pass http://192.168.252.247:80; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_cache my_cache; proxy_cache_key $scheme$request_method$host$request_uri; proxy_ignore_headers Cache-Control Expires; proxy_read_timeout 90; proxy_send_timeout 90; } } } ``` ##### 4.2 HTTPS正向代理配置 由于Nginx默认不支持HTTPS的正向代理,因此需要安装第三方模块`ngx_http_proxy_connect_module`,已在步骤3中完成。HTTPS代理配置如下: ```nginx http { server { listen 8081 ssl; server_name proxy.example.com; location / { proxy_pass https://192.168.252.247:443; proxy_set_header Host $