2017-06-18 1 views
0

J'ai deux noms de domaine www.blog.com et www.project.comPuis-je avoir plusieurs noms de domaine pointer vers différents sous-répertoires sur le même serveur

Actuellement, www.blog.com/project des points sur ma page de projet. J'ai nginx configuré pour rediriger toutes les demandes à /project à mon projet Django.

Je viens d'acheter www.project.com, et je voudrais qu'il affiche le même contenu que www.blog.com/project sans que l'URL change dans le navigateur. Je ne suis pas sûr s'il y a un moyen de faire cela avec DNS (une redirection ne conservera pas l'URL), ou un moyen de déterminer si une demande provient de www.blog.com ou www.project.com au niveau du serveur.

En bref:

  1. blog.com séjours pointant vers la racine
  2. blog.com/project besoins continuent à être transmis à Django
  3. project.com doit maintenant apparaître dans la barre du navigateur et exécuter comme 2.
+0

Cela semble être possible grâce à un domaine complémentaire. Maintenant, il suffit de configurer cela ... – NoahL

+1

Chaque domaine est juste un nouveau bloc 'server'. Voir [ce document] (http://nginx.org/fr/docs/http/server_names.html) pour des conseils. –

+0

Je convergeais lentement sur ça, merci @RichardSmith! – NoahL

Répondre

0

Richard Smith l'a cloué. Créer un nouveau bloc de serveur était la voie à suivre. J'ai inclus les parties pertinentes du fichier .conf au cas où quelqu'un rencontrerait ce problème.

server { 
    listen 80; 
    server_name .project.com; 


    # set max upload size 
    client_max_body_size 2G; 
    fastcgi_buffers 64 4K; 

    access_log /var/log/nginx/wordpress_http_access.log combined; 


    #There were some shortsighted design decisions that meant it had to be 
    # served from /project/ to avoid breaking a bunch of relative links. 

    location =/{ 
     return 301 http://www.project.com/project/; 


    } 

    location /project/ { 
      uwsgi_pass django; 
      include  /home/project/uwsgi_params; 

    } 
    # Django media 
    location ^~ /project/media/ { 
     alias /home/project/media/; 
      autoindex off; 
} 

location /project/static/ { 
    alias /home/project/static/; 
    } 
}