如何通过nginx进行反向代理

  1. 简单介绍
    1. 正向代理
      1. 正向代理服务器是一个位于客户端和原始服务器(origin server)之间的服务器,为了能够从原始服务器取得内容,客户端向代理发送一个请求并指定目标(原始服务器),然后代理向原始服务器转交请求并将获得的内容返回给客户端。正向代理的典型用途是为在防火墙内的局域网客户端提供访问Internet的途径。其中正向代理一般是xxx在客户端设置代理服务器xxx,通过代理服务器转发请求,最终访问到目标服务器。

    2. 反向代理
      1. 反向代理服务器位于用户与目标服务器之间,但是对于用户而言,反向代理服务器就相当于目标服务器,即用户直接访问反向代理服务器就可以获得目标服务器的资源,反向代理服务器负责将请求转发给目标服务器。用户不需要知道目标服务器的地址,也无须在用户端作任何设定,对于用户来说,访问反向代理服务器是完全无感知的。
    3. 简单的说,正向代理时,用户是必须知道目标服务器的地址信息。而反向代理时,用户并不关心真正的目标服务器,只需要知道反向代理服务器即可。
  2. 我们可以通过nginx作为反向代理服务器使用
    1. 首先我们需要在Linux服务器上安装好nginx并启动nginx,并且在Linux服务器上启动java应用服务
    2. 进入nginx的安装目录,并编辑配置文件nginx.conf文件配置反向代理信息并保存
      1. cd /usr/local/project/nginx/conf
        
        vim nginx.conf
      2.         location /study/ {
                    # 反向代理配置,将请求转发到指定的服务
                    proxy_pass http://192.168.163.100:8080;
                }
    3. 检查配置文件的正确性,并重新加载nginx配置文件
      1. sudo ./nginx -t
      2. sudo ./nginx -s reload
    4. 访问反向代理服务器信息
      1. 访问地址:http://服务器ip地址/study/
  3. 若通过nginx访问java的web服务器时出现中文乱码时的排查步骤
    1. 首先不通过nginx直接访问java的web服务时是否中文乱码,如果java的web服务本身就中文乱码,需要进行下列检查
      1. 若是maven项目
        1. 在pom文件中添加设定编码为utf-8
        2.     <properties>
                  <!-- 指定项目编码 -->
                  <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
              </properties>
      2. 若是以jar包启动,则需要在java -jar 启动时设定utf-8编码
        1. java -jar -Dfile.encoding=utf-8 xxxxxxxx.jar
      3. 若当前项目还是中文乱码则应该是项目里面的编码未处理好,需要查看自己项目本身的代码进行相应的代码以及配置调整
    2. 如果在java的web项目中已经不出现中文乱码了,但是通过nginx访问依然出现中文乱码,则需要设置nginx的server块的编码为utf-8
      1.     server {
                listen       80;
                server_name  localhost;
        
                # 设置字符集
                charset utf-8;
            }
      2. 然后检查配置文件,再重新加载配置文件,完成之后进行浏览器访问即可
        1. sudo ./nginx -t
          
          
          sudo ./nginx -s reload
          
          

同一ip(都是80端口)可以绑定无数个域名 配置简单 里面包含一个配置文档:配置文档.doc 看一遍 大部分人都会设置了。 内容如下: NGNIX配置文档 1.解压文件到相应文件夹下(我解压到D:/下) (这里是图片) 目录结构如上 2.在D:\nginx\目录下用记事本新建一个文本文档改名为 proxy.conf。 proxy.conf里面的内容格式如下: server { listen 80; server_name www.*****.com; location / { proxy_pass http://192.168.45.1:8045; proxy_redirect off; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } } (完整拷贝上面的内容server_name www.*****.com; 这里面的域名即是来访域名 proxy_pass http://192.168.45.1:8045; 这里面的域名(http://192.168.45.1:8045)即是内部跳转的地址,将该内容拷贝多份实现不同来访域名的跳转) 如下: 3.找到D:\nginx\conf下nginx.conf文件用记事本打开 在文段末尾大括号前加上 include proxy.conf;(就是加载刚刚新建的那个文件(注意路径)) 4.进入cmd 进入D盘: d: 进到nginx文件夹下:cd nginx 启动nginx.exe:start nginx Cmd窗口会闪一下 进程里面会多了个 浏览器里面输入:http://127.0.0.1 将出现: Nginx的欢迎界面。 注: nginx -s stop // 停止nginx nginx -s reload // 重新加载配置文件 nginx -s quit // 退出nginx nginx-1.3.9.zip(这个版本) (1分钟搞定只是夸张说法啦,给你增加信心的啦,真正的操作起来,因人而异,没搞定的耐心再试试,自己xp系统亲测成功,不喜欢的无拍砖哦,实在搞不定的加我qq852208555 一起研究下 谢谢!)
Windows 使用 Nginx 进行反向代理是一个常见的配置,主要目的是将客户端的请求路由到一个内部服务器上,而不是直接连接到外部服务器。这有助于优化网络性能、安全性以及负载均衡等。 ### 安装和配置步骤: #### 1. 下载并安装 NginxNginx 的官方网站下载适合 Windows 操作系统的安装包(通常推荐使用二进制文件)。解压下载后的文件,并运行安装程序。默认情况下,Nginx 将会被安装到一个指定的目录下,例如 `C:\Program Files\Nginx`。 #### 2. 修改配置文件 打开 Nginx 的主配置文件,通常位于安装路径下的 `conf/nginx.conf` 文件。在 `http` 配置块内添加 `server` 和 `location` 指令来设置反向代理规则。示例配置如下: ```nginx http { # 其他配置... server { listen 80; server_name example.com; location / { proxy_pass http://internal-server.example.com/; 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; } } } ``` 在这个例子中: - `listen 80;` 表示监听 HTTP 端口 80。 - `server_name example.com;` 指定域名,需要替换为你实际使用的域名。 - `proxy_pass http://internal-server.example.com/;` 设置代理的目标服务器 URL。 - `proxy_set_header` 指令用于修改或添加代理头信息。 #### 3. 启动和测试 Nginx 启动 Nginx 服务。如果使用的是标准 Windows 服务管理工具,可以右键点击 Nginx 服务图标选择“开始”。然后访问浏览器并输入域名,检查是否能够正常访问到内部服务器的内容。 #### 4. 调整防火墙规则 为了允许外部用户通过 Nginx 访问内部服务器,可能需要调整 Windows 的防火墙规则,放行必要的端口和流量。 ### 关联问题: 1. **如何验证 Nginx 反向代理配置是否生效**? - 测试配置最简单的方式是使用浏览器直接访问 DNS 解析后的 IP 地址或域名,查看页面内容是否来自于预期的内部服务器。 2. **Nginx 中的反向代理配置应考虑哪些安全因素**? - 包含限制某些 IP 或特定类型的请求进入、过滤恶意数据、启用 SSL/TLS 加密等措施。 3. **如何提高 Nginx 反向代理的性能和稳定性**? - 优化缓存策略、调整 TCP 参数、定期监控系统资源使用情况以及对 Nginx 进行更新和维护。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值