Start nginx on windows

Версия nginx под Windows использует “родной” Win32 API (не эмуляцию Cygwin).
В настоящий момент в качестве методов обработки соединений используются
select() и poll() (1.15.9),
поэтому не стоит ожидать высокой производительности и масштабируемости.
В силу этого и ряда других известных проблем версия nginx под Windows
рассматривается пока как бета-версия.
На данный момент в ней доступна практически вся функциональность, что и
в версии nginx под UNIX, за исключением
XSLT-фильтра, фильтра изображений, модуля GeoIP и встроенного языка Perl.

Чтобы установить nginx/Windows, скачайте
дистрибутив последней основной версии (1.27.5),
поскольку основная ветвь nginx содержит все известные исправления.
Затем распакуйте дистрибутив, перейдите в каталог
nginx-1.27.5
и запустите nginx.
Вот пример для корневого каталога на диске C:

cd c:\
unzip nginx-1.27.5.zip
cd nginx-1.27.5
start nginx

Чтобы увидеть процессы nginx, запустите утилиту командной строки
tasklist:

C:\nginx-1.27.5>tasklist /fi "imagename eq nginx.exe"

Image Name           PID Session Name     Session#    Mem Usage
=============== ======== ============== ========== ============
nginx.exe            652 Console                 0      2 780 K
nginx.exe           1332 Console                 0      3 112 K

Один из процессов главный, другой — рабочий.
Если nginx не запускается, нужно искать причину в
в файле лога ошибок logs\error.log.
Если же лог-файл не создался, то причину этого следует искать
в Windows Event Log.
Если вместо ожидаемой страницы выводится страница с ошибкой, нужно также
искать причины ошибки в файле logs\error.log.

nginx/Windows использует каталог, в котором он был запущен, в качестве
префикса для относительных путей в конфигурации.
В вышеприведённом примере префиксом является
C:\nginx-1.27.5\.
Пути в конфигурационном файле должны задаваться в UNIX-стиле с использованием
прямых слэшей:

access_log   logs/site.log;
root         C:/web/html;

nginx/Windows работает как стандартное консольное приложение (не сервис)
и управляется при помощи следующих команд:

nginx -s stop быстрое завершение
nginx -s quit плавное завершение
nginx -s reload изменение конфигурации,
запуск новых рабочих процессов с новой конфигурацией,
плавное завершение старых рабочих процессов
nginx -s reopen переоткрытие лог-файлов

Известные проблемы

  • Хоть и возможен запуск нескольких рабочих процессов, только один из них
    реально работает.
  • UDP (и, как следствие, QUIC) не поддерживается.

Возможные усовершенствования в будущем

  • Запуск в виде сервиса.
  • Использование портов завершения ввода-вывода (I/O completion ports)
    в качестве метода обработки соединений.
  • Использование нескольких рабочих нитей внутри одного рабочего процесса.

Nginx — веб-сервер с открытым исходным кодом, разработанный Игорем Сысоевым в 2004 году. Nginx стал очень популярным, потому что он быстр, универсален и может использоваться в качестве веб-сервера и обратного прокси-сервера.

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

Nginx поддерживает широкий спектр протоколов, включая HTTP, HTTPS, WebSocket и другие. Такая гибкость позволяет использовать данный веб-сервер в самых разных приложениях, от обслуживания традиционного веб-контента до управления взаимодействием в режиме реального времени между клиентами и серверами.

В данном руководстве рассмотрим процесс установки и запуска веб-сервера Nginx на VDS, работающем под управлением Windows Server 2016.

Для установки Nginx перейдите на страницу загрузок и выберите либо актуальную стабильную, либо актуальную основную версию веб-сервера.

Страница загрузки Nginx

После окончания загрузки распакуйте архив, например, в каталог C:\nginx. Затем откройте командную строку и перейдите в этот каталог.

cd C:\nginx

Далее, запустите Nginx при помощи следующей команды:

start nginx

Чтобы проверить работоспособность веб-сервера, откройте браузер и перейдите на страницу http://localhost. При этом вы должны будете увидеть стартовую страницу Nginx. Если это так, значит, ваш веб-сервер работает.

Стартовая страница веб-сервера Nginx

Запуск Nginx как службы

По умолчанию, веб-сервер Nginx не функционирует в операционной системе как служба. Это означает, что при перезагрузке вашего VPS веб-сервер не запустится автоматически. Для запуска Nginx как службы необходимо будет воспользоваться сторонним ресурсом NSSM (Non-Sucking Service Manager).

Дистрибутив NSSM доступен по ссылке на странице загрузки.

Страница загрузки NSSM

