通过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
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值