2015-11-17 1 views
0

J'ai nginx mis en place comme proxy inverse ssl pour vernir avec le backend apache et cela fonctionne parfaitement, mais maintenant j'ai besoin de nginx pour agir comme un serveur web pour un répertoire.Comment faire de nginx un proxy et un serveur web?

server { 
    listen 10.0.0.20:80; 
    server_name example.com www.example.com; 
    return 301 https://www.example.com$request_uri; 
} 


server { 
    listen 10.0.0.20:443 ssl spdy backlog=16384; 
     server_name example.com www.example.com; 
     server_name_in_redirect off; 
     ssl on; 
     ssl_certificate /home/ubuntu/mydomain-ssl/mydomain.crt; 
     ssl_certificate_key /home/ubuntu/mydomain-ssl/mydomain.key; 
     ssl_dhparam /home/ubuntu/mydomain-ssl/dh2048.pem; 
     ssl_prefer_server_ciphers on; 
     ssl_ciphers AES256+EECDH:AES256+EDH:!aNULL; 
     ssl_protocols TLSv1 TLSv1.1 TLSv1.2; 
     ssl_session_cache shared:SSL:2m; 
     ssl_session_timeout 5m; 
     ssl_stapling on; 
     ssl_stapling_verify on; 
     add_header Public-Key-Pins 'pin-sha256="gFcziPQKxI10QgFcziPQKxI10QgFcziPQKxI10QgFcziPQKxI10Q"; pin-sha256="gFcziPQKxI10QgFcziPQKxI10QgFcziPQKxI10QgFcziPQKxI10Q"; max-age=5184000; includeSubDomains'; 
     add_header Strict-Transport-Security "max-age=31536000; includeSubdomains; preload"; 
     add_header X-Frame-Options SAMEORIGIN; 
     add_header X-Content-Type-Options "nosniff"; 
     add_header X-XSS-Protection "1; mode=block"; 

     location/{ 
     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_headers_hash_max_size 1024; 
      proxy_headers_hash_bucket_size 128; 
      proxy_pass http://127.0.0.1:80; 
      proxy_set_header X-Forwarded-Proto https; 
      proxy_set_header X-Forwarded-Port 443; 
      proxy_set_header X-Forwarded-Protocol $scheme; 
     } 
} 

Si quelqu'un pouvait montrer un exemple simple de la façon dont je pourrais servir le répertoire/répertoire/dans le cadre de cette configuration, il serait super utile, je l'ai essayé de configurer en ajoutant des blocs de localisation supplémentaires, mais cela n'a pas fonctionné , Je viens d'avoir 404 erreurs lors de l'accès au répertoire.

+0

Fondamentalement, je suis en train d'ajouter la configuration sendy ici http://ckailash.com/tag/install-sendy-on-sous-répertoire-nginx/mais pas en tant que serveur complet, tout comme un répertoire non-proxy servi par nginx inclus dans la configuration de ma question. – Kiai

Répondre

0

Vous pourriez avoir un emplacement par défaut qui redirige le trafic vers https et un emplacement plus spécifique qui sert juste les fichiers:

server { 
    listen 10.0.0.20:80; 
    server_name example.com www.example.com; 

    # absolute path to your directory 
    root /var/www/www.example.com/directory; 

    location/{ 
     return 301 https://www.example.com$request_uri; 
    } 

    location /directory/ { 
     try_files $uri $uri/ =404; 
    } 
} 
+0

Nginx agit comme un terminateur SSL, donc la partie doit rester la même, j'ai essayé d'ajouter un/répertoire/bloc et tout ce que j'ai eu était 404 erreurs pour PHP, j'ai pu accéder aux fichiers .txt bien. Quand j'ai eu les erreurs 404 j'ai mis en place une configuration séparée sur le port 80 d'une adresse IP différente et cela a bien fonctionné, donc je sais que la configuration de sendy est bonne et les permissions semblent correctes. – Kiai