Загруженный архив распакуйте, например, в каталог nssm на диске C:\ виртуального сервера. После чего откройте командную строку и перейдите в каталог, в котором расположен файл nssm.exe:

cd C:\nssm\win64

Затем установите Nginx в качестве сервиса при помощи следующей команды:

nssm install nginx C:\nginx\nginx.exe

После чего запустите установленный сервис:

nssm start nginx

Запуск Nginx как службы

Подключение к веб-серверу удалённо

Если вам нужно, чтобы веб-страница, запущенная с помощью Nginx открывалась не только с локального хоста, но и с любого другого узла, имеющего доступ в интернет, необходимо на виртуальном сервере добавить соответствующее правило в брандмауэр Windows. Для того, чтобы войти в настройки брандмауэра, в строке поиска наберите firewall и запустите Windows Firewall with Advanced Security.

В открывшемся окне брандмауэра перейдите в Inbound Rules, затем кликните в New Rule... После чего укажите тип создаваемого правила Program и нажмите Next.

Создание нового правила - Как запустить Nginx на Windows Server

Далее, в строке This program path при помощи кнопки Browse выберите файл nginx.exe, после чего нажмите Next.

Выбор программы - Как запустить Nginx на Windows Server

В следующем окне укажите Allow the connection и нажмите Next.

Allow the connection - Как запустить Nginx на Windows Server

Затем снова нажмите Next перед этим отметив галочками все опции.

Применение правила - Как запустить Nginx на Windows Server

В строке Name укажите имя создаваемого правила. В нашем примере мы назвали его Nginx web-server. И для того, чтобы закончить настройку, нажмите Finish.

Завершение создания правила

После этого созданное правило появится в списке брандмауэра Windows.

Брандмауэр Windows

Теперь вы сможете открыть вашу веб-страницу с любого компьютера, который имеет выход в интернет. Для этого достаточно набрать в браузере IP-адрес вашего VPS.

Nginx is an open-source, high-performance HTTP server and reverse proxy server. It also functions as a mail proxy server and a generic TCP/UDP proxy server. Renowned for its stability, rich feature set, simple configuration, and low resource consumption, Nginx is often used as a web server or reverse proxy.

This article provides a comprehensive guide on how to install Nginx on a Windows-based operating system. It is worth noting that while Nginx does provide a Windows version, it is mostly recommended for development and testing purposes. For production environments, Linux distributions are typically preferred.

Prerequisites

Before you start with the installation process, make sure you have administrative rights on your Windows system, as they are required for software installation. Additionally, ensure your system meets the minimum hardware requirements for Nginx.

Step 1: Downloading Nginx

  1. Go to the Nginx download page.
  2. Under the “Mainline version”, click on the zip file link for the latest Windows version. The file will start downloading.
    Installing Nginx on Windows

    Downloading Nginx for Windows

Step 2: Extracting Nginx

  1. Once downloaded, locate the zip file, typically in your Downloads folder.
  2. Extract the zip file to your desired location. For this guide, we will use C:\nginx.
    Installing Nginx on Windows

    Extracted Nginx code in C:\nginx directory

Step 3: Running Nginx

  1. Open the Command Prompt with administrative privileges. You can do this by searching for ‘cmd’ in the Start menu, right-clicking on Command Prompt, and selecting “Run as administrator”.
  2. Navigate to the directory where you extracted Nginx. You can do this by typing cd C:\nginx and hitting Enter.
  3. Start Nginx by typing start nginx and hitting Enter.
    cd C:\nginx 
    start nginx.exe  
    
    How to Install Nginx on Windows

    Starting Nginx service on Windows
  4. Nginx should now be running on your Windows machine. You can check this by opening a web browser and navigating to http://localhost. If Nginx has started successfully, you will see a welcome page.
    How to Install Nginx on Windows

    Verify Nginx on Windows

Step 4: Managing Nginx

Here are some basic commands you can use to manage Nginx:

  • To stop Nginx, use the command `nginx -s stop`.
  • To quit Nginx gracefully, use `nginx -s quit`.
  • To reload the Nginx configuration file, use `nginx -s reload`.
  • To reopen the Nginx log files, use `nginx -s reopen`.

Remember to run these commands from the directory where Nginx is installed.

Step 5: Configuring Nginx

The primary configuration file for Nginx is nginx.conf, located in the conf subdirectory of the directory where Nginx was extracted. The configuration file is well-commented and provides a good starting point for configuring your server.

For Nginx to serve your website, you need to edit this file with your specific parameters. You may need to set up server blocks (similar to Apache’s virtual hosts) to specify the document root and other parameters for your website.

After making changes to the configuration file, remember to reload Nginx so that the changes take effect.

