反向代理
反向代理简介
反向代理(reverse proxy)用于代理服务器,用户输入代理服务器地址,通过nginx请求正确的服务器地址,并将资源返回给用户

配置
使用指令proxy_pass指定反向代理的服务器地址,在/etc/nginx/conf.d/目录下添加配置文件test.conf
{
listen 80;
server_name localhost;
location /jk/ {
proxy_pass http://localhost:8080/jenkins/;
}
}
当URL符合localhost/jenkins/时,nginx将会请求代理地址
注意:上面的代理服务器地址指定了资源地址为/jenkins/,则该字段将替代location匹配的参数/jk。比如客户端请求地址为http://localhost/jk/page.html,nginx代理后的地址为http://localhost:8080/jenkins/page.html
所以上面代码也可以修改如下:
...
location /jenkins/ {
proxy_pass http://localhost:8080;
}
...
反向代理过程
nginx安装在本地,所以当URL输入localhost/jenkins/时
- 解析域名为
IP地址127.0.0.1,请求本地nginx进行处理 nginx将URL转换成http://localhost:8080/jenkins/后再次请求nginx获得html数据后转发给浏览器
下面实现输入www.123.com/jenkins/,反向代理到http://localhost/jenkins/
修改/etc/hosts文件,将域名www.123.com映射到nginx服务器地址127.0.0.1
127.0.0.1 www.123.com
添加nginx配置文件/etc/nginx/conf.d/test.conf
server {
listen 80;
server_name www.123.com;
location /jenkins/ {
proxy_pass http://localhost:8080/jenkins/;
}
}
热更新nginx
$ sudo nginx -s reload
在浏览器登录www.123.com/jenkins/,即可登录本地安装的jenkins

如果不成功,可能是由于DNS缓存的关系,需要清空浏览器缓存和系统缓存