Welcome to nginx on debian что это
Перейти к содержимому

Welcome to nginx on debian что это

  • автор:

26 мая 2021 23:05:10 | 2 комментария

Установка и базовая настройка Nginx на Debian 10

Данная статья является почти полной копией статьи двухгодичной давности про установку и базовую настройку Nginx на Debian 9. С тех пор не мало воды утекло, Debian 9 уже не так актуальна, уже давно вышла Debian 10 и мы поговорим про быструю установку и настройку Nginx именно на Debian 10.

Исходные данные: Debian 10 (buster)
Задача: Установить и настроить Nginx (ветка Mainline)

1. Выполняем установку wget (Опционально):

apt-get update apt-get install -y wget

2. Скачиваем и добавляем ключ Nginx Inc. на нашу систему:

wget --quiet -O - http://nginx.org/keys/nginx_signing.key | apt-key add -

Если нужно установить Nginx из ветки Stable, то выполняем:

echo "deb http://nginx.org/packages/debian/ $(lsb_release -sc) nginx">/etc/apt/sources.list.d/nginx.list echo "deb-src http://nginx.org/packages/debian/ $(lsb_release -sc) nginx">>/etc/apt/sources.list.d/nginx.list

Если нужно установить Nginx из ветки Mainline, то выполняем:

echo "deb http://nginx.org/packages/mainline/debian/ $(lsb_release -sc) nginx">/etc/apt/sources.list.d/nginx.list echo "deb-src http://nginx.org/packages/mainline/debian/ $(lsb_release -sc) nginx">>/etc/apt/sources.list.d/nginx.list

3. Обновляем список пакетов:

apt-get update

4. Устанавливаем Nginx и OpenSSL (опционально):

apt-get install -y nginx apt-get install -y openssl

5. После установки запускаем Nginx:

systemctl enable --now nginx

6. Проверим факта запуска Nginx:

# systemctl status nginx ● nginx.service - nginx - high performance web server Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled) Active: active (running) since Wed 2021-05-26 20:40:24 CEST; 2s ago Docs: https://nginx.org/en/docs/ Process: 20629 ExecStart=/usr/sbin/nginx -c /etc/nginx/nginx.conf (code=exited, status=0/SUCCESS) Main PID: 20630 (nginx) Tasks: 2 (limit: 2296) Memory: 1.9M CGroup: /system.slice/nginx.service ├─20630 nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf └─20631 nginx: worker process May 26 20:40:24 myserver systemd[1]: Starting nginx - high performance web server. May 26 20:40:24 myserver systemd[1]: nginx.service: Can't open PID file /run/nginx.pid (yet?) after start: No such file or directory May 26 20:40:24 myserver systemd[1]: Started nginx - high performance web server.

Строка «Active: active (running)» говорит о работе Nginx.

7. Проверим открытые порты:

# netstat -ltupn | grep nginx tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 20630/nginx: master

Видим, что Nginx ожидает соединения на 80 порту на всех сетевых интерфейсах.

Теперь займемся базовой настройкой.

1. Создадим директорию для хранения SSL сертификатов и DH-ключей, а также создаем файл с параметрами для DHE-шифров:

mkdir /etc/nginx/ssl openssl dhparam -out /etc/nginx/ssl/dhparams.pem 2048

2. Создадим директории для хранения настроек Web-сайтов:

mkdir /etc/nginx/sites-available /etc/nginx/sites-enabled

3. Отредактируем основной файл настроек Nginx.

Я приведу базовый эталонный файл настроек который использую я на 99% серверов, рекомендую использовать его с дополнительными Вашими правками под конкретные нужды. В предыдущей статье мы уже рассматривали его, с тех пор ничего не изменилось.

Скачать уже готовый файл для Nginx версии 1.21.x :

wget https://gist.githubusercontent.com/CHERTS/8e9ecf4fbfb765556311a88e5106174b/raw/nginx.conf -O /etc/nginx/nginx.conf