Conclusion

This guide provided a basic introduction to installing Nginx on a Windows system. While this should get you started, Nginx’s true power comes from its extensive configurability, allowing you to optimize it for your specific needs. Be sure to check out the official Nginx documentation for more detailed information on how to harness this power.

Table of Contents

Download Nginx and NSSM

Nginx is an free, open-source HTTP server characterized by its small footprint, exceptional performance and efficient use of resources. It hosts over 7% of all domains worldwide!

Non-Sucking Service Manager (NSSM) is a service helper program that assists in installing an application as a service, monitoring the application’s state and handling failures as it runs.

1. To run Nginx as a Windows Service you need download:

  • Nginx for Windows: http://nginx.org/en/download.html
  • Download NSSM: https://nssm.cc/download

2. Extract downloaded files then copy nssm.exe in win64 folder and src folder to extracted nginx folder.

3. Now, in the nginx folder, we have nginx source and nssm source.

4. Copy all files and folders in nginx folder to C:/nginx ( create nginx folder in C drive if it not exists).

5. Right click on the Start icon then open Windows PowerShell as administrator.

6. Navigate to nginx folder then run this command .\nssm.exe install to open NSSM service installer.

PS C:\Users\mpnadmin> cd /
PS C:\> cd .\nginx\
PS C:\nginx> .\nssm.exe install
Service "Nginx" installed successfully!

7. In the NSSM service installer window:

  • Application Path: Browse to nginx.exe in C:\nginx.
  • Service name: Enter service name as you need.
  • Click button.

Bg862

8. Now, open Windows Services (services.msc) then start the Nginx service. As you can see, Startup Type is Automatic, it means nginx service will load on boot.

Bg863

Finally, open any web browser then visit localhost to verify it works.

Bg864

Есть нужен веб-сервер для Windows, идеально подойдет веб-сервер Nginx с подключенным PHP через FastCGI. В статье будет показана настройка и связка Nginx с PHP на примере Windows 11. Аналогично происходит настройка в Windows 7/8/10.

1. Структура каталогов под сервера

Удобно когда все сервера и сервисы установлены в отдельной папке. Я рекомендую сделать структуру аналогично моей.

Создаем на диске D:\ папку server (если диск один, то создаем на C). В папке server будет находится все что относится в веб-серверу, базы данных, файлы сайта.

Структура будет выглядеть так:

# Папка для серверов
D:\server\
# Папка для nginx
D:\server\nginx\
# Папка для PHP
D:\server\php\
# Папка для веб-сайтов
D:\server\www\

Создаем необходимые папки.

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

2. Установка и настройка nginx

2.1. Установка nginx

Заходим на официальный сайт Nginx https://nginx.org/ru/download.html и скачиваем последнею версию

Раздел "Скачать" веб-сайта nginx.org. Доступны для скачки основная и стабильная версия nginx.

Стабильная версия больше подойдет если nginx используется для рабочих веб-сайтов, а не используется для разработки, тестирования новых возможностей nginx.

Извлекаем скаченный архив в папку D:\server\nginx\

Открыта папке "D:\server\nginx\" в Windows 11. Внутри папке веб-сервер nginx.

2.2. Конфигурация nginx (nginx.conf)

Теперь необходимо настроить сам nginx и его работу в связке с PHP.

Открываем файл конфигурации nginx.conf (в моем случае D:\server\nginx\conf\nginx.conf) и настраиваем веб-сервер nginx

# Базовый файл конфигурации nginx + PHP FastCGI
#user  nobody;
worker_processes 1; # Количество запущенных процессов

#Лог ошибок
#error_log	logs/error.log;
#error_log	logs/error.log  notice;
#error_log	logs/error.log  info;

#pid		logs/nginx.pid;

events {
	worker_connections  1024; # Количество подключений к одному процессу
}

http {
	include			mime.types;
	default_type	application/octet-stream;

	# Лог доступа
	access_log		off;
	#access_log		logs/access.log  main;

	gzip  on; # Использовать сжатие
	
	# Разделов server может быть неограниченное количество
	#
	# Раздел server для домена сайта localhost по 80 порту
	server {
		listen		80; # Порт
		server_name	localhost; # Домен сайта
		
		charset utf-8; # Кодировка сайта
		
		error_log	logs/localhost.error.log; # Лог ошибок сайта
		access_log	logs/localhost.access.log; # Лог доступа сайта

		# Путь до папки сайта
		root	D:/server/www;

		# Обработка всех URI запросов начинающихся с /
		location / {
			#root	D:/server/www; # root определена в разделе server
			index	index.html index.php; # файлы в качестве индекса
		}
		
		# Настройка обработки php скриптов через PHP-FastCGI
		#
		# Обработка всех URI запросов оканчивающихся на .php
		location ~ \.php$ {
			# IP и порт PHP-FastCGI. С такими же параметрами нужно будет запускать php-cgi.exe
			fastcgi_pass	127.0.0.1:9000;
			fastcgi_index	index.php;
			# Путь до php скриптов, $document_root - путь из параметра root (папка сайта)
			fastcgi_param	SCRIPT_FILENAME  $document_root$fastcgi_script_name;
			include			fastcgi_params;
		}
	}
}

