Maison  >  Article  >  Opération et maintenance  >  Comment configurer l'accès aux noms multi-ports et multi-domaines dans Nginx

Comment configurer l'accès aux noms multi-ports et multi-domaines dans Nginx

PHPz
PHPzavant
2023-05-12 08:43:051787parcourir

Accès multiport au nom de domaine principal

Définissez un enregistrement dans le serveur de noms DNS

pointez vers l'IP du serveur

Ouvrez le port requis et modifiez le fichier de configuration nginx

Par exemple, nous avons deux services Ouvrez respectivement le port 80 et le port 8080

S'il y a iptable, ouvrez d'abord le port :

iptables -a input -ptcp --dport 80 -j accept
iptables -a input -ptcp --dport 8080 -j accept

Modifiez le fichier de configuration :

#path: /usr/local/nginx/conf/nginx.conf

server {
listen 80;
server_name www.xxx.com;
access_log /data/www/log/33.33.33.33_nginx.log combined;
index index.html index.htm index.php;
include /usr/local/nginx/conf/rewrite/none.conf;
root /data/www/website/33.33.33.33:80;


location ~ [^/]\.php(/|$) {
  fastcgi_pass unix:/dev/shm/php-cgi.sock;
  fastcgi_index index.php;
  include fastcgi.conf;
  }
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|flv|ico)$ {
  expires 30d;
  access_log off;
  }
location ~ .*\.(js|css)?$ {
  expires 7d;
  access_log off;
  }
}
server {
listen 8080;
server_name a.xxx.com;
access_log /data/www/log/33.33.33.33:8080_nginx.log combined;
index index.html index.htm index.php;
include /usr/local/nginx/conf/rewrite/none.conf;
root /data/www/website/33.33.33.33:8080;


location ~ [^/]\.php(/|$) {
  fastcgi_pass unix:/dev/shm/php-cgi.sock;
  fastcgi_index index.php;
  include fastcgi.conf;
  }
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|flv|ico)$ {
  expires 30d;
  access_log off;
  }
location ~ .*\.(js|css)?$ {
  expires 7d;
  access_log off;
  }
}

La clé est de configurer les deux sections du serveur. Vous pouvez. divisez également ces deux sections en deux fichiers de configuration. Mettez-le dans le répertoire

/etc/nginx/conf.d/

 ; //xxx.com:8080;

et S'il y a deux cgi différents, par exemple, le port 80 correspond à un service web php, et le port 8080 correspond à un service web nodejs et notre nodejs est livré avec un service web qui est ; déjà en écoute sur le port 8080, que faire ? À ce stade, nous avons besoin de la fonction de proxy inverse de nginx et d'ajouter un enregistrement sur le serveur DNS, et enfin d'atteindre

www.xxx.com pour accéder au port 80

a.xxx.com via nginx service de transfert du port 8080
  • Ajouter un enregistrement
  • pointer a.xxx.com vers l'ip du serveur

Le modèle de configuration nginx est le suivant :

#path: /usr/local/nginx/conf/nginx.conf

server {
  listen 80;
  server_name www.xxx.com;
  access_log /data/www/log/33.33.33.33_nginx.log combined;
  index index.html index.htm index.php;
  include /usr/local/nginx/conf/rewrite/none.conf;
  root /data/www/website/33.33.33.33:80;


  location ~ [^/]\.php(/|$) {
    fastcgi_pass unix:/dev/shm/php-cgi.sock;
    fastcgi_index index.php;
    include fastcgi.conf;
    }
  location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|flv|ico)$ {
    expires 30d;
    access_log off;
    }
  location ~ .*\.(js|css)?$ {
    expires 7d;
    access_log off;
    }
}

server {
  listen 80;
  listen [::]:80;

  server_name a.xxx.com;

  proxy_connect_timeout 300s;
  proxy_send_timeout 300s;
  proxy_read_timeout 300s;
  fastcgi_send_timeout 300s;
  fastcgi_read_timeout 300s;

  location / {
    proxy_pass  http://127.0.0.1:3000;
    proxy_http_version 1.1;
    proxy_set_header upgrade $http_upgrade;
    proxy_set_header connection 'upgrade';
    proxy_set_header host $host;
    proxy_cache_bypass $http_upgrade;
    try_files $uri $uri/ =404;
  }
}

nginx recharge le fichier de configuration

nginx -s reload

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer