nginx php mysql mehrere Sites

nginx php mysql mehrere Sites

ich habe Probleme, Nginx/PHP so zu konfigurieren, dass Serviceanfragen an verschiedene Sites weitergeleitet werden. Wir haben innerhalb unserer Webanwendung einen Dienst erstellt, der Inhalte an die von Nginx gehostete Website sendet (tatsächlich ruft der Dienst auf dem Webserver ein PHP-Skript auf, das die Inhalte in die Datenbank schreibt, und Nginx präsentiert sie mithilfe von PHP auf der Website). Mit der Stammwebsite (Site A) funktioniert alles einwandfrei. Die Anfrage wird empfangen und in die MySql-Datenbank in Datenbank A geschrieben, und die Website liest sie problemlos. Das Problem besteht bei Site B, jede an Site B gesendete Anfrage wird von Site A empfangen und in Datenbank A statt in Datenbank B geschrieben.

Ich habe versucht, sie mit php-fpm zu trennen, aber ohne Erfolg. Meine Erfahrung mit der Konfiguration von nginx/php ist gering, daher wäre ich für jede Hilfe dankbar. Welche Art von Setup ist erforderlich, um dies zu erreichen?

Was ich bisher versucht habe.

Ein neuer Pool wurde im PHP-Ordner pool.d erstellt. siteB.conf, sein Inhalt ist.

; Start a new pool named 'www'. 
; the variable $pool can be used in any directive and will be replaced by the 
; pool name ('www' here) [siteB]
user = www-data group = www-data
listen = /run/php/php7.0-fpm-siteB.sock
listen.owner = www-data 
listen.group = www-data
listen.allowed_clients = 127.0.0.1
pm = dynamic
pm.max_children = 5
pm.start_servers = 2
pm.min_spare_servers = 1
pm.max_spare_servers = 3

? brauche ich einen SOCK-Wert/Port, muss der Benutzer/die Gruppe von der WWW-Gruppe in einen anderen Benutzer geändert werden?

Innerhalb des Ordners var/www/html/php/servicebefindet sich ein PHP-Skript, das eine Verbindung zur MySQL-Datenbank herstellt und den Inhalt für die erste Website (Site A) schreibt.

Auf dem Nginx-Server habe ich mehrere Websites (auf alle wird über Port 80 zugegriffen) und jede Website hat ihre eigene Datenbankdatei innerhalb der MySQL-Datenbank. Alle anderen Websites haben dasselbe Setup (zum Beispiel var/www/siteB/php/service)

Beim Verweisen auf eine IP-Adresse http:/siteA/php/servicefunktioniert alles einwandfrei und der Inhalt wird in die entsprechende Datenbank geschrieben.

beim Verweisen auf eine Adresse http://siteB/php/servicewird der Inhalt nicht geschrieben. Das Bereitstellen der Webseiten funktioniert von nginx aus gut, alle Webseiten werden geladen, mit Ausnahme des DB-Inhalts (der nicht in die DB-Datei geschrieben wurde).

Ich vermute also, dass ich Nginx so konfigurieren muss, dass die Anforderung ordnungsgemäß an Site B weitergeleitet wird. Wie kann ich das tun?

Meine Nginx-Konfiguration ist

user www-data;
worker_processes auto;
pid /run/nginx.pid;

events {
worker_connections 768;
# multi_accept on;
}

http {

##
# Basic Settings
##

sendfile on;
tcp_nopush on;
tcp_nodelay on;
keepalive_timeout 65;
types_hash_max_size 2048;
# server_tokens off;

 server_names_hash_bucket_size 64;
# server_name_in_redirect off;

include /etc/nginx/mime.types;
default_type application/octet-stream;

##
# SSL Settings
##

ssl_protocols TLSv1 TLSv1.1 TLSv1.2; # Dropping SSLv3, ref: POODLE
ssl_prefer_server_ciphers on;

##
# Logging Settings
##

access_log /var/log/nginx/access.log;
error_log /var/log/nginx/error.log;

##
# Gzip Settings
##

gzip on;
gzip_disable "msie6";

# gzip_vary on;
# gzip_proxied any;
# gzip_comp_level 6;
# gzip_buffers 16 8k;
# gzip_http_version 1.1;
# gzip_types text/plain text/css application/json application/javascript 
text/xml application/xml application/xml+rss text/javascript;

##
# Virtual Host Configs
##

include /etc/nginx/conf.d/*.conf;
include /etc/nginx/sites-enabled/*;
}


#mail {
#   # See sample authentication script at:
#   # http://wiki.nginx.org/ImapAuthenticateWithApachePhpScript
# 
#   # auth_http localhost/auth.php;
#   # pop3_capabilities "TOP" "USER";
#   # imap_capabilities "IMAP4rev1" "UIDPLUS";
# 
#   server {
#       listen     localhost:110;
#       protocol   pop3;
#       proxy      on;
#   }
# 
#   server {
#       listen     localhost:143;
#       protocol   imap;
#       proxy      on;
#   }
#}

verwandte Informationen