Сохраняем и закрываем файл.

3. Установка и настройка PHP

3.1. Установка PHP

Заходим на сайт PHP https://windows.php.net/download и скачиваем последнею Non Thread Safe версию

Раздел "Downloads" веб-сайта windows.php.net. Доступные версии PHP для скачивания.

Если в Windows не установлены Visual C++ Redistributable для Visual Studio 2015-2019, их необходимо скачать (vc_redist.x64.exe и vc_redist.x86.exe) и установить.

Извлекаем скаченный архив в папку D:\server\php\

Открыта папке "D:\server\php\" в Windows 11. Внутри папке находятся файлы PHP.

3.2. Конфигурация PHP (php.ini)

По умолчанию в PHP содержатся два примера конфигурации php.ini-production и php.ini-development. Версия production используется для рабочих сайтов, в ней ошибки только записываются в лог файлы веб-сервера. Версия development используется при разработке, в ней ошибки выводятся на веб-страницу и записываются в лог файлы.

Копируем и переименовываем файл php.ini-production или php.ini-development в php.ini (это основной файл конфигурации PHP).

Открываем в тестовом редакторе файл php.ini (в моем случае D:\server\php\php.ini), находим параметр extension_dir и указываем папку с расширениями PHP

; Раскомментируем параметр для Windows (относительный путь)
extension_dir = "ext"
; Или можно указать полный путь до папки с расширениями
;extension_dir = "D:\server\php\ext"

Далее находим раздел Dynamic Extensions и включаем необходимые расширения

В блокноте Windows 11 открыт файл "php.ini". Отображается раздел "Dynamic Extensions" с включенными расширениями.

Сохраняем и закрываем файл.

4. Скрипты запуска и остановки веб-сервера

В папке D:\server\ будут находится скрипты для управления веб-сервером.

После запуска php-cgi.exe (PHP FastCGI), он будет работать в открытом окне консоли. Если это не желательно, скачиваем утилиту RunHiddenConsole.exe в папку D:\server\ и тогда дальнейший запуск php-cgi.exe будет происходить через данную утилиту.

Создаем скрипт запуску веб-сервера web-start.bat

:: Запуск PHP FastCGI
:: Если файл RunHiddenConsole.exe существует, то запускаем PHP через утилиту
if exist "RunHiddenConsole.exe" (
	:: PHP будет запущен в скрытом режиме
	RunHiddenConsole.exe "php\php-cgi.exe" -b 127.0.0.1:9000 -c "php\php.ini"
) else (
	start php\php-cgi.exe -b 127.0.0.1:9000 -c "php\php.ini"
)

:: Запуск nginx
cd nginx
start nginx.exe

Создаем скрипт остановки веб-сервера web-stop.bat

taskkill /f /IM nginx.exe
taskkill /f /IM php-cgi.exe

Для удобства создаем скрипт перезапуска веб-сервера web-restart.bat

call web-stop.bat
call web-start.bat

В результате папка server выглядит следующим образом

Открыта папке "D:\server\" в Windows 11. Внутри папке находятся папки nginx, php, www и bat-файлы для управления веб-сервером.

5. Проверка веб-сервера nginx + PHP

Создаем в папке D:\server\www\ файл index.php следующего содержимого

<?php
	phpinfo();
?>

Запускаем веб-сервер скриптом web-start.bat

Открываем в браузере http://localhost/ и если все нормально, будет выведена информация о PHP.

Открыта в браузере ссылка http://localhost/. На странице успешно выведено phpinfo. PHP версии 8.3.3 работает в Windows 11.

nginx в связке с PHP успешно установлены, настроены и работают.

Если что-то не работает, смотрим лог файлы nginx (D:\server\nginx\logs\) или запускаем PHP без скрытия консоли, чтобы увидеть ошибки в ней.

Понравилась статья? Поделить с друзьями:
0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии
  • Altlinux ввести в домен windows
  • Could not open input file composer phar windows
  • Пропала группа пользователи удаленного рабочего стола windows 10
  • Как добавить ярлык в автозагрузку windows 11
  • Вернуть поиск windows 10 ltsc