nginx实战操作之根据访问url中关键字跳转不同tomcat服务器

    今天我们来做一个nginx的实战之根据用户客户端发起访问的url中,根据关键字不同,nginx将请求转发到不同的tomcat服务器上去,比如,一个请求的url中如果包含iosoft8004,就转发到端口8004的tomcat服务器中,如果包含iosoft8005的话,就转发到端口8005的tomcat服务器中。

    看过我之前文章的话,小伙伴们已经准备好一个端口号是9001的nginx服务器,和端口号8004和8005的tomcat服务器,并且, 在端口是8004的tomcat的webapps文件下创建iosoft8004的应用,在端口是8005的tomcat的webapps文件下创建iosoft8005的应用,这里我就不做具体演示了,在我下边连接的文章中有具体操作。

从docker安装tomcat到启动自定义项目

    接下来,我们用一个docker的命令来确认下,nginx和两个tomcat是否正常启动。

# docker ps -a

    出现下边的信息的话,说明环境已经准备就绪,没有安装环境的小伙伴,参照我之前的写的文章,自行把环境安装上。

CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                            NAMES
bcbe5d0b053a        nginx               "nginx -g 'daemon of…"   3 hours ago         Up 3 hours          80/tcp, 0.0.0.0:9001->9001/tcp   mynginx
d5d9493cda13        tomcat              "catalina.sh run"        10 seconds ago      Up 8 seconds        0.0.0.0:8005->8080/tcp           mytomcat8005
55bbf8aeaeea        tomcat              "catalina.sh run"        16 seconds ago      Up 14 seconds       0.0.0.0:8004->8080/tcp           mytomcat8004

    大家都知道,我们对nginx设定的话,都是在修改nginx.conf文件,由于我们使用的是docker安装的nginx,需要把nginx的配置文件复制到本地,修改后,在复制回docker的nginx中,这里我们就在/usr/local/nginx文件下,做复制的工作,首先进入到文件夹下。

# cd /usr/local/nginx

    复制出docker容器中nginx的配置文件

# docker cp  mynginx:/etc/nginx/nginx.conf nginx.conf

    编辑nginx.conf文件

# vi nginx.conf

    这里是重点,追加下边粗体部分后,保存并推出

nginx.conf


user  nginx;
worker_processes  1;

error_log  /var/log/nginx/error.log warn;
pid        /var/run/nginx.pid;


events {
    worker_connections  1024;
}


http {
    include       /etc/nginx/mime.types;
    default_type  application/octet-stream;

    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';

    access_log  /var/log/nginx/access.log  main;

    sendfile        on;
    #tcp_nopush     on;

    keepalive_timeout  65;

    #gzip  on;

    server {
        listen 9001;
        server_name 192.168.100.101;
        location ~ /iosoft8004 {
            proxy_pass http://192.168.100.101:8004;
        }

        location ~ /iosoft8005 {
            proxy_pass http://192.168.100.101:8005;
        }
    }

    include /etc/nginx/conf.d/*.conf;
}

    将修改完的nginx.conf配置文件拷贝回docker容器中的nginx配置文件夹中

# docker cp  nginx.conf mynginx:/etc/nginx/nginx.conf

    重启nginx服务

# docker restart mynginx

    做到这里,大功告成,分别使用浏览器输入http://192.168.100.101:9001/iosoft8004和http://192.168.100.101:9001/iosoft8005会跳转到我们定义的端口8004和端口8005的tomcat自定义页面中,怎么样,大家都跑通了吗?

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值