После этого проверяем конфигурацию Nginx:

nginx -t

Если ошибок нет, то перезагружаем конфигурацию Nginx:

nginx -s reload

4. Меняем системные лимиты на количество открытых файлов.

Т.к. мы указали в nginx.conf параметр worker_rlimit_nofile = 10000, то будем исходить из него.

Традиционно во всех статьях в Интернет все меняют лимиты через редактирование файла /etc/security/limits.conf, но это неправильно, т.к. для Debian 8 и Debian 9 этот файл не работает.

В Debian 8 и Debian 9 используется система инициализации systemd и поэтому лимиты на максимальное количество открытых файлов нужно настроить для systemd, для этого выплняем:

mkdir -p /lib/systemd/system/nginx.service.d echo "[Service]" >/lib/systemd/system/nginx.service.d/limit.conf echo "LimitNOFILE=10000" >>/lib/systemd/system/nginx.service.d/limit.conf systemctl daemon-reload systemctl restart nginx

Теперь проверим лимиты, для этого смотрим строку «Max open files» в выводе:

# cat /proc/$(cat /var/run/nginx.pid)/limits Limit Soft Limit Hard Limit Units Max cpu time unlimited unlimited seconds Max file size unlimited unlimited bytes Max data size unlimited unlimited bytes Max stack size 8388608 unlimited bytes Max core file size 0 unlimited bytes Max resident set unlimited unlimited bytes Max processes 7655 7655 processes Max open files 10000 10000 files Max locked memory 65536 65536 bytes Max address space unlimited unlimited bytes Max file locks unlimited unlimited locks Max pending signals 7655 7655 signals Max msgqueue size 819200 819200 bytes Max nice priority 0 0 Max realtime priority 0 0 Max realtime timeout unlimited unlimited us

Теперь по адресу http://IP-адрес-вашего-сервер Вы сможете увидеть приветственную страницу «Welcome to nginx!».

За вывод данной страницы отвечает пока один единственный виртуальный сервер, его конфигурация находится в файле /etc/nginx/conf.d/default.conf

Выведем его содержимое без комментариев:

cat /etc/nginx/conf.d/default.conf | egrep -Ev "^\s*(;|#|$)"
server < listen 80; server_name localhost; location / < root /usr/share/nginx/html; index index.html index.htm; >error_page 500 502 503 504 /50x.html; location = /50x.html < root /usr/share/nginx/html; >>

На данном этапе Вы должны прочитать документацию о том как Nginx обрабатывает входящие запросы, определение виртуальных серверов по имени и IP адресу и там же описана конфигурация простого сайта на PHP, но настройка PHP-FPM — это уже тема следующей статьи.

На этом базовая настройка Nginx завершена, до скорых встреч.

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

NGinx не хочет использовать мою стандартную директорию

Здравствуйте,уважаемые бородатые администраторы! Сегодня я снова пришёл докучать вас и Вас своими вопросами.

Собственно NGinx при переходе на сервер выводит: Welcome to nginx on Debian!

If you see this page, the nginx web server is successfully installed and working on Debian. Further configuration is required.

For online documentation and support please refer to nginx.org

Please use the reportbug tool to report bugs in the nginx package with Debian. However, check existing bug reports before reporting a new bug.

Thank you for using debian and nginx.

Я создал файл index.html с нужным содержанием. Но NGinx всё равно выводит своё приветствие.

Содержание /etc/nginx/sites-enabled

