我是在高校里,学校对外只让开放80端口
但是使用java和 python(flask)开发了网站,分别称为javaweb
和flaskweb
想法是:
- tomcat7代理javaweb,使用81端口, 然后nginx反向代理tomcat的81端口到80端口
- flaskweb使用8001端口,将nginx的80端口下的/proxy目录反向代理flaskweb
server {
listen 80;
location / {
proxy_pass http://127.0.0.1:81;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
location /proxy {
proxy_pass http://127.0.0.1:8001/ ;
#Proxy Settings
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_next_upstream error timeout invalid_header http_500 http_502 http_503 http_504;
proxy_max_temp_file_size 0;
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;
}
但是遇到的问题是:
访问 [Domain]/proxy
能到达flaskweb,但是点击链接还是 [Domain]/help.html
,还是回到了根目录 ‘/’
下,我希望是能代理到 [Domain]/proxy/help.html
这种,请教上面的配置应该如何更改?
我算是门外汉,感觉应该是有一个专门的术语来称呼这个的,但是不是很懂。
请教各位大佬!谢谢!
因为你网页中的链接 href 是
/help.html
,而不是/proxy/help.html
对于一个服务器上的多个站点,建议划分多个 server,每个 server 使用不同的域名
或者在网页 html 中使用相对路径
href="help.html"
,而不是/help.html
;(但不建议)