Nginx 配置实例—反向代理

本文最后更新于:2 年前

Nginx 基础知识

实例一

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

实现效果

打开浏览器,在浏览器地址栏输入地址 www.123.com,跳转到 liunx 系统 tomcat 主页面中。

准备工作

  1. 在 liunx 系统安装 tomcat,使用默认端口 8080

    将 tomcat 安装文件放到 liunx 系统中,解压后进入 tomcat 的 bin 目录中,使用 ./startup.sh 命令启动 tomcat 服务器。

  2. 对外开放访问的端口

    1
    2
    firewall-cmd --add-port=8080/tcp --permanent
    firewall-cmd –reload
  3. 在 windows 系统中通过浏览器访问 tomcat 服务器

过程分析

本地 Windows 浏览器不能直接访问 liunx 系统中 tomcat 8080端口(121.0.0.1:8080),而是访问对外的 80端口(192.168.59.100:80 ),通过 Nginx 服务器转发到内部的 8080 端口,这个过程叫做请求转发。

请求转发过程

具体配置

  1. 在 windows 系统的 hosts 文件中进行域名和 ip 对应关系的配置

    本地hosts文件位置

    添加域名和 ip 对应关系

    可通过自定义域名访问tomcat服务器

  2. 在 nginx 进行请求转发的配置(反向代理配置)

    编辑 /usr/local/nginx/conf/nginx.conf 配置文件,修改以下内容:

效果测试

  1. 启动 Nginx

    1
    /usr/local/nginx/sbin/nginx
  2. 在浏览器中访问 www.123.com 自动跳转到 liunx 系统 tomcat 主页面中


实例二

实现效果

使用 nginx 反向代理,根据访问的路径跳转到不同端口的服务中。

nginx 监听端口为 9001,

  • 访问 http://192.168.59.100:9001/edu/ 直接跳转到 127.0.0.1:8081
  • 访问 http://192.168.59.100:9001/vod/ 直接跳转到 127.0.0.1:8082

准备工作

  1. 准备两个 tomcat 服务器,一个 8080 端口,一个 8081 端口

    1.1 创建两个目录

    1.2 准备好两个tomcat服务器

    1.3 查找实践1开启的tomcat进程,并终止

    1.4 启动8080端口的tomcat服务器

    1.5 编辑第二个tomcat服务器配置文件

    1.6 修改图中位置的内容

    1.7 启动修改为8081端口后的tomcat服务器

    1.8 此时可在本地浏览器中访问到两个端口,准备工作完成

  2. 创建文件夹和测试页面

    在两台 tomcat 里面 webapps 目录中,分别创建名称为 edu 和 vod 的文件夹,并分别在文件夹中创建不同的页面 a.html,用于测试。

    创建8080端口测试页面

    创建8081端口测试页面

    此时可在本地浏览器可访问到两个端口的测试页面

  3. 对外开放访问的端口

    1
    2
    3
    4
    firewall-cmd --add-port=9001/tcp --permanent
    firewall-cmd --add-port=8080/tcp --permanent
    firewall-cmd --add-port=8081/tcp --permanent
    firewall-cmd –reload

过程分析

访问 http://192.168.59.100:9001/edu/a.html 直接跳转到 121.43.59.100:8080/edu/a.html

访问 http://192.168.59.100:9001/vod/a.html 直接跳转到 121.43.59.100:8081/vod/a.html

请求转发过程

具体配置

  1. 找到 nginx 配置文件,进行反向代理配置

    1
    [root@gaojie ~]# vim /usr/local/nginx/conf/nginx.conf 

    location 指令说明

    该指令用于匹配 URL。
    语法如下:

    • = :用于不含正则表达式的 uri 前,要求请求字符串与 uri 严格匹配,如果匹配成功,就停止继续向下搜索并立即处理该请求。
    • ~ :用于表示 uri 包含正则表达式,并且区分大小写。
    • ~* :用于表示 uri 包含正则表达式,并且不区分大小写。
    • ^~ :用于不含正则表达式的 uri 前,要求 Nginx 服务器找到标识 uri 和请求字符串匹配度最高的 location 后,立即使用此 location 处理请求,而不再使用 location块中的正则 uri 和请求字符串做匹配。

    注意:如果 uri 包含正则表达式,则必须要有 ~ 或者 ~* 标识。

效果测试

  1. 重启 Nginx

    启动Nginx

  2. 在本地访问 9001 端口不同路径

访问不同的路径会跳转到不同端口的服务中


 目录

聚圣源跳楼死男孩广字辈起名字我的绝色总裁未婚妻最新章节黑白体育win10安装密钥庞氏宝宝起名纾字起名国家教育行政学院孩子生辰八字起名g点网新唐书房玄龄传婴儿免费起名字生辰生辰八字取名懒懒散散三点水旁的字男孩起名字蓝领是什么遇江南鞍山起名馆地址夏起名字大全XXX69中国咨询公司起甚么名字好杨家什么起名女孩孩子起名网免费男孩咋起名字当女配无聊时起名网测试名字打分姓张的猪宝宝起名字360休闲游戏随便起名字家装公司排行榜适合商标起名字淀粉肠小王子日销售额涨超10倍罗斯否认插足凯特王妃婚姻让美丽中国“从细节出发”清明节放假3天调休1天男孩疑遭霸凌 家长讨说法被踢出群国产伟哥去年销售近13亿网友建议重庆地铁不准乘客携带菜筐雅江山火三名扑火人员牺牲系谣言代拍被何赛飞拿着魔杖追着打月嫂回应掌掴婴儿是在赶虫子山西高速一大巴发生事故 已致13死高中生被打伤下体休学 邯郸通报李梦为奥运任务婉拒WNBA邀请19岁小伙救下5人后溺亡 多方发声王树国3次鞠躬告别西交大师生单亲妈妈陷入热恋 14岁儿子报警315晚会后胖东来又人满为患了倪萍分享减重40斤方法王楚钦登顶三项第一今日春分两大学生合买彩票中奖一人不认账张家界的山上“长”满了韩国人?周杰伦一审败诉网易房客欠租失踪 房东直发愁男子持台球杆殴打2名女店员被抓男子被猫抓伤后确诊“猫抓病”“重生之我在北大当嫡校长”槽头肉企业被曝光前生意红火男孩8年未见母亲被告知被遗忘恒大被罚41.75亿到底怎么缴网友洛杉矶偶遇贾玲杨倩无缘巴黎奥运张立群任西安交通大学校长黑马情侣提车了西双版纳热带植物园回应蜉蝣大爆发妈妈回应孩子在校撞护栏坠楼考生莫言也上北大硕士复试名单了韩国首次吊销离岗医生执照奥巴马现身唐宁街 黑色着装引猜测沈阳一轿车冲入人行道致3死2伤阿根廷将发行1万与2万面值的纸币外国人感慨凌晨的中国很安全男子被流浪猫绊倒 投喂者赔24万手机成瘾是影响睡眠质量重要因素春分“立蛋”成功率更高?胖东来员工每周单休无小长假“开封王婆”爆火:促成四五十对专家建议不必谈骨泥色变浙江一高校内汽车冲撞行人 多人受伤许家印被限制高消费

聚圣源 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化