4、nginx 配置实例-反向代理

news2024/9/28 11:12:58

文章目录

  • 4、nginx 配置实例-反向代理
    • 4.1 反向代理实例一
      • 4.1.1 实验代码
    • 4.3 反向代理实例二
      • 4.3.1 实验代码


【尚硅谷】尚硅谷Nginx教程由浅入深

志不强者智不达;言不信者行不果。

4、nginx 配置实例-反向代理

4.1 反向代理实例一

实现效果:使用 nginx 反向代理,访问 www.123.com 直接跳转到 127.0.0.1:8080

4.1.1 实验代码

1) 启动一个 tomcat,浏览器地址栏输入 192.168.39.250:8080,出现如下界面

在这里插入图片描述
向linux系统中导入一个apache-tomcat-7.0.70.tar.gz文件,放在/usr/src/文件夹中

解压到当前文件夹

[root@centos7-101 src]# tar -xvf apache-tomcat-7.0.70.tar.gz 

启动Tomcat

[root@centos7-101 src]# cd apache-tomcat-7.0.70/bin/
[root@centos7-101 bin]# ./startup.sh 
Using CATALINA_BASE:   /usr/src/apache-tomcat-7.0.70
Using CATALINA_HOME:   /usr/src/apache-tomcat-7.0.70
Using CATALINA_TMPDIR: /usr/src/apache-tomcat-7.0.70/temp
Using JRE_HOME:        /usr
Using CLASSPATH:       /usr/src/apache-tomcat-7.0.70/bin/bootstrap.jar:/usr/src/apache-tomcat-7.0.70/bin/tomcat-juli.jar
Tomcat started.

进入日志文件,查看启动日志,Ctrl + Z推出日志

[root@centos7-101 bin]# cd ..
[root@centos7-101 apache-tomcat-7.0.70]# cd logs/
[root@centos7-101 logs]# tail -f catalina.out 
九月 07, 2023 6:04:02 上午 org.apache.catalina.startup.HostConfig deployDirectory
信息: Deploying web application directory /usr/src/apache-tomcat-7.0.70/webapps/manager
九月 07, 2023 6:04:02 上午 org.apache.catalina.startup.HostConfig deployDirectory
信息: Deployment of web application directory /usr/src/apache-tomcat-7.0.70/webapps/manager has finished in 117 ms
九月 07, 2023 6:04:02 上午 org.apache.coyote.AbstractProtocol start
信息: Starting ProtocolHandler ["http-bio-8080"]
九月 07, 2023 6:04:02 上午 org.apache.coyote.AbstractProtocol start
信息: Starting ProtocolHandler ["ajp-bio-8009"]
九月 07, 2023 6:04:02 上午 org.apache.catalina.startup.Catalina start
信息: Server startup in 1844 ms

查看运行进程

[root@centos7-101 logs]# ps -ef | grep tomcat

防火墙中开放本地端口号8080,让外部访问到linux中的Tomcat

[root@centos7-101 logs]# firewall-cmd --add-port=8080/tcp --permanent
success
[root@centos7-101 logs]# firewall-cmd --reload 
success
[root@centos7-101 logs]# firewall-cmd --list-all
public (active)
  target: default
  icmp-block-inversion: no
  interfaces: ens33
  sources: 
  services: dhcpv6-client ssh
  ports: 80/tcp 8080/tcp
  protocols: 
  masquerade: no
  forward-ports: 
  source-ports: 
  icmp-blocks: 
  rich rules:

在windows中通过浏览器访问 http://192.168.39.250:8080/,linux中的ip地址写自己的

在这里插入图片描述
2) 通过修改本地 host 文件,将 www.123.com 映射到 127.0.0.1

在这里插入图片描述
在 windows 系统的host文件进行域名和ip对应关系的配置

文件地址:C:\Windows\System32\drivers\etc
修改内容:192.168.39.250 www.123.com

在这里插入图片描述
配置完成之后,我们便可以通过 www.123.com:8080 访问到第一步出现的 Tomcat 初始界面。