server < listen 80; root /home/debian/www; server_name 176.103.149.195; index index.html index.php; access_log /home/user/logs/nginx.access.log; location ~ \.(php)$ < fastcgi_param SCRIPT_FILENAME $document_root/$fastcgi_script_name; fastcgi_param PATH_INFO $fastcgi_script_name; # fastcgi_connect_timeout 60; fastcgi_send_timeout 60; fastcgi_read_timeout 60; fastcgi_buffer_size 128k; fastcgi_buffers 4 256k; fastcgi_busy_buffers_size 256k; fastcgi_temp_file_write_size 256k; fastcgi_intercept_errors on; include fastcgi_params; client_max_body_size 10m; client_body_buffer_size 128k; expires off; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; fastcgi_pass unix:/var/run/php5-fpm.sock; >location / < proxy_redirect off; client_max_body_size 10m; client_body_buffer_size 128k; proxy_connect_timeout 90; proxy_send_timeout 90; proxy_read_timeout 90; proxy_buffer_size 1024k; proxy_buffers 8 5120k; proxy_busy_buffers_size 10240k; proxy_temp_file_write_size 10240k; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; expires off; >> 

Сабж,что не так? P.S.Я перезагружал NGinx несколько раз,не помогло! P.P.S.nginx.conf копировал через nano,может быть что-то криво.

asAce
24.02.15 10:58:05 MSK
Последнее исправление: asAce 24.02.15 12:02:35 MSK (всего исправлений: 3)

Пошаговая инструкция по установке Nginx на Debian 11

Nginx — это программное обеспечение, которое используется для обработки запросов на веб-сайтах и приложениях. Оно может служить веб-сервером для обслуживания статических страниц и файлов, а также обратным прокси-сервером для балансировки нагрузки и распределения запросов между несколькими серверами. Оно известно своей высокой производительностью и эффективностью использования ресурсов, что делает его популярным средством для веб-разработки и управления сетями. В этой статье мы рассмотрим установку nginx на Debian 11. Инструкция будет справделива и для более ранних версий, например Debian 10.

Вот пошаговая инструкция по установке Nginx на Debian 11:

Шаг 1. Обновление системы

Перед началом установки рекомендуется обновить систему. Для этого выполните следующую команду:

sudo apt update && sudo apt upgrade

Шаг 2. Установка Nginx

Выполните команду для установки Nginx:

sudo apt install nginx

Шаг 3. Запуск Nginx на Debian

После установки Nginx автоматически запустится. Если же это не произошло, выполните команду:

sudo systemctl start nginx

Шаг 4. Проверка статуса Nginx

Чтобы убедиться, что Nginx успешно запущен, выполните команду:

sudo systemctl status nginx

Если все прошло успешно, вы увидите сообщение «active (running)».

Шаг 5. Настройка файрвола

Чтобы разрешить доступ к Nginx, необходимо открыть порт 80 и/или 443. Для этого выполните команды:

sudo ufw allow 'Nginx HTTP' sudo ufw allow 'Nginx HTTPS'

Шаг 6. Проверка Nginx

установка nginx на debian 11

Теперь вы можете проверить, что Nginx работает, открыв веб-браузер и вводя IP-адрес сервера в адресной строке. Вы должны увидеть стандартную страницу приветствия «Welcome to nginx!»

Шаг 7. Настройка виртуального хоста

Если вы хотите настроить виртуальный хост, создайте новый конфигурационный файл в директории /etc/nginx/sites-available. Например, для создания файла test.friendhosting.net выполните команду:

sudo nano /etc/nginx/sites-available/test.friendhosting.net

Добавьте следующий код в файл:

server < listen 80; listen [::]:80; server_name test.friendhosting.net www.test.friendhosting.net; root /var/www/test.friendhosting.net/; index index.html; location / < try_files $uri $uri/ =404; >>

В этом примере мы создаем виртуальный хост для test.friendhosting.net, настраиваем корневую директорию и определяем, какой файл должен использоваться для индекса. Также мы настраиваем проверку файлов и папок при запросе.

Рассмотрим настройку виртуального хоста подробнее.

listen: определяет, какой IP-адрес и порт слушать для входящих соединений. В данном примере «listen 80» указывает, что сервер будет слушать соединения на порту 80, который обычно используется для HTTP-трафика.

