【发布时间】:2020-05-06 15:04:08
【问题描述】:
我帮助处理了不幸,我开始学习与工作需要相关的haproxy。输入https://my.server.ru/之类的URL的任务是立即重定向到https://my.server.ru/SoftOnIt/之类的目录我做了,但是有一个问题,点击链接时,重定向后,页面开始无限刷新或重定向。我附上了我的 haproxy 的完整配置。 haproxy -c -f /etc/haproxy/haproxy.cfg
Apr 30 12:55:12 localhost haproxy[3124]: 192.168.1.92:53661 [30/Apr/2020:12:55:12.000] https-proxy~ 1c_path/s1 0/0/15/9/24 200 18570 - - ---- 2/1/0/0/0 0/0 "GET /SoftOnIT/ru_RU/ HTTP/1.1"
也没有什么...
据我了解http-request set-path /SoftOnIT/ if 1c 的问题
我需要做一些检查 - 如果当前 url 已经是必需的,那么不要重定向。
帮助弄清楚逻辑。
对不起谷歌翻译 =)
# Example configuration for a possible web application. See the
# full configuration options online.
#
# http://haproxy.1wt.eu/download/1.4/doc/configuration.txt
#
#---------------------------------------------------------------------
#---------------------------------------------------------------------
# Global settings
#---------------------------------------------------------------------
global
# to have these messages end up in /var/log/haproxy.log you will
# need to:
#
# 1) configure syslog to accept network log events. This is done
# by adding the '-r' option to the SYSLOGD_OPTIONS in
# /etc/sysconfig/syslog
#
# 2) configure local2 events to go to the /var/log/haproxy.log
# file. A line like the following can be added to
# /etc/sysconfig/syslog
#
# local2.* /var/log/haproxy.log
#
log 127.0.0.1 local2
chroot /var/lib/haproxy
pidfile /var/run/haproxy.pid
maxconn 4000
user haproxy
group haproxy
daemon
ssl-server-verify none
ssl-default-bind-ciphers ECDH+AESGCM:DH+AESGCM:ECDH+AES256:DH+AES256:ECDH+AES128:DH+AES:ECDH+3DES:DH+3DES:RSA+AESGCM:RSA+AES:RSA+3DES:!aNULL:!MD5:!DSS
ssl-default-bind-options no-sslv3
tune.ssl.default-dh-param 4096
# turn on stats unix socket
stats socket /var/lib/haproxy/stats
#---------------------------------------------------------------------
# common defaults that all the 'listen' and 'backend' sections will
# use if not designated in their block
#---------------------------------------------------------------------
defaults
mode http
log global
option httplog
option dontlognull
option http-server-close
option forwardfor except 127.0.0.0/8
option redispatch
retries 3
timeout http-request 10s
timeout queue 1m
timeout connect 10s
timeout client 1m
timeout server 1m
timeout http-keep-alive 10s
timeout check 10s
maxconn 3000
#-----------------------------------------------------------
frontend http-proxy
bind *:80
redirect scheme https code 301 if !{ ssl_fc } #редирект на https
default_backend 1c_web
########Для установки и обновления letsencrypt##############
acl letsencrypt-acl path_beg /.well-known/acme-challenge/
use_backend letsencrypt-backend if letsencrypt-acl
#---------------------------------------------------------------
frontend https-proxy
bind *:443 ssl crt /etc/letsencrypt/live/my.server.ru/my.server.ru.pem
acl 1c hdr_end(host) -i my.server.ru
http-request set-path /SoftOnIT/ if 1c
use_backend 1c_path if 1c
default_backend 1c_web
#---------------------------------------------------------------
backend letsencrypt-backend
server letsencrypt 127.0.0.1:8888
#---------------------------------------------------------------
backend 1c_web
mode http
cookie SERVERID insert indirect nocache
server 1cweb 10.255.10.26:80 check cookie 1cweb
#---------------------------------------------------------------
backend 1c_path
server s1 10.255.10.26:443 ssl```
【问题讨论】: