2 votes

NGNIX Backward Proxy pour un échec de redirection d'URL Nextcloud

J'ai un petit problème concernant mon installation nginx. J'ai l'intention de créer plusieurs sites dans un réseau avec un serveur central comme proxy.

                         |---(/nextcloud/)--->Nextcloud-Server
-----> Central-Server--->|
                         |---(/git)---------->Git-Server
                         |
                         |---(/Redmine)---------->Redmine-Server

J'ai commencé cette installation avec mon serveur Nextcloud pour une raison quelconque, les redirections d'URL ne fonctionnent pas correctement. J'ai essayé d'utiliser plusieurs règles de redirection et de réécriture mais je n'ai pas réussi à les faire fonctionner.

Lorsque j'accède à un lieu, je suis toujours redirigé vers le serveur central. Ainsi, domain.net/nextcloud/ sera redirigé vers domain.net/login, mais il devrait en fait accéder à domain.net/nextcloud/login. Est-ce que quelqu'un a une solution pour cela ? Ma configuration actuelle ressemble à

    # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
    #
    #location ~ \.php$ {
    #    root           html;
    #    fastcgi_pass   127.0.0.1:9000;
    #    fastcgi_index  index.php;
    #    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
    #    include        fastcgi_params;
    #}

    # deny access to .htaccess files, if Apache's document root
    # concurs with nginx's one
    #
    #location ~ /\.ht {
    #    deny  all;
    #}
}

# another virtual host using mix of IP-, name-, and port-based configuration
#
#server {
#    listen       8000;
#    listen       somename:8080;
#    server_name  somename  alias  another.alias;

#    location / {
#        root   html;
#        index  index.html index.htm;
#    }
#}

# HTTPS server
#
server {
    listen       192.168.178.10:443 ssl;
    server_name  domain.net;
#root /usr/share/nginx/html;
    ssl_certificate /mnt/docker/nginx/certs/fullchain.pem;
    ssl_certificate_key /mnt/docker/nginx/certs/privkey.pem;

    #include /etc/nginx/conf/ssl_params;

    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    ssl_prefer_server_ciphers on;
    ssl_ciphers "EECDH+ECDSA+AESGCM EECDH+aRSA+AESGCM EECDH+ECDSA+SHA384 EECDH+ECDSA+SHA256 EECDH+aRSA+SHA384 EECDH+aRSA+SHA256 EECDH+aRSA+RC4 EECDH EDH+aRSA RC4 !aNULL !eNULL !LOW !3DES !MD5 !EXP !PSK !SRP !DSS";
    ssl_session_cache shared:SSL:20m;
    ssl_session_timeout 15m;
    ssl_session_tickets off;
    add_header X-Frame-Options SAMEORIGIN;
    add_header X-Content-Type-Options nosniff;
    add_header X-XSS-Protection "1; mode=block";

    #add_header Strict-Transport-Security "max-age=<HSTS_MAX_AGE>;<HSTS_SUBDOMAINS><HSTS_PRELOAD>";
    client_max_body_size 10G;

    location /n/ {
        alias   /usr/share/nginx/html/;
        index  index.html index.htm;
    }

location /nextcloud/ {
    access_log off;
    proxy_set_header X-Real_ip $remote_addr;
    proxy_set_header Host $host;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_pass https://192.168.178.11/;
}

    location ^~ /c{
   rewrite ^/c(.*) /$1 break;
       proxy_pass https://192.168.178.11/;
       proxy_connect_timeout 1;
       proxy_set_header        Host              $http_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 $https;
    }
    location / {
        root   /usr/share/nginx/html;
        index  index.html index.htm;
 }

}
}

-1voto

cclient Points 49
upstream nextcloud {
    server 127.0.0.1:8209
}

server {

    listen 443 ssl;

    server_name www.abc.xyz;

    ssl_certificate server.crt;
    ssl_certificate_key server.key;
    ssl_client_certificate  ca.crt;

    add_header X-Content-Type-Options nosniff;
    add_header X-XSS-Protection "1; mode=block";
    add_header X-Robots-Tag none;
    add_header X-Download-Options noopen;
    add_header X-Permitted-Cross-Domain-Policies none;

    location = /robots.txt {
        allow all;
        log_not_found off;
        access_log off;
    }

     rewrite ^/core/(.+?)$ /nextcloud/core/$1 last;
     rewrite ^/apps/(.+?)$ /nextcloud/apps/$1 last;
     rewrite ^/js/(.+?)$ /nextcloud/js/$1 last;
     rewrite ^/css/(.+?)$ /nextcloud/css/$1 last;
     rewrite ^/ocs/(.+?)$ /nextcloud/ocs/$1 last;
     rewrite ^/settings/(.+?)$ /nextcloud/settings/$1 last;
     rewrite ^/remote.php/(.+?)$ /nextcloud/remote.php/$1 last;

     rewrite ^/login(.*)$ /nextcloud/login$1 last;
     rewrite ^/lostpassword(.*)$ /nextcloud/lostpassword$1 last;

     location /nextcloud {
      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;

      proxy_pass          http://nextcloud/;
      proxy_read_timeout  90;

      proxy_redirect      https://www.abc.xyz https://www.abc.xyz/nextcloud;
     }
}

Juste pour le prochain nuage, quel serveur git choisissez-vous ?

gitlab-ce supply relative url

https://docs.gitlab.com/omnibus/settings/nginx.html

external_url " https://gitlab.example.com " -> " https://gitlab.example.com/git "

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X