Forum Linux.général nginx faire fonctionner plusieurs services

Posté par . Licence CC By‐SA.
Étiquettes : aucune
1
17
juil.
2018

Bonjour,

En parcourant le forum je viens de voir que j'ai le même problème que ce sujet.
https://linuxfr.org/forums/linux-debutant/posts/vhost-nginx

Actuellement sur mon ordi, j'ai juste une instance nextcloud. J'ai voulu installer une ttrss afin de faire quelques tests.

Mon probleme est que je n'arrive pas à accéder au 2 vhost ensemble, sachant quà terme je pense installer d'autres services.
Si je place dans site-enabled nextcloud et ttrss alors ca ne fonctionne pas. Chacun fonctionnant indépendement.

Ce que j'aimerai avoir et si c'est possible, c'est pouvoir avoir accés à mes applis avec les liens

domaine ou ip local/netxloud
domaine ou ip local/ttrss

J'ai cherché un peu et j'ai vu qu'on pouvait jouer avec des alias mais je n'y arrive pas.

Voici mes 2 vhost

Merci

/etc/nginx/sites-available/nextcloud

server {
 listen 80;
 listen [::]:80;
 server_name 192.168.1.32;
 # Path to the root of your installation
 root /var/www/nextcloud/;
 # Add headers to serve security related headers
 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;
 add_header Strict-Transport-Security 'max-age=31536000; includeSubDomains;';
 location = /robots.txt {
 allow all;
 log_not_found off;
 access_log off;
 }
 location = /.well-known/carddav {
 return 301 $scheme://$host/remote.php/dav;
 }
 location = /.well-known/caldav {
 return 301 $scheme://$host/remote.php/dav;
 }
 # set max upload size
 client_max_body_size 512M;
 fastcgi_buffers 64 4K;
 # Enable gzip but do not remove ETag headers
 gzip on;
 gzip_vary on;
 gzip_comp_level 4;
 gzip_min_length 256;
 gzip_proxied expired no-cache no-store private no_last_modified no_etag auth;
 gzip_types application/atom+xml application/javascript application/json application/ld+json application/manifest+json application/rss+xml application/vnd.geo+json application/vnd.ms-fontobject application/x-font-ttf application/x-web-app-manifest+json application/xhtml+xml application/xml font/opentype image/bmp image/svg+xml image/x-icon text/cache-manifest text/css text/plain text/vcard text/vnd.rim.location.xloc text/vtt text/x-component text/x-cross-domain-policy;
 location / {
 rewrite ^ /index.php$uri;
 }
 location ~ ^/.well-known/acme-challenge/* {
 allow all;
 }
 location ~ ^/(?:build|tests|config|lib|3rdparty|templates|data)/ {
 deny all;
 }
 location ~ ^/(?:\.|autotest|occ|issue|indie|db_|console) {
 deny all;
 }
 location ~ ^/(?:index|remote|public|cron|core/ajax/update|status|ocs/v[12]|updater/.+|ocs-provider/.+).php(?:$|/) {
 fastcgi_split_path_info ^(.+.php)(/.*)$;
 include fastcgi_params;
 fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
 fastcgi_param PATH_INFO $fastcgi_path_info;
 fastcgi_param modHeadersAvailable true;
 fastcgi_param front_controller_active true;
 fastcgi_pass php-handler;
 fastcgi_intercept_errors on;
 fastcgi_request_buffering off;
 }
 location ~ ^/(?:updater|ocs-provider)(?:$|/) {
 try_files $uri/ =404;
 index index.php;
 }
 # Adding the cache control header for js and css files
 # Make sure it is BELOW the PHP block
 location ~* .(?:css|js|woff|svg|gif)$ {
 try_files $uri /index.php$uri$is_args$args;
 add_header Cache-Control "public, max-age=15778463";
 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;
 # Optional: Don't log access to assets
 access_log off;
 }
 location ~* .(?:png|html|ttf|ico|jpg|jpeg)$ {
 try_files $uri /index.php$uri$is_args$args;
 # Optional: Don't log access to other assets
 access_log off;
 }
}

/etc/nginx/sites-available/ttrss

server {
 listen 80;
 listen [::]:80;
 server_name 192.168.1.32;
 root /var/www/ttrss;
 location / {
 index index.php;
 }
 location ~ .php$ {
 include snippets/fastcgi-php.conf;
 fastcgi_pass unix:/var/run/ttrss.sock;
 }
 location /cache {
 deny all;
 }
 location = config.php {
 deny all;
 }
}
  • # 2 fois le même server_name

    Posté par (site web personnel) . Évalué à 3.

    Tu as le même server_name dans tes deux vhosts, Nginx ne peut donc pas savoir lequel est celui que tu as demandé. Il prend donc normalement le 1er par ordre alphabétique des fichiers de conf.

    Tu peux créer deux entrées dans ton /etc/hosts genre :

    192.168.1.32 ttrss
    192.168.1.32 nextcloud
    

    Et changer les server_name de tes vhosts en fonction.

    Ou alors tu bidouilles le résolveur DNS local de ta box pour qu'il réponde 192.168.1.32 pour ttrss et nextcloud + changement de server_name, mais comme ça change d'une box à l'autre, je ne saurais te dire comment faire.

    Being a sysadmin is easy. As easy as riding a bicycle. Except the bicycle is on fire, you’re on fire and you’re in Hell.

    • [^] # Re: 2 fois le même server_name

      Posté par . Évalué à 4.

      comme le suggere framasky,
      pour que le vhost fonctionne il faut des servername differents

      exemple titi dans le premier, toto dans le 2e,

      il faut alors utiliser ce nom dans ton navigateur,
      mais comme le navigateur va chercher à resoudre ce nom, il faut un DNS,
      à defaut de DNS, tu rentres titi et toto dans ton fichier /etc/hosts

      autre possibilité, tu changes le listen 80 en listen 81 sur le 2e service,
      tu peux alors y acceder sur 192.168.1.132:80 pour le premier service, et 192.168.1.132:81 pour le 2e service, etc

      • [^] # Re: 2 fois le même server_name

        Posté par . Évalué à 0. Dernière modification le 17 juillet 2018 à 16:07.

        Merci vous deux!!!!

        Bon après test le simple fait de changer le port dans les vhosts fonctionne (pas besoin de toucher au fichier hosts).
        Je peux me connecter via ip:80 ou ip:81.

        Pour tester ca fonctionne bien aussi via 1 domaine prix chez netlib et redirection des dns sur ma box.

        Par contre j'ai pas bien saisi comment ca pouvait fonctionner via le fichier hosts.

        Si j'ai bien compris je mets ca dans mon hosts

        192.168.1.32 ttrss
        192.168.1.32 nextcloud
        Et je change les server_name par ttrss et nexcloud dans les vhost?

        Par contre comment je me connecte après?
        Que ce soit 192.168.1.32/ttrss ne fonctionne pas (File not found).

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.