通过nginx代理找到“对象“

前言:

1. 对于前后端分离项目,想进行前后端交互吗?那你不学习一手nginx怎么行呢?

  1. 下载一个nginx,有window版的,也有linux版的,随你挑选好吧。下面我们就先以window版为例。
  2. 去网上下载完成后就是下面的鬼样子。
    在这里插入图片描述
    启动方法:双击exe文件或者使用命令行(感觉高级一点 哈哈哈)
    在这里插入图片描述
    补充:./usr/local/nginx/sbin/nginx (linux版的)
    杀掉nginx服务命令:taskkill /im nginx.exe -f
  3. 校验是否启动成功。访问localhost:80 就会出现在这里插入图片描述
    *附加:*如果在启动后,没有访问成功,如果你修改了配置文件的话 大概率是配置文件出问题了,你可以在
    在这里插入图片描述
    顺便给你们提供一个坑啊。

比如你把地址代理到了百度或者别的公网地址,出现
The requested URL / was not found on this server.
出现这种地址,但是你又非常确定地址没有写错。

那你就去检查一下你的hosts文件,位置在
在这里插入图片描述
在这里插入图片描述
顺便我把测试的配置给你们看一下吧
在这里插入图片描述
以上就是nginx环境的搭建。现在才刚开始。

正文:

  1. nginx是连接两个服务的一个桥梁,即使相隔万里,也能彼此如在眼前。这个桥梁可以在任何一方。

在这里插入图片描述
这里需要提一下啊 不是说 只能在A服务器上搭建nginx 实际上你在那个上面搭建都可以 跟你想在那个网站上访问哪个网站没有任何关系

2. linux 系统上安装nginx

一 . 先去下载一个nginx 网址:http://nginx.org/
二 . 准备依赖环境

#安装Nginx依赖环境,‐y表示所有提示默认选择y
yum -y install pcre pcre-devel
yum ‐y install zlib zlib‐devel  
yum ‐y install openssl openssl‐devel

#安装gcc编译环境 
yum -y install gcc

三. 解压并安装

# 进入home目录,解压
tar -zxvf nginx-1.17.5.tar.gz -C /home

# 进入 nginx目录
cd nginx-1.17.5

# 编译并安装【已经有gcc编译环境】
./configure
make
make install
# 安装成功之后,就会在/usr/local下多出了一个nginx目录

四. 启动

#进入nginx的sbin目录
cd /usr/local/nginx/sbin

#在sbin目录下启动
./nginx
#在sbin目录下停止
./nginx ‐s stop
#在sbin目录下重写加载
./nginx ‐s reload

#开放linux的对外访问的端口80,在默认情况下,Linux不会开放80端口号
#需要编辑iptables文件,参考 4.5 操作
#查看是否有nginx的线程是否存在
ps ‐ef | grep nginx

最后就是访问了 跟在window里面是一样的

最后我把我配置文件给你看一下