server_name: определяет доменное имя сайта, который обслуживает данный виртуальный хост. В данном примере «server_name test.friendhosting.net» указывает, что данный виртуальный хост будет обслуживать сайт с доменным именем test.friendhosting.net.

root: определяет корневую директорию, в которой находятся файлы сайта. В данном примере «root /var/www/test.friendhosting.net» указывает, что файлы сайта находятся в директории /var/www/test.friendhosting.net.

index: определяет имя файла, который будет использоваться в качестве главной страницы сайта. В данном примере «index index.html» указывает, что в качестве главной страницы будет использоваться файл index.html.

location: определяет дополнительные настройки для обработки запросов в зависимости от URL-адреса. В данном примере «location /» указывает, что все запросы, которые начинаются с /, будут обрабатываться в соответствии с указанными правилами. В данном случае, если запрошенный файл не найден, Nginx вернет ошибку 404.

Шаг 8. Активация виртуального хоста nginx на Debian

Чтобы активировать виртуальный хост, создайте символическую ссылку на файл конфигурации в директории sites-enabled:

sudo ln -s /etc/nginx/sites-available/test.friendhosting.net /etc/nginx/sites-enabled/

Затем перезапустите Nginx:

sudo systemctl restart nginx

Шаг 9. Создание корневой директории сайта

Для создания корневой директории для виртуального хоста test.friendhosting.net нужно выполнить команду в терминале:

sudo mkdir -p /var/www/test.friendhosting.net

Эта команда создаст директорию test.friendhosting.net в каталоге /var/www/. Опция -p позволяет создавать директории рекурсивно, если они не существуют. Это удобно, если каталог /var/www/ еще не существует.

После создания директории необходимо установить правильные права на нее. Поскольку в нашем примере веб-сервер Nginx работает от имени пользователя www-data, этому пользователю нужно предоставить права на чтение и запись в корневую директорию сайта.

Для установки правильных разрешений нужно выполнить команду:

sudo chown -R www-data:www-data /var/www/test.friendhosting.net

Эта команда изменит владельца и группу директории test.friendhosting.net на www-data. Опция -R позволяет изменять владельца рекурсивно для всех файлов и поддиректорий внутри директории. После выполнения этой команды nginx сможет получить доступ к файлам в директории test.friendhosting.net и использовать их для обслуживания сайта.

Теперь, пришло время скопировать index.html в наш каталог /var/www/test.friendhosting.net/ а также установить верного владельца и группу на файл. Для этого выполните следующие команды

sudo cp /var/www/html/index.nginx-debian.html /var/www/test.friendhosting.net/index.html
sudo chown -R www-data:www-data /var/www/test.friendhosting.net/

Теперь, введя в адресную строку браузера http://test.friendhosting.net вы должны увидеть стандартную страницу «Welcome to nginx!».

установка nginx на debian 11

После выполнения данной инструкции мы получили полностью настроенный и работающий веб-сервер Nginx на операционной системе Debian 11. Настроенный виртуальный хост, корневая директория и файл индекса позволяют приступить к разработке и публикации сайта. Данная инструкция является полезным руководством для тех, кто хочет установить и настроить веб-сервер Nginx на Debian 11. Она дает возможность выполнить задачу шаг за шагом и получить полностью настроенный и работающий сервер без каких-либо сложностей. Рекомендуется использовать данную инструкцию как ресурс для всех, кто хочет освоить настройку веб-сервера Nginx на Debian 11.

В следующей статье нашего практического курса по установке WordPress на Debian 11 без панели управления мы расскажем про установку Apache на Debian 11 и его настройку для корректной работы сайта.

  • Безопасность
  • Основы Linux
  • Статьи о хостинге

Welcome page Nginx вместо страницы сайта?

