конфигурация сервера nginx: переписать в локальную папку

#nginx

#nginx

Вопрос:

В настоящее время я настраиваю сервер nginx с поддоменами.

Я использую noip.com для службы DNS, которая предоставляет мне веб-адрес, подобный mydomain.ddns.net

Поскольку у меня есть поддомены, я хочу получить к ним доступ по адресу http://mydomain.ddns.net/subdomain

На сервере файлы поддоменов расположены здесь: /var/www/mydomain.ddns.net/www/subdomain

Мой вопрос: какой код нужно записать в mydomain.ddns.net файл конфигурации nginx для перенаправления http://mydomain.ddns.net/subdomain в /var/www/mydomain.ddns.net/www/subdomain/welcome.php ?

Заранее благодарю вас за помощь

Квентин Си

Комментарии:

1. Что вы подразумеваете под поддоменами ? Похоже, вы говорите о подкаталогах. Поддоменом будет: foo.mydomain.ddns.net , где находится корневой домен ddns.net .

2. Я хочу разместить несколько веб-сайтов, используя только адрес DynDNS. Каждый веб-сайт будет расположен в папке /var/www/mydomain.ddns.net/www/.

3. Хорошо, но если URL-адреса веб-сайтов являются http://mydomain.ddns.net/foobar , то это просто вспомогательные ресурсы одного и того же веб-сайта.

4. Да .. возможно .. Это проблема? Извините, я новичок в серверах.. Вы говорите, что единственный способ разместить несколько веб-сайтов по одному и тому же URL-адресу — это использовать поддомены, т. Е. foo.mydomain.ddns.net адреса? Я не могу этого сделать, поскольку я использую noip.com служба dyndns .. нет?

5. Да, у вас могут быть разные приложения в разных папках. Это просто странный выбор, и я хотел убедиться, что я понял, о чем вы спрашивали.

Ответ №1:

Я не эксперт по обслуживанию PHP с помощью nginx, и я не могу попробовать это прямо сейчас, но, по крайней мере, приведенная ниже конфигурация должна помочь вам начать.

Попробуйте следовать этому руководству, чтобы настроить его, в то время как это должно сделать поиск в документах конфигурации немного менее болезненным.

 user nginx nginx;

worker_processes 3;
worker_rlimit_nofile 2048;
error_log  /var/log/nginx/error.log warn;
pid        /var/run/nginx.pid;

events {
  worker_connections 1024;
  accept_mutex on;
  use epoll; # for Linux
}

http {
  server_tokens off;

  include /etc/nginx/mime.types;
  default_type application/octet-stream;
  access_log /var/log/nginx/access.log combined;

  sendfile on;

  server {
    listen 80;
    server_name mydomain.ddns.net;

    # To enable https
    #
    # listen 443 ssl;
    # ssl_certificate     /etc/nginx/sslfiles/certificate_chain.crt;
    # ssl_certificate_key /etc/nginx/sslfiles/certificate_key_no_passphrase.key;
    # ssl_session_cache shared:a_cache_name:1m;
    # ssl_session_timeout 5m;

    root /var/www/mydomain.ddns.net/www;

    location / {
      return 403; # forbidden
    }


    location @php_app {
      fastcgi_split_path_info ^(. ?(.php)?)(/.*)?$;
      fastcgi_pass 127.0.0.1:9000;
      fastcgi_index index.php;
      include fastcgi_params;
    }

    location /subdomain_one/ {
      try_files $uri/index.html @php_app;
    }
  }
}
  

Комментарии:

1. При перезапуске nginx я получил сообщение об ошибке: шаблон «^(. ?(.php)?)(/.*)?$» должно быть 2 записи в /etc/nginx /sites-enabled/mydomain.ddns.net