2017-08-30 8 views
0

Aidez-moi s'il vous plaît à écrire config. Cela fonctionne, mais quand je vais à l'emplacement http://my.server.ru/pgadmin/, il redirige vers/pour se connecter, et il n'y a pas de nom de lieu dans /.nginx configurer pgadmin dans l'emplacement

server { 
    listen  80; 
    server_name my.server.ru; 
    error_log /home/user/error.log error; 
    location/{ 
     include   uwsgi_params; 
     uwsgi_pass  unix:/run/uwsgi/django_app.sock; 
    } 
    location /pgadmin { 

     proxy_set_header Host $host; 
     proxy_set_header X-Forwarded-For $remote_addr; 
     proxy_set_header X-Forwarded-Proto $scheme; 
     proxy_set_header X-Real-IP $remote_addr; 
     proxy_pass http://127.0.0.1:5050/; 
     proxy_redirect http://127.0.0.1:5050 http://$host/pgadmin/; 

     } 

    location /static/ { 
     root /home/user/django_app; 
    expires 365d; 
    } 
    location /media/ { 
     root /home/user/django_app; 
    expires 365d; 
    } 

    location ~ /\.ht {return 404;} 
    location ~ /\.svn/ {return 404;} 
    location ~ /\.git/ {return 404;} 
    location ~ /\.hg/ {return 404;} 
    location ~ /\.bzr/ {return 404;} 


} 

Je ne comprends pas quoi faire avec elle. Où doit être réécrire?

UPD: sortie de boucle

* Trying xx.xx.xx.xx... 
* TCP_NODELAY set 
* Connected to my.server.ru (xx.xx.xx.xx) port 80 (#0) 
> GET /pgadmin/ HTTP/1.1 
> Host: my.server.ru 
> User-Agent: curl/7.52.1 
> Accept: */* 
> 
< HTTP/1.1 301 Moved Permanently 
< Content-length: 0 
< Location: https://my.server.ru/pgadmin/ 
< 
* Curl_http_done: called premature == 0 
* Connection #0 to host my.server.ru left intact 
* Issue another request to this URL: 'https://my.server.ru/pgadmin/' 
* Trying xx.xx.xx.xx... 
* TCP_NODELAY set 
* Connected to my.server.ru (xx.xx.xx.xx) port 443 (#1) 
* ALPN, offering http/1.1 
* Cipher selection: ALL:!EXPORT:!EXPORT40:!EXPORT56:!aNULL:!LOW:!RC4:@STRENGTH 
* successfully set certificate verify locations: 
* CAfile: /etc/ssl/certs/ca-certificates.crt 
    CApath: /etc/ssl/certs 
* TLSv1.2 (OUT), TLS header, Certificate Status (22): 
* TLSv1.2 (OUT), TLS handshake, Client hello (1): 
* TLSv1.2 (IN), TLS handshake, Server hello (2): 
* TLSv1.2 (IN), TLS handshake, Certificate (11): 
* TLSv1.2 (IN), TLS handshake, Server key exchange (12): 
* TLSv1.2 (IN), TLS handshake, Server finished (14): 
* TLSv1.2 (OUT), TLS handshake, Client key exchange (16): 
* TLSv1.2 (OUT), TLS change cipher, Client hello (1): 
* TLSv1.2 (OUT), TLS handshake, Finished (20): 
* TLSv1.2 (IN), TLS change cipher, Client hello (1): 
* TLSv1.2 (IN), TLS handshake, Finished (20): 
* SSL connection using TLSv1.2/ECDHE-RSA-AES256-GCM-SHA384 
* ALPN, server did not agree to a protocol 
* Server certificate: 
* subject: CN=xxxxxx 
* start date: Jul 31 11:42:00 2017 GMT 
* expire date: Oct 29 11:42:00 2017 GMT 
* subjectAltName: host "my.server.ru" matched cert's "my.server.ru" 
* issuer: C=US; O=Let's Encrypt; CN=Let's Encrypt Authority X3 
* SSL certificate verify ok. 
> GET /pgadmin/ HTTP/1.1 
> Host: my.server.ru 
> User-Agent: curl/7.52.1 
> Accept: */* 
> 
< HTTP/1.1 302 FOUND 
< Server: nginx/1.10.3 (Ubuntu) 
< Date: Wed, 30 Aug 2017 12:51:49 GMT 
< Content-Type: text/html; charset=utf-8 
< Content-Length: 236 
< Location: http://my.server.ru/login?next=%2F 
< Set-Cookie: pga4_session="c8e21d09-5d31-42e3-a4d5-a3ed87873a69!6KcWbhziK2zypWCzKTRyFLUdszI="; Expires=Thu, 31-Aug-2017 15:51:49 GMT; HttpOnly; Path=/ 
< 
* Ignoring the response-body 
* Curl_http_done: called premature == 0 
* Connection #1 to host my.server.ru left intact 
* Issue another request to this URL: 'http://my.server.ru/login?next=%2F' 
* Found bundle for host my.server.ru: 0x55568d6af270 [can pipeline] 
* Re-using existing connection! (#0) with host my.server.ru 
* Connected to my.server.ru (xx.xx.xx.xx) port 80 (#0) 
> GET /login?next=%2F HTTP/1.1 
> Host: my.server.ru 
> User-Agent: curl/7.52.1 
> Accept: */* 
> 
< HTTP/1.1 301 Moved Permanently 
< Content-length: 0 
< Location: https://my.server.ru/login?next=%2F 
< 
* Curl_http_done: called premature == 0 
* Connection #0 to host my.server.ru left intact 
* Issue another request to this URL: 'https://my.server.ru/login?next=%2F' 
* Found bundle for host my.server.ru: 0x55568d6affb0 [can pipeline] 
* Re-using existing connection! (#1) with host my.server.ru 
* Connected to my.server.ru (xx.xx.xx.xx) port 443 (#1) 
> GET /login?next=%2F HTTP/1.1 
> Host: my.server.ru 
> User-Agent: curl/7.52.1 
> Accept: */* 
> 
< HTTP/1.1 404 Not Found 
< Server: nginx/1.10.3 (Ubuntu) 
< Date: Wed, 30 Aug 2017 12:51:49 GMT 
< Content-Type: text/html 
< Content-Length: 79 
< X-Frame-Options: SAMEORIGIN 
< 
* Curl_http_done: called premature == 0 
* Connection #1 to host my.server.ru left intact 

Introuvable

L'URL demandée/connexion n'a pas été trouvé sur ce serveur.

Nous voyons réoriente ici pour/

+0

Modifier 'proxy_redirect http://127.0.0.1:5050 http: // $ hôte/pgadmin /;' à 'proxy_redirect http://127.0.0.1:5050/ http: // $ host/pgadmin /;' . Publier également la sortie de 'curl -vL http: // mon.server.ru/pgadmin /' –

+0

Publié chenges à config. Fait, mais j'ai redirigé vers la page racine. – Mihail

+0

Ok, vous semblez avoir plus de config et la config que vous avez postée en fait partie. Votre problème est que le bloc que vous définissez est en écoute 80 mais il y a un bloc supplémentaire de redirection vers https et le bloc https n'a pas '/ pgadmin'. Donc, vous obtenez une redirection https, puis '/ pgadmin' n'est pas là, donc vous obtenez une redirection' login' –

Répondre

0

J'ai trouvé une autre bonne façon - courir thrue tunnel ssh. J'espère que ça va aider quelqu'un.