Вопрос или проблема
Каждое руководство по конфигурации nginx, которое я нахожу, связано с настройкой сервера для, скажем, example.com. Но у меня нет доменного имени, и я хочу настроить локальный DNS, что-то вроде localhost в Windows с Apache, который идет с XAMPP. Я хочу создать два порта, которые, я полагаю, это серверные блоки в nginx. Один из портов предназначен для API, другой порт предназначен для фронтенда. Я создал два файла:
/etc/nginx/conf.d/chubak.conf:
server {
listen 85;
server_name chubak.com;
access_log /srv/logs/vue.access.log;
error_log /srv/logs/vue.error.log;
gzip_static on;
# root /srv/default;
root /var/www/chubak.com/html;
index index.html;
location / {
add_header 'Access-Control-Allow-Origin' '*';
try_files $uri $uri/ /index.html;
}
И /etc/nginx/conf.d/api.chubak.conf:
server {
listen 180;
server_name api.chubak.com;
access_log /var/www/api.chubak.com/logs/api.access.log;
error_log /var/www/api.chubak.com/logs/api.error.log;
root /var/www/api.chubak.com/html;
index index.php index.html;
client_max_body_size 128M;
location / {
try_files $uri $uri/ /index.php?_url=$uri&$args;
}
location ~ \.php$ {
include /etc/nginx/fastcgi.conf;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
try_files $uri =404;
fastcgi_pass unix:/var/run/php/php7.2-fpm.sock;
fastcgi_read_timeout 600;
fastcgi_intercept_errors on;
gzip off;
fastcgi_index index.php;
}
И я создал файлы index.html в папке /var/www/site/html, но не знаю, как к ним получить доступ. Как я уже сказал, руководства всегда предполагают, что у вас есть доменное имя, указывающее на ваш сервер.
Файл localhost для систем на базе Debian — это /etc/hosts
. Просто добавьте строку после последней строки 127.0.0.1
с чем-то вроде этого (используйте наиболее подходящий IP-адрес):
127.0.0.1 chubak.com
127.0.0.1 api.chubak.com
Ответ или решение
Чтобы запустить Nginx в окружении Debian так, как это делалось с XAMPP на Windows, вам необходимо использовать localhost
, что подразумевает работу с локальным или виртуальным хостом. В данном контексте, эквивалентом localhost
для вашего случая будет использование файла /etc/hosts
, в который вам нужно добавить записи для ваших локальных доменных имен.
Настройка локальных доменных имен
-
Редактирование файла
/etc/hosts
:
Откройте этот файл с помощью текстового редактора (например,nano
илиvim
) с правами суперпользователя:sudo nano /etc/hosts
Добавьте следующие строки в конец файла, чтобы связать ваши локальные доменные имена с адресом
127.0.0.1
:127.0.0.1 chubak.com 127.0.0.1 api.chubak.com
Сохраните изменения и закройте редактор.
-
Проверка конфигурации Nginx:
Убедитесь, что конфигурационные файлы для Nginx правильно созданы. Согласно вашему описанию, вы задали два разных порта: 85 для фронтенда (chubak.com
) и 180 для API (api.chubak.com
). Для запуска Nginx исполните следующую команду, чтобы проверить корректность конфигурации:sudo nginx -t
Если тест завершится успешно, перезагрузите Nginx для применения настроек:
sudo systemctl reload nginx
Доступ к локальным ресурсам
Теперь, когда вы настроили файл /etc/hosts
, следующим шагом будет доступ к вашим сайтам. Вы можете открыть браузер и ввести адреса:
- Для фронтенда:
http://chubak.com:85
- Для API:
http://api.chubak.com:180
Обратите внимание на использование порта в URL для доступа к вашим службам, так как вы не используете стандартный порт 80 для HTTP.
Режимы отладки
Если по итогам доступа к сайтам они не работают, следуйте следующим шагам для отладки:
-
Проверьте логи Nginx, чтобы найти возможные ошибки. Они находятся по следующим путям, согласно вашим конфигурациям:
/srv/logs/vue.access.log /srv/logs/vue.error.log /var/www/api.chubak.com/logs/api.access.log /var/www/api.chubak.com/logs/api.error.log
-
Убедитесь, что Nginx и PHP-FPM (или другой обработчик PHP) запущены:
sudo systemctl status nginx sudo systemctl status php7.2-fpm
Заключение
Следуя вышеописанным шагам, вы сможете корректно настроить и запустить локальные веб-сайты на Debian с использованием Nginx, аналогично тому, как это сделано в XAMPP на Windows. Не забывайте об актуальности конфигураций и обращений по доменным именам в ваших приложениях.