Heim  >  Artikel  >  So konfigurieren Sie mehrere Sites auf Nginx

So konfigurieren Sie mehrere Sites auf Nginx

无忌哥哥
无忌哥哥Original
2018-06-27 15:26:263048Durchsuche

Manchmal möchten Sie verschiedene Sites für verschiedene Domainnamen auf einem Server ausführen. Beispielsweise dient www.siteA.com als Blog und www.siteB.com als Forum. Sie können die IPs beider Domänennamen auf Ihren Server auflösen, aber Sie können nicht zwei verschiedene Websites gleichzeitig im Stammverzeichnis von Nginx ausführen. Zu diesem Zeitpunkt müssen Sie ein virtuelles Verzeichnis verwenden. Angenommen, Sie legen Ihren Blog unter „/home/user/www/blog“ und Ihr Forum unter „/home/user/www/forum“ ab. Als nächstes starten wir die Konfiguration:

Erstellen Sie ein „vhost“-Verzeichnis im Nginx-Konfigurationsverzeichnis. In diesem Beispiel wird davon ausgegangen, dass Nginx standardmäßig installiert ist und sich das Konfigurationsverzeichnis in „/etc/nginx“ befindet.

$ sudo mkdir /etc/nginx/vhost

Erstellen Sie die Konfigurationsdatei von siteA

$ sudo vi /etc/nginx/vhost/vhost_siteA.conf

Geben Sie die folgenden Konfigurationsinformationen ein

server {
    listen       80;                        # 监听端口
    server_name www.siteA.com siteA.com;    # 站点域名
    root  /home/user/www/blog;              # 站点根目录
    index index.html index.htm index.php;   # 默认导航页 
    location / {        # WordPress固定链接URL重写
        if (!-e $request_filename) {
            rewrite (.*) /index.php;
        }
    } 
    # PHP配置
    location ~ \.php$ {
        fastcgi_pass unix:/var/run/php5-fpm.sock;
        fastcgi_index index.php;
        include fastcgi_params;
    }
}

Erstellen Sie die Konfigurationsdatei von siteB in derselben So wie siteA. Der einzige Unterschied zwischen den beiden besteht in den Verzeichnissen „server_name“ und „root“

$ sudo vi /etc/nginx/vhost/vhost_siteB.conf

server {
    ...
    server_name www.siteB.com siteB.com;    # 站点域名
    root  /home/user/www/forum;             # 站点根目录    ...
}

Öffnen Sie die Datei nginx.conf

sudo vi /etc/nginx/nginx.conf

Fügen Sie die Konfigurationsdatei des virtuellen Verzeichnisses am Ende von „http {}“ hinzu. Abschnitt

http {
...
include /etc/nginx/vhost/*.conf;
}

Nginx-Dienst neu starten

$ sudo service nginx restart

Besuchen Sie jetzt www.siteA.com und www.siteB.com. Sie werden feststellen, dass der Browser verschiedene Websites öffnet

Tipps zum Verhindern des Zugriffs

Wenn Ihr Nginx-Stammverzeichnis auf „/home /user/www“ eingestellt ist, möchten Sie verhindern, dass andere über „http://IP-Adresse/Blog“ oder „http://IP“ auf Ihre Website zugreifen Adresse/Forum“, die einfachste Möglichkeit besteht darin, den Zugriff auf die IP-Adresse zu sperren. Die Methode ist wie folgt:

Öffnen Sie die Standardkonfigurationsdatei der Nginx-Website und denken Sie daran, sie zuerst zu sichern

$ sudo cp /etc/nginx/sites-available/default /etc/nginx/ sites-available/default_bak
$ sudo vi /etc/nginx/sites-available/default

Alle Inhalte löschen und nur die folgende Konfiguration übrig lassen

server {
    listen 80 default_server;
    server_name _;    return 404;
}

Nach dem Neustart von Nginx, andere können nicht über die IP-Adresse auf die Website zugreifen

Wenn Sie IP-Adressen nicht den Zugriff auf das gesamte Verzeichnis verbieten möchten, möchten Sie lediglich verhindern, dass andere über IP auf Ihr Blog und Forum zugreifen. Dann müssen Sie den Verzeichniszugriff auf „/blog“ und „/forum“ verbieten.

Öffnen Sie die Standardkonfigurationsdatei der Nginx-Website, genau wie oben, denken Sie daran, sie zuerst zu sichern

Fügen Sie die folgende Konfiguration im Abschnitt „Server { }“ hinzu

location ^~ /blog/ {
    deny all;
    }
location ^~ /forum/ { 
   deny all;
   }

Starten Sie Nginx neu

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn