2017-07-29 2 views
2

J'utilise haproxy pour équilibrer la charge et obtenir une haute disponibilité de mon API (RESTFUL), le problème auquel je suis confronté est le suivant: Je ne peux pas envoyer de requêtes REST à l'API. Je veux dire haproxy ne supporte pas l'API REST par défaut et j'ai pensé que je devrais configurer un ACL pour le faire fonctionner, mais je n'ai rien trouvé à propos de la configuration du support RESTFUL et des règles de réécriture http pour haproxy.Configurer Haproxy pour autoriser http CRUD (règles de réécriture)

MY API est basé sur le framework laravel. Par exemple, si je tape 192.168.1.139/login, j'obtiens un message d'erreur 404. la seule route qui fonctionne est / Qui montre l'utilisateur "vous n'êtes pas connecté." message.

Ceci est la configuration haproxy:

listen http_front 
     bind *:80 
     mode http 
     stats enable 
     stats uri /haproxy?stats 
     option httpclose 
     option forwardfor 
     #acl api_exp hdr(host) -i domain_name.com 
     #use_backend api_servers if api_exp 
     default_backend api_servers 

backend api_servers 
     balance roundrobin 
     server replica1 192.168.100.110:80 check 
     server replica2 192.168.100.111:80 check 
+0

est SO pour des questions de programmation, pas de questions sur la configuration des serveurs. ServerFault.com serait de meilleurs endroits pour des questions comme celle-ci. – Barmar

+0

@Barmar Merci de m'avoir guidé. devrais-je supprimer ma question ici? –

+0

Vous pouvez le marquer pour la migration par les modérateurs. – Barmar

Répondre

0

Il est un peu étrange, mais je l'ai résolu mon problème avec cette configuration:

defaults 
    log  global 
    mode http 
    option httplog 
    option dontlognull 
    retries 3 
    option redispatch 
    timeout connect 5000 
    timeout client 100s 
    timeout server 100s 


listen ha-www 
bind 0.0.0.0:80 
    mode http 
    stats enable 
    stats uri /haproxy?stats 
    stats realm Strictly\ Private 
    balance roundrobin 
    option httpclose 
    option forwardfor 
    server app-www-1 192.168.100.110:80 check 
    server app-www-2 192.168.100.111:80 check