Права и владельца директории /usr/share/nginx/test сменил на [- drwxr-xr-x nginx nginx ].
Почему не работает конфиг test.conf?
Когда при nginx -t он пишет, что все ОК
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
Подскажите пожалуйста, где искать ошибку? Заранее благодарен Всем за любые ответы!

  • Вопрос задан более трёх лет назад
  • 6247 просмотров

7 комментариев

Простой 7 комментариев

Compolomus

Дмитрий @Compolomus
Обычно конфиги кладут в папку
sites-available и делают симлинк в sites-enabled
Alexey Dmitriev @SignFinder

При переходе на этот сайт это на какой? Вы в браузере с этого сервера набираете localhost?
И еще — добавьте отдельный лог в этот конфиг и смотрите, что вообще происходит — по логам nginx

KuatZ7 @KuatZ7 Автор вопроса
Alexey Dmitriev, там нет доменного имени, через IP, добавил отдельный лог, он без ошибок
Alexey Dmitriev @SignFinder

KuatZ7, тогда вы не понимаете видимо, как это работает.
server_name в конфиге и ссылка в браузере должны быть идентичны. Если там ip — в конфиге должен быть он же.

KuatZ7 @KuatZ7 Автор вопроса

Alexey Dmitriev, Да проблема не в этом, добавил ip, но ничего не изменилось, дело в том что он видит сам конфиг, но почему то не ссылается на директорию с сайтом, а открывает ту которая указана по дефолту