在这里插入图片描述
那么如何只需要输入 www.123.com 便可以跳转到 Tomcat 初始界面呢?

便用到 nginx的反向代理。

3) 在 nginx.conf 配置文件中增加如下配置

[root@centos7-101 ~]# cd /usr/local/nginx/conf/
    server {
        listen       80;
        server_name  192.168.39.250;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location / {
            root   html;
            proxy_pass http://127.0.0.1:8080;
            index  index.html index.htm;
        }

重新启动nginx

[root@centos7-101 sbin]# ./nginx -s reload

如上配置,我们监听 80 端口,访问域名为 www.123.com,不加端口号时默认为 80 端口,故访问该域名时会跳转到 127.0.0.1:8080 路径上。

在浏览器端输入 www.123.com 结果如下:

在这里插入图片描述

4.3 反向代理实例二

实现效果:使用 nginx 反向代理,根据访问的路径跳转到不同端口的服务中nginx 监听端口为 9001,

访问 http://127.0.0.1:9001/edu/ 直接跳转到 127.0.0.1:8080
访问 http://127.0.0.1:9001/vod/ 直接跳转到 127.0.0.1:8081

4.3.1 实验代码

第一步,准备两个 tomcat,一个 8080 端口,一个 8081 端口,并准备好测试的页面

新建两个文件夹

[root@centos7-101 src]# mkdir tomcat8080
[root@centos7-101 src]# mkdir tomcat8081

向两个文件夹导入tomcat文件,解压文件

[root@centos7-101 src]# tar -xvf apache-tomcat-7.0.70.tar.gz 

停止tomcat

[root@centos7-101 bin]# ps -ef | grep tomcat
[root@centos7-101 bin]# kill -9 22942

进入新创建的tomcat配置文件,修改端口号

[root@centos7-101 bin]# cd /usr/src/tomcat8081/apache-tomcat-7.0.70/conf/
[root@centos7-101 conf]# vim nginx.conf
<Server port="8015" shutdown="SHUTDOWN">
<Connector port="8081" protocol="HTTP/1.1"
           connectionTimeout="20000"
           redirectPort="8443" />
<Connector port="8019" protocol="AJP/1.3" redirectPort="8443" />

向两个文件夹中准备测试页面,创建新文件夹
edu:/usr/src/tomcat8080/apache-tomcat-7.0.70/webapps
vod:/usr/src/tomcat8081/apache-tomcat-7.0.70/webapps

开放防火墙端口

[root@centos7-101 bin]# sudo firewall-cmd --add-port=8081/tcp --permanent 
success
[root@centos7-101 bin]# firewall-cmd --reload 
success

第二步,修改 nginx 的配置文件,实现监听9001端口,根据不同路径跳转不同端口

配置文件地址:
在 http 块中添加 server{}
location 指令说明
该指令用于匹配 URL。
语法如下:
1、= :用于不含正则表达式的 uri 前,要求请求字符串与 uri 严格匹配,如果匹配
成功,就停止继续向下搜索并立即处理该请求。
2、~:用于表示 uri 包含正则表达式,并且区分大小写。
3、~:用于表示 uri 包含正则表达式,并且不区分大小写。
4、^~:用于不含正则表达式的 uri 前,要求 Nginx 服务器找到标识 uri 和请求字
符串匹配度最高的 location 后,立即使用此 location 处理请求,而不再使用 location
块中的正则 uri 和请求字符串做匹配。
注意:如果 uri 包含正则表达式,则必须要有 ~ 或者 ~
标识。

    server {
        listen       9001;
    #    listen       somename:8080;
        server_name  192.168.39.250;

        location ~/edu/ {
    #        root   html;
    #        index  index.html index.htm;
                proxy_pass http://127.0.0.1:8080:
        }
        location ~/vod/ {
                proxy_pass http://127.0.0.1:8081:
        }
    }

重新加载nginx

[root@centos7-101 sbin]# ./nginx -s reload

开放防火墙端口

[root@centos7-101 bin]# sudo firewall-cmd --add-port=9001/tcp --permanent 
success
[root@centos7-101 bin]# firewall-cmd --reload 
success

效果:http://192.168.39.250:9001/edu/a.html
在这里插入图片描述

http://192.168.39.250:9001/vod/a.html

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/984798.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

为什么有的测试员路越走越窄?原因在这里

常常在思考&#xff1a;同样背景&#xff0c;同样学历的人&#xff0c;为什么有的人路越走越宽&#xff0c;而有的人路越走越窄&#xff1f; 不能简单归结于性格和运气&#xff0c;看似偶然实则必然。 不善学习 学习才能使我们内心强壮&#xff0c;充满自信。 然而&#xff…

[machine Learning]强化学习

强化学习和前面提到的几种预测模型都不一样,reinforcement learning更多时候使用在控制一些东西上,在算法的本质上很接近我们曾经学过的DFS求最短路径. 强化学习经常用在一些游戏ai的训练,以及一些比如火星登陆器,月球登陆器等等工程领域,强化学习的内容很简单,本质就是获取状…

C++信息学奥赛1191:流感传染

一开始的代码自己运行测试代码怎么测试都是正确&#xff0c;但是一直提示答案错误 #include <iostream> using namespace std; int main() {int n;cin >> n;char arr[n][n];for (int i 0; i < n; i){for (int j 0; j < n; j){cin >> arr[i][j];}}in…

Netty—EventLoop

文章目录 一、EventLoopGroup 是什么&#xff1f;&#x1f914;️二、NioEventLoop 有哪些重要组成部分&#xff1f;&#x1f50d;三、NioEventLoop 的 thread 在何时启动&#xff1f;三、 run() 方法中线程在干嘛&#xff1f; 一、EventLoopGroup 是什么&#xff1f;&#x1f…

纯源码程序的执行

QT Creator本身是个IDE安装的时候根据自己需要配置的又有对应的编译器&#xff0c;因此编写普通的程序也不再话下。 选择Non-Qt Project工程&#xff0c;并在右侧根据自己的需要选择C应用还是C应用 新工程中工程管理文件和代码如下&#xff1a; 执行结果如下

驱动开发--day2

实现三盏灯的控制&#xff0c;编写应用程序测试 head.h #ifndef __HEAD_H__ #define __HEAD_H__#define LED1_MODER 0X50006000 #define LED1_ODR 0X50006014 #define LED1_RCC 0X50000A28#define LED2_MODER 0X50007000 #define LED2_ODR 0X50007014#endif mychrdev.c #inc…

浅谈数据治理中的智能数据目录

在数字化转型的战略实施中&#xff0c;很多企业都在搭建自己的业务、数据及人工智能的中台。在同这些企业合作和交流中&#xff0c;越来越体会到数据目录是中台建设的核心和基础。为了更好地提供数据服务&#xff0c;发挥数据价值&#xff0c;用户需要先理解数据和信任数据。 企…

c高级day2(9.7)shell脚本

作业: 写一个1.sh脚本&#xff0c;将以下内容放到脚本中&#xff1a; 在家目录下创建目录文件&#xff0c;dir 在dir下创建dir1和dir2 把当前目录下的所有文件拷贝到dir1中&#xff0c; 把当前目录下的所有脚本文件拷贝到dir2中 把dir2打包并压缩为dir2.tar.xz 再把dir2…

基于docker环境的tomcat开启远程调试

背景&#xff1a; Tomcat部署在docker环境中&#xff0c;使用rancher来进行管理&#xff0c;需要对其进行远程调试。 操作步骤&#xff1a; 1.将容器中的catalina.sh映射出来&#xff0c;便于对其修改&#xff0c;添加远程调试相关参数。 注意&#xff1a;/data/produce2201…

【计算机网络】HTTP(下)

本文承接上文的代码进行改造&#xff0c;上文链接&#xff1a;HTTP上 文章目录 1. 实现网站跳转实现 自己的网站跳转 2. 请求方法(get) && 响应方法(post)GET方法POST方法GET与POST的应用场景 3. HTTP状态码在自己设计的代码中发现4043开头的状态码(重定向状态码)永久…

“交叉轮”轮融资后,哪吒汽车能否脚踏“风火轮”续写逆袭故事?

2023年的新能源汽车江湖&#xff0c;烟波浩渺的水面下暗潮汹涌。 从特斯拉年初打响降价第一枪&#xff0c;降价潮至今未见尾声。9月刚至&#xff0c;小鹏汽车、零跑汽车又推出了调价政策。 这一背景下&#xff0c;车企内卷加剧是必然。年初&#xff0c;哪吒汽车联合创始人、C…

2019 ICPC香港站 G. Game Design

Problem - G - Codeforces 问题描述&#xff1a;怪物只能在树叶子节点出生&#xff0c;向上走&#xff0c;可以花费一个值在一个节点建防御塔&#xff0c;防御塔会阻碍怪物向上走。最小花费可以让根节点无法被怪物走到的一个造塔方法算是一个方案。现给定方案数&#xff0c;让…

MaskVO: Self-Supervised Visual Odometry with a Learnable Dynamic Mask 论文阅读

论文信息 题目&#xff1a;MaskVO: Self-Supervised Visual Odometry with a Learnable Dynamic Mask 作者&#xff1a;Weihao Xuan, Ruijie Ren, Siyuan Wu, Changhao Chen 时间&#xff1a;2022 来源&#xff1a; IEEE/SICE International Symposium on System Integration …

Kubernetes(k8s)部署高可用多主多从的Redis集群

Kubernetes部署高可用多主多从的Redis集群 环境准备准备Kubernetes准备存储类 部署redis准备一个命名空间命令创建yaml文件创建&#xff08;推荐&#xff09; 准备redis配置文件准备部署statefulset的资源清单文件执行文件完成部署初始化集群 环境准备 准备Kubernetes 首先你…

【Go基础】编译、变量、常量、基本数据类型、字符串

面试题文档下链接点击这里免积分下载 go语言入门到精通点击这里免积分下载 编译 使用 go build 1.在项目目录下执行 2.在其他路径下编译 go build &#xff0c;需要再后面加上项目的路径&#xff08;项目路径从GOPATH/src后开始写起&#xff0c;编译之后的可执行文件就保存再…

chrome_elf.dll丢失怎么办?修复chrome_elf.dll文件的方法

Chrome是目前最受欢迎的网络浏览器之一&#xff0c;然而有时用户可能会遇到Chrome_elf.dll丢失的问题。该DLL文件是Chrome浏览器的一个重要组成部分&#xff0c;负责启动和管理程序的各种功能。当Chrome_elf.dll丢失时&#xff0c;用户可能无法正常启动Chrome或执行某些功能。本…

log4qt库的使用

log4qt库的使用 一,什么是log4qt?二,log4qt的下载三,如何集成log4qt?1.在vs2022中集成log4qt的方法:模块一:配置log4qt的步骤步骤一,将下好的log4qt库进行解压,然后再库文件中,新建build和Log4Qt文件夹步骤二,打开cmake,有两个填写路径的位置.步骤三,点击cmake的configure按钮…

(2023,Diffusion)稳定扩散模型是不稳定的

Stable Diffusion is Unstable 公众号&#xff1a;EDPJ&#xff08;添加 VX&#xff1a;CV_EDPJ 进交流群获取资料&#xff09; 0. 摘要 最近&#xff0c;文本到图像模型一直蓬勃发展。 尽管它们具有强大的生成能力&#xff0c;但我们的研究发现这一生成过程缺乏稳健性。 具体…

【C++】平衡二叉搜索树的模拟实现

&#x1f307;个人主页&#xff1a;平凡的小苏 &#x1f4da;学习格言&#xff1a;命运给你一个低的起点&#xff0c;是想看你精彩的翻盘&#xff0c;而不是让你自甘堕落&#xff0c;脚下的路虽然难走&#xff0c;但我还能走&#xff0c;比起向阳而生&#xff0c;我更想尝试逆风…