首页 新闻 搜索 专区 学院

nginx反向代理

0
[已解决问题] 解决于 2018-03-19 03:20

1,实验环境
Client(192.168.13.254)---------主机A(192.168.13.132)----------------主机B(192.168.13.131)

2,状态:
Client:一台Windows主机,安装有谷歌浏览器

主机A:一台Linux主机,安装CentOS6.8操作系统.安装Nginx.配置反向代理
[root@CentOS-1 ~]# cat /usr/share/nginx/html/aa/proxy/bb/index.html
<h1>NGINX</h1>

[root@CentOS-1 ~]# cat /etc/nginx/conf.d/default.conf | grep -v "^$" | grep -v " "*#
server {
listen 80;
server_name localhost;
location /proxy/ {
proxy_pass http://192.168.13.131/;
}
location / {
root /usr/share/nginx/html;
index index.html index.htm;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
}

主机B:一台Linux主机,安装CentOS6.8操作系统.安装httpd.
[root@CentOS-1 ~]# cat /var/www/html/index.html
<h1>Apache</h1>

3.问题:反向代理不起作用

LWCUIG的主页 LWCUIG | 初学一级 | 园豆:152
提问于:2018-03-10 13:32
< >
分享
最佳答案
0

server_name localhost;,主机名只绑定了localhost,通过localhost访问才起作用。如果要使用IP,需要在server_name中添加IP地址

奖励园豆:5
dudu | 高人七级 |园豆:38819 | 2018-03-10 13:40

你好!谢谢你的帮助.我已经按照你的来修改了主机A的配置文件,配置文件如下:

[root@CentOS-1 ~]# cat /etc/nginx/conf.d/default.conf | grep -v "^$" | grep -v " "*#
server {
listen 80;
server_name 192.168.13.132;
location /proxy {
proxy_pass http://192.168.13.131/;
}
location / {
root /usr/share/nginx/html;
index index.html index.htm;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
}

效果:

 

LWCUIG | 园豆:152 (初学一级) | 2018-03-10 17:31

@LWCUIG: 你只反向代理了location /proxy,没有反向代理location /

dudu | 园豆:38819 (高人七级) | 2018-03-10 17:36

@dudu: 对的,我的想法是当客户端访问"/proxy"目录下的内容的时候,代理到主机B上.

LWCUIG | 园豆:152 (初学一级) | 2018-03-10 17:38

@LWCUIG: 您测试时访问的是路径是/aa/proxy

dudu | 园豆:38819 (高人七级) | 2018-03-10 17:50

@dudu: 我测试的时候,访问的路径是"/aa/proxy/bb/".

LWCUIG | 园豆:152 (初学一级) | 2018-03-10 17:51

@dudu: 你好,我觉得我的Location没有被匹配到.不知道是不是我的匹配有问题.

[root@CentOS-1 ~]# tail -1 /var/log/nginx/access.log
192.168.13.254 - - [10/Mar/2018:22:40:32 +0800] "GET /aa/proxy/bb/index.html HTTP/1.1" 304 0 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36" "-"

LWCUIG | 园豆:152 (初学一级) | 2018-03-10 17:56

@LWCUIG: 把 location /proxy/ 改为 location ~ /proxy/ 试试

dudu | 园豆:38819 (高人七级) | 2018-03-10 18:52

@LWCUIG: location /proxy/只能匹配以/proxy/开头的路径

dudu | 园豆:38819 (高人七级) | 2018-03-10 18:56

@dudu: 你好.我使用location .*/proxy/.*来匹配的话.就是在访问Nginx服务器了.而没有进行反向代理.我感觉只能匹配开头的那些目录.如:/aa/.一个URL:http://192.168.13.132/AA/BB/CC/,就只能匹配一级目录(也就是AA).不知道这样理解是不是对的.

LWCUIG | 园豆:152 (初学一级) | 2018-03-11 12:30
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册