https://gist.github.com/Mutsuki/cdbdd200a85b74e61dbeb7d5e871fb8c
如果是只是简单使用反代可以试试配置文件更加好写的 caddy
就像这样:
https://xxx.com {
log /caddy/access.log
gzip
tls /root/startssl/fullchain.pem /root/startssl/privkey.pem
proxy / localhost:port {
policy round_robin/> proxy_header Host xxx.com
proxy_header X-Real-IP 127.0.0.1
proxy_header X-Forwarded-Proto https
websocket
}
}
楼主说的貌似不是这个斜杠的问题 http://dmouse.iteye.com/blog/1880474
试试下面的
server
{
listen 80;
server_name abc.hello.com;
location / {
rewrite ^/(.*)$ /abc/$1 break;
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_pass http://192.168.1.12:8080/;
}
access_log /var/log/nginx/abc_access.log;
error_log /var/log/nginx/abc_error.log;
}
关于 rewrite 我也想到了,但不知道怎么写,用了您的方式还是我的那个结果,跳回到了 http://abc.hello.com/abc/
有这么麻烦么?在外面现在,略微改了下你提供的代码,你看看返回的结果。。
server
{
listen 80;
server_name abc.hello.com;
location /{
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_pass http://192.168.1.12:8080/abc/;
}
access_log /var/log/nginx/abc_access.log;
error_log /var/log/nginx/abc_error.log;
}
感谢您在路上也在回复,不过您的配置我早就试过了,不行。还是返回第一个结果。
访问 http://abc.hello.com 之后返回结果是 http://abc.hello.com/abc/
我在反代 Transmission 的 Web 界面时这么写是可以用的。会不会是你的应用跳转的?比如 302 ,前端 js 跳转,你可以执行 curl -vv http://abc.hello.com/ 看一下。
你确信你照做也不行?
刚到家,本地环境 test 通过。
你 abc 下什么应用,你单纯弄个 index.html ,写个 ok 在里边。其他的先不放试试。
upstream abc.hello.com {
server 192.168.1.12:8080;
}
server{
listen 80;
server_name abc.hello.com;
location / {
proxy_pass http://abc.hello.com;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
你试试这样写
访问 http://abc.hello.com/abc/ 看看是不是就是 192.168.1.12:8080/abc/
他要到目录 abc 。。。
额 不好意思
哦,你想让楼主试试。。
理论上
abc.hello.com -> 192.168.1.12:8080/abc/
这种应该不麻烦。
莫非我理解错了, 23333 ,最近怎么样?
楼主已经没回话了。话说 V2EX 圈子好小,好几次碰到你 O(∩_∩)O 哈哈~
估计楼主睡着了。
相对活跃吧,已经被几个好友说我整天泡 v2 时间过长。
你的出镜率好高
主要是头像黑麻麻。。哈哈哈
server
{
listen 80;
server_name abc.hello.com;
location / {
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_pass http://192.168.1.12:8080/abc/;
}
location /abc/ {
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_pass http://192.168.1.12:8080/abc/;
rewrite "^/abc/(.*)" /$1 permanent;
}
access_log /var/log/nginx/abc_access.log;
error_log /var/log/nginx/abc_error.log;
}
试下这个 感觉是你 /abc/ 那个站点里的 url 都写了 /abc/aa.htm 这种 搞个重定向 应该就可以不会出现 /abc/了
楼主去画拓扑图去了。
27 楼是正解!
谢谢您的 config ,稍改配置也解决了我的 500 的错误!
另外也谢谢其他的朋友们!!!这么晚了还都在奋斗~~
咦 啥 500 错误....居然还有这种效果么...
rewrite "^/abc/(.*)" /$1 permanent;
其实是我写的路径的问题, cookies 提交不正确,不是您的写法配置问题: D
正解,楼主可以试试。
困惑了,今天发现还是跳回到了 abc.hello.com/abc/
修改之后解决重定向,但又发现 Jessionid 获取有问题,天,,,都什么问题。