# 这里只粘了 需要我们改动的地方
server {
        listen       7010;
        server_name  192.168.23.169;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;


        location / {
           proxy_pass   http://10.200.76.11:7003;  #反向代理
           # proxy_cookie_domain 10.200.76.11 10.200.77.70; #修改cookie里域名
		   index  index.html index.htm;
	#	        add_header Access-Control-Allow-Origin http://10.200.77.70;  #当前端只跨域不带cookie时,可为*
        add_header Access-Control-Allow-Credentials true;
		add_header Access-Control-Allow-Origin *;


        }
		
		location /zgrm {
           proxy_pass http://10.200.76.11:7003;
        }
		
		location /yssa {
           proxy_pass http://10.200.76.11:7003;
        }
		

nginx代理的实质:

在说它的实质之前 我先把 上面的nginx.conf 配置文件说明一下。
在这里插入图片描述
其他的都不用管 不是最重要的部分。

下面就说一下nginx代理的实质吧(个人理解)
所谓的nginx代理就是说把nginx当作一个桥,我们通过这个nginx可以从nginx所在的ip跳转到任意的ip地址下,也就是说 起到了一个更换ip地址+端口号的目的 。

需要提醒: 刚开始访问的地址必须是 nginx服务所在的ip以端口,并且只有我们请求的地址(端口后紧跟的位置)跟我们配置的拦截地址一样的时候才会跳转到指定的ip地址下。
在这里插入图片描述

特别点:

  1. nginx本身就是一个程序,一个服务。所以你就可以把它当作是一个服务处理就好理解了 所以我们配置的
    在这里插入图片描述
    server-name:就是服务所在的ip
    listen:就是服务监听的端口 ,其实说监听不太好 实际就是服务所占的端口号,你用这个端口号了 ,也就相当于你用了nginx代理,要不然 你配置了也没有用 不过大家都是叫它监听端口号
  2. 还有一个要注意的是所谓的nginx代理 是看你的请求地址发的是什么,这样说可能不好理解,我举个例子:你在做集成系统的时候,把一个系统集成到另一个系统当中的时候,菜单跳转的时候,发送的地址的ip应该是你nginx的地址以及端口号,要不然 你就会存在跨域,你配置的是nginx的ip和端口,就是进入nginx 这个时候你就能跳转到你所指定的地址了。
    在这里插入图片描述

看图好理解

nginx反向代理说完了 有啥不理解的可以留言!!!

配置文件描述

 server {
      listen       8876;
        server_name  127.0.0.1;
        client_header_buffer_size 512k;
        large_client_header_buffers 4 512k;
        client_max_body_size 20000m;

         location / {
            root D:/soft/java/nginx/nginx-1.20.1/nginx-1.20.1/html;
            index index.html index.htm;

        }
        location /mainpage {
            proxy_pass http://10.200.76.11:8086/index.html;

        }

         location /dzgzmh/ {
                proxy_pass  http://10.200.76.11:8086/dzgzmh/;
        }

        #账户请求路径
        location /account/ {
          proxy_pass http://10.200.76.11:8086/account/;
        } 
         location /login {
        # 过期后跳转到的页面路径,对于集成在门户中的报表工具,需要将此配置改为门户的登录页入口地址
        return 302 /#/login;
        }

        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
          
    }
listen: 指定监听的地址和端口
listen address[:port];
listen port;

server_name NAME[…];后面可以跟多个主机,名称可使用正则表达式或者通配符

当有多个server时,匹配顺序如下:
  • 先做精确匹配检查
  • 左侧通配符匹配检查,如*.idfsoft.com
  • 右侧通配符匹配检查,如mail.*
  • 正则表达式匹配检查,如~ ^.*.idfsoft.com$
  • default_server

# 以上规则简单总结就是优先级从高到低依次为(序号越小优先级越高)
1. location =    # 精准匹配
2. location ^~   # 带参前缀匹配
3. location ~    # 正则匹配(区分大小写)
4. location ~*   # 正则匹配(不区分大小写)
5. location /a   # 普通前缀匹配,优先级低于带参数前缀匹配。
6. location /    # 任何没有匹配成功的,都会匹配这里处
location = / {
# 只精准匹配 / 的查询.
[ configuration A ]
}
#匹配成功: /
location / {
# 匹配任何请求,因为所有请求都是以”/“开始
# 但是更长字符匹配或者正则表达式匹配会优先匹配
[ configuration B ]
}
#匹配成功:/index.html
location /documents {
# 匹配任何以 /documents/ 开头的地址,匹配符合以后,还要继续往下搜索/
# 只有后面的正则表达式没有匹配到时,这一条才会采用这一条/
[ configuration C ]
}
#匹配成功:/documents/document.html
#匹配成功:/documents/abc
location ~ /documents/ABC {
# 区分大小写的正则匹配
# 匹配任何以 /documents/ 开头的地址,匹配符合以后,还要继续往下搜索/
# 只有后面的正则表达式没有匹配到时,这一条才会采用这一条/
[ configuration CC ]
}
location ^~ /images/ {
# 匹配任何以 /images/ 开头的地址,匹配符合以后,立即停止往下搜索正则,采用这一条。/
[ configuration D ]
}
#成功匹配:/images/a.gif

location ~* .(gif|jpg|jpeg)$ {
# 匹配所有以 .gif、.jpg 或 .jpeg 结尾的请求,不区分大小写
# 然而,所有请求 /images/ 下的图片会被 [ config D ] 处理,因为 ^~ 到达不了这一条正则/
[ configuration E ]
}
#成功匹配:/documents/a.jpg

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
引用: 正向代理代理对象是客户端,反向代理代理对象是服务端。代理服务器站在客户端那边就是正向代理代理服务器站在原始服务器那边就是反向代理nginx通过proxy_pass可以设置代理服务。 正向代理是指客户端通过代理服务器访问互联网资源,客户端向代理服务器发送请求,代理服务器再代表客户端向目标服务器发出请求,然后将响应返回给客户端。这种情况下,目标服务器并不知道真正的请求来自哪个客户端,只知道代理服务器的IP地址。正向代理常用于加密和突破网络限制,隐藏真实IP地址等需求。 反向代理是指客户端向代理服务器发送请求,代理服务器根据配置的规则将请求转发到多个目标服务器中的一个,然后将目标服务器的响应返回给客户端。客户端并不知道真正提供服务的是哪个目标服务器,只知道代理服务器的IP地址。反向代理常用于负载均衡、缓存加速、安全防护等需求。 引用: 正向代理和反向代理的概念可以通过租房来进行解释。正向代理就好像你找了一个中介帮你租房,你向中介提出需要租房的要求,中介根据你的要求帮你找到合适的房源,并将房源信息转发给你。你并不知道真正的房东是谁,只知道中介的联系方式。反向代理则相反,房东找了一个中介来帮他出租房屋,中介接收房东的房源信息,然后根据特定的规则将房源分配给租客。租客并不知道真正提供房源的是哪个房东,只知道中介的联系方式。 对于nginx来说,可以通过配置文件中的proxy_pass指令来实现反向代理和正向代理。通过设置代理服务器的地址和端口,nginx将客户端的请求转发到目标服务器,并将目标服务器的响应返回给客户端。在配置文件中,可以通过添加resolver和proxy_pass指令来设置反向代理。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [深度详解Nginx正向代理与反向代理](https://blog.csdn.net/weixin_46286156/article/details/127524441)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值