nginx sous domaine

Ok je ne peux pas sembler l’obtenir, j’ai vérifié le forum de nginx, pas beaucoup d’aide là non plus. Je pensais que ce serait simple. Je veux des sous-domaines définis pour aller à un autre URL / port. c’est à dire

DNS site.com goes to 192.168.1.1 w/ masking DNS www.site.com goes 192.168.1.1 w/ masking DNS red.site.com goes 192.168.1.1 w/ masking DNS blue.site.com goes to 192.168.1.1 w/ masking 

Je veux que site.com et www.site.com fonctionnent normalement, mais je veux que red.site.com passe à 192.168.1.2:5000 et blue.site.com à 192.168.1.2:6000/temp/

etc, etc …. Je ne suis même pas sûr que je me soucie de ce qui affiche dans la barre d’adresse, je suppose que ce serait bien s’il restait red.site.com, mais ce n’est pas important. J’ai essayé un proxy passer une réécriture URL, clairement je fais quelque chose de mal. Est-ce seulement possible?

Avez-vous essayé la directive Proxy Pass ?

Avec quelque chose comme

 server { server_name red.site.com; location / { proxy_pass http://192.168.1.2:5000; } } server { server_name blue.site.com; location / { proxy_pass 192.168.1.2:6000/temp/; } } 

devrait marcher. Regardez la documentation pour des choses comme l’en-tête à transmettre, etc.

Créez autant de serveurs virtuels que nécessaire. Vérifiez dans /etc/nginx/sites-available et copiez le serveur default en red … (ou votre configuration ici). Ensuite, allez dans /etc/nginx/sites-enabled et faites un lien symbolique

 ln -s ../sites-available/red 

et faites de même pour les autres serveurs ( bleu …), puis redémarrez nginx ou killall -HUP nginx pour recharger la configuration.

Fondamentalement, dans un serveur virtuel, vous donnez la configuration spécifique à ce serveur.

Par exemple, pour le red

 server { listen 5000; server_name red.site.com; root /var/www/docs/red; ... } 

ou pour le blue (notez le temp ajouté à la racine )

 server { listen 6000; server_name blue.site.com; root /var/www/docs/somewhere/temp; ... } 

Si vous devez également spécifier l’adresse IP, faites

  listen 192.168.1.2:5000; 

pour le red ou 6000 pour le blue .

Un peu de littérature qui explique les directives.

Vous devez créer le fichier s’il n’existe pas:

/etc/nginx/conf.d/servers.conf

Et remplissez-le avec un proxy parameters. Par exemple:

 server { listen 80; server_name red.site.com; location / { proxy_pass http://localhost:8080; 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_connect_timeout 150; proxy_send_timeout 100; proxy_read_timeout 100; proxy_buffers 4 32k; client_max_body_size 8m; client_body_buffer_size 128k; } }