nginx反向代理实例
通过一个例子演示一下nginx是如何代理服务的,并且讲一下nginx.conf的关于server模块和location模块的配置
server模块:配置虚拟主机的相关参数,一个http中可以有多个server
location模块:配置请求的路由,以及各种页面的处理情况
首先我在本地虚拟机安装了nginx和tomcat,启动后,此时可以使用虚拟机ip地址访问tomcat
虚拟机ip是:http://192.168.233.128
tomcat监听的端口是:8080
1.现在想通过nginx代理一下tomcat服务,使用nginx配置的虚拟主机地址来访问
(1)增加一个server 块,并在其中添加一个location快,如下
server {
listen ;
server_name localhost;
location / { # 只有一个/后面没有路径,表示访问tomcat首页
proxy_pass http://localhost:8080;
# tomcat服务的路由 (因为我的nginx和tomcat部署在了同一台虚拟机,所以这里填的localhost,假如想代理其他服务器的服务,则填写程序所在服务器ip端口即可)
}
}
这样,在访问时,使用虚拟主机的ip+端口即可访问 http://192.168.233.128:8089/
(2)在原有server基础上添加一个location块,如下:
server {
listen ;
server_name localhost;
#charset koi8-r;
#access_log logs/host.access.log main;
# location / { #注意:把原来的根路径的location注释掉了,这个页面是跳转到nginx的首页,因为不允许出现2个一样的location路径,否则会报错“nginx: [emerg] duplicate location "/" in /usr/local/nginx/conf/nginx.conf:63”
# root html;
# index index.html index.htm;
#}
location / { # 根路径
proxy_pass http://localhost:8080; # 请求转向本虚拟机的8080端口(即访问tomcat)
}
这次,直接使用虚拟机的ip即可访问tomcat首页:http://192.168.233.128(不需要加端口,因为是80端口)
2.在tomcat上部署了一个jenkins.war,通过nginx反向代理来访问
正常访问jenkins是:http://192.168.233.128:8080/jenkins
通过nginx代理,不加端口访问,只需在监听80端口的server块中添加一个location块
location /jenkins { # /jenkins表示要访问的路由下的路径
proxy_pass http://127.0.0.1:8080; # 请求转向本虚拟机的8080端口
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr; #获取真实ip
proxy_connect_timeout 90;
proxy_send_timeout 90;
proxy_read_timeout 90;
proxy_buffer_size 4k;
proxy_buffers 4 32k;
proxy_busy_buffers_size 64k;
proxy_temp_file_write_size 64k;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;#获取代理者的真实ip
proxy_redirect off;
}
配置完成后重启nginx,使用http://192.168.233.128/jenkins进行访问即可
3.代理部署在另一台服务器的程序,通过nginx所在服务器访问其服务
在监听80端口的server块中添加一个location块
location /ApprPhD { # 访问程序时需要在ip后添加的路径
proxy_pass http://192.168.0.XXX:30; # 请求转向XXX服务器上的服务,结合/ApprPhd,表示访问 http://192.168.0.XXX:30/ApprPhD
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr; #获取真实ip
proxy_set_header REMOTE-HOST $remote_addr;
proxy_connect_timeout 90;
proxy_send_timeout 90;
proxy_read_timeout 90;
proxy_buffer_size 4k;
proxy_buffers 4 32k;
proxy_busy_buffers_size 64k;
proxy_temp_file_write_size 64k;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;#获取代理者的真实ip
proxy_redirect off;
}
重启nginx服务后,使用如下链接访问:http://192.168.233.128/ApprPhD
nginx反向代理实例的更多相关文章
- linux之反向代理,反向代理实例,负载均衡实例
目录 nginx反向代理 1. 概述 2. 反向代理服务器的工作原理 (1)作为内容服务器的替身 (2)作为内容服务器的负载均衡器 二. nginx反向代理实例 1.前期准备 2.代理服务器配置 3. ...
- 实战 | 一文带你读懂Nginx反向代理
一个执着于技术的公众号 前言 在前面的章节中,我们已经学习了nginx基础知识: 给小白的 Nginx 10分钟入门指南 Nginx编译安装及常用命令 完全卸载nginx的详细步骤 Nginx 配置文 ...
- Nginx配置实例-反向代理实例:根据访问的路径跳转到不同端口的服务中
场景 Ubuntu Server 16.04 LTS上怎样安装下载安装Nginx并启动: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/detai ...
- Nginx反向代理配置配置实例
为了节省支出,公司需要将分布在不同机器的站点都迁移到一台机器,而目前不同机器运行的是不同的web服务,部分是nginx,部分是apache,由于牵涉较多rewrite规则,为了节省修改功夫,打算迁移后 ...
- Nginx反向代理websocket配置实例
最近有一个需求,就是需要使用 nginx 反向代理 websocket,经过查找一番资料,目前已经测试通过,本文只做一个记录 复制代码 代码如下: 注: 看官方文档说 Nginx 在 1.3 以后的版 ...
- nginx反向代理配置实例分享
nginx反向代理配置一例. 配置内容如下: user www www; worker_processes 8; error_log /usr/local/webserver/nginx/logs/n ...
- Nginx反向代理,负载均衡,redis session共享,keepalived高可用
相关知识自行搜索,直接上干货... 使用的资源: nginx主服务器一台,nginx备服务器一台,使用keepalived进行宕机切换. tomcat服务器两台,由nginx进行反向代理和负载均衡,此 ...
- nginx反向代理tomcat访问时浏览器加载失败,出现 ERR_CONTENT_LENGTH_MISMATCH 问题
问题说明:测试机上部署了一套业务环境,nginx反向代理tomcat,在访问时长时间处于加载中,十分缓慢! 通过浏览器调试(F12键->Console),发现有错误ERR_CONTENT_LEN ...
- nginx 反向代理 与 Apache backend的配置联合配置
nginx 反向代理 与 Apache backend的配置联合配置: 说明: nginx 将http映射到Apache上的特定子目录. 配置方法步骤: 1. 设置域名, 子域名映射到指定服务器ip ...
随机推荐
- bzoj 4591 超能粒子炮·改 - Lucas
Description 曾经发明了脑洞治疗仪&超能粒子炮的发明家SHTSC又公开了他的新发明:超能粒子炮·改--一种可以发射威力更加 强大的粒子流的神秘装置.超能粒子炮·改相比超能粒子炮,在威 ...
- Win7 配置免安装mysql5.7.20过程详解
转载:https://www.2cto.com/database/201406/312689.html 转载:http://blog.csdn.net/hekaihaw/article/details ...
- 【Python026--字典内键方法】
一,内键方法 1.fromkeys(...) 语法:dict1.fromkeys(s[,v]):s指的是字典的键值,[,v]指的是可选项(值),[,v]不填写的话默认为none #不填写第二个值,默认 ...
- "msg": "Using a SSH password instead of a key is not possible because Host Key checking is enabled and sshpass does not support this. Please add this host's fingerprint to your known_hosts file to ma
Centos7.5 ansible第一次使用模块报错 问题: [root@m01 ~]# ansible webservers -m ping -i ./hosts 172.16.1.7 | FAIL ...
- topcoder srm 475 div1
problem1 link 暴力枚举$r$只兔子的初始位置,然后模拟即可. problem2 link 假设刚生下来的兔子是1岁,那么能够生小兔子的兔子的年龄是至少3岁. 那么所有的兔子按照年龄可以分 ...
- Python3基础 list range+for 等差数列
Python : 3.7.0 OS : Ubuntu 18.04.1 LTS IDE : PyCharm 2018.2.4 Conda ...
- Python 处理 CSV/EXCEL 表格文件
只想说,数据挖掘工作,80%时间都花在处理数据上了,这句话真不假! 最近和小伙伴组了个队参加数据分析比赛,记录下我处理 csv 文件的一些步骤吧: 修改csv文件 可以用csv模块1,官方文档2 im ...
- 使用python+ffmpeg+youtube-dl下载youtube上的视频
一.准备工作 1.安装python,详见https://www.cnblogs.com/cnwuchao/p/10562416.html 2.安装ffmpeg,详见https://www.cnblog ...
- Centos 7下添加新用户并授权
1.创建一个 xiaoyang 用户 [root@VM_81_181_centos ~]# adduser xiaoyang 2.为创建的用户设置密码 [root@VM_81_181_centos ~ ...
- 使用 jenkins 搭建CI/CD流水线 (MAC)
如何搭建持续集成/持续交付平台?? 如何使用jenkins搭建持续交付流水线,以及和其他工具(如artifactory)集成?如何使用元数据,记录软件发布过程的构建信息,测试结果,并用rest Api ...