Покажите вывод nginx -T .
KuatZ7 @KuatZ7 Автор вопроса

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful user nginx; worker_processes auto; error_log /var/log/nginx/error.log; pid /run/nginx.pid; # Load dynamic modules. See /usr/share/doc/nginx/README.dynamic. include /usr/share/nginx/modules/*.conf; events < worker_connections 1024; >http < log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"'; access_log /var/log/nginx/access.log main; sendfile on; tcp_nopush on; tcp_nodelay on; keepalive_timeout 65; types_hash_max_size 2048; include /etc/nginx/mime.types; default_type application/octet-stream; # Load modular configuration files from the /etc/nginx/conf.d directory. # See http://nginx.org/en/docs/ngx_core_module.html#include # for more information. include /etc/nginx/conf.d/*.conf; server < listen 80 default_server; listen [::]:80 default_server; server_name _; root /usr/share/nginx/html; # Load configuration files for the default server block. include /etc/nginx/default.d/*.conf; location / < >error_page 404 /404.html; location = /40x.html < >error_page 500 502 503 504 /50x.html; location = /50x.html < >> > # configuration file /usr/share/nginx/modules/mod-http-image-filter.conf: load_module "/usr/lib64/nginx/modules/ngx_http_image_filter_module.so"; # configuration file /usr/share/nginx/modules/mod-http-perl.conf: load_module "/usr/lib64/nginx/modules/ngx_http_perl_module.so"; # configuration file /usr/share/nginx/modules/mod-http-xslt-filter.conf: load_module "/usr/lib64/nginx/modules/ngx_http_xslt_filter_module.so"; # configuration file /usr/share/nginx/modules/mod-mail.conf: load_module "/usr/lib64/nginx/modules/ngx_mail_module.so"; # configuration file /usr/share/nginx/modules/mod-stream.conf: load_module "/usr/lib64/nginx/modules/ngx_stream_module.so"; # configuration file /etc/nginx/mime.types: types < text/html html htm shtml; text/css css; text/xml xml; image/gif gif; image/jpeg jpeg jpg; application/javascript js; application/atom+xml atom; application/rss+xml rss; text/mathml mml; text/plain txt; text/vnd.sun.j2me.app-descriptor jad; text/vnd.wap.wml wml; text/x-component htc; image/png png; image/svg+xml svg svgz; image/tiff tif tiff; image/vnd.wap.wbmp wbmp; image/webp webp; image/x-icon ico; image/x-jng jng; image/x-ms-bmp bmp; font/woff woff; font/woff2 woff2; application/java-archive jar war ear; application/json json; application/mac-binhex40 hqx; application/msword doc; application/pdf pdf; application/postscript ps eps ai; application/rtf rtf; application/vnd.apple.mpegurl m3u8; application/vnd.google-earth.kml+xml kml; application/vnd.google-earth.kmz kmz; application/vnd.ms-excel xls; application/vnd.ms-fontobject eot; application/vnd.ms-powerpoint ppt; application/vnd.oasis.opendocument.graphics odg; application/vnd.oasis.opendocument.presentation odp; application/vnd.oasis.opendocument.spreadsheet ods; application/vnd.oasis.opendocument.text odt; application/vnd.openxmlformats-officedocument.presentationml.presentation pptx; application/vnd.openxmlformats-officedocument.spreadsheetml.sheet xlsx; application/vnd.openxmlformats-officedocument.wordprocessingml.document docx; application/vnd.wap.wmlc wmlc; application/x-7z-compressed 7z; application/x-cocoa cco; application/x-java-archive-diff jardiff; application/x-java-jnlp-file jnlp; application/x-makeself run; application/x-perl pl pm; application/x-pilot prc pdb; application/x-rar-compressed rar; application/x-redhat-package-manager rpm; application/x-sea sea; application/x-shockwave-flash swf; application/x-stuffit sit; application/x-tcl tcl tk; application/x-x509-ca-cert der pem crt; application/x-xpinstall xpi; application/xhtml+xml xhtml; application/xspf+xml xspf; application/zip zip; application/octet-stream bin exe dll; application/octet-stream deb; application/octet-stream dmg; application/octet-stream iso img; application/octet-stream msi msp msm; audio/midi mid midi kar; audio/mpeg mp3; audio/ogg ogg; audio/x-m4a m4a; audio/x-realaudio ra; video/3gpp 3gpp 3gp; video/mp2t ts; video/mp4 mp4; video/mpeg mpeg mpg; video/quicktime mov; video/webm webm; video/x-flv flv; video/x-m4v m4v; video/x-mng mng; video/x-ms-asf asx asf; video/x-ms-wmv wmv; video/x-msvideo avi; ># configuration file /etc/nginx/conf.d/test.conf: server < listen [::]:80; server_name localhost; set $root_path /var/www/test; gzip on; gzip_disable "msie6"; gzip_min_length 1000; gzip_vary on; gzip_proxied expired no-cache no-store private auth; gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript application/javascript; root $root_path; index index.php; expires modified +1w; location ~ \.php$ < fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $root_path$fastcgi_script_name; include fastcgi_params; fastcgi_param DOCUMENT_ROOT $root_path; >> # configuration file /etc/nginx/fastcgi_params: fastcgi_param QUERY_STRING $query_string; fastcgi_param REQUEST_METHOD $request_method; fastcgi_param CONTENT_TYPE $content_type; fastcgi_param CONTENT_LENGTH $content_length; fastcgi_param SCRIPT_NAME $fastcgi_script_name; fastcgi_param REQUEST_URI $request_uri; fastcgi_param DOCUMENT_URI $document_uri; fastcgi_param DOCUMENT_ROOT $document_root; fastcgi_param SERVER_PROTOCOL $server_protocol; fastcgi_param REQUEST_SCHEME $scheme; fastcgi_param HTTPS $https if_not_empty; fastcgi_param GATEWAY_INTERFACE CGI/1.1; fastcgi_param SERVER_SOFTWARE nginx/$nginx_version; fastcgi_param REMOTE_ADDR $remote_addr; fastcgi_param REMOTE_PORT $remote_port; fastcgi_param SERVER_ADDR $server_addr; fastcgi_param SERVER_PORT $server_port; fastcgi_param SERVER_NAME $server_name; # PHP only, required if PHP was built with --enable-force-cgi-redirect fastcgi_param REDIRECT_STATUS 200;

Он тянет сам конфиг из папки, но почему-то все равно отображается welcome page

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *