Skip to content

Настройка Nginx

stvoidit edited this page Feb 17, 2023 · 3 revisions
  1. Устанавливаем веб-сервер nginx: sudo apt install -y nginx

  2. Переходим в директорию nginx для редактирования конфигураций: cd /etc/nginx/

  3. Редактируем главный файл конфигурации: sudo nano nginx.conf

  4. Можно стереть всё содержимое и заменить на:

user www-data;
worker_processes auto;
pid /run/nginx.pid;
include /etc/nginx/modules-enabled/*.conf;
events {
        worker_connections 768;
        multi_accept on;
}
http {
        sendfile on;
        tcp_nopush on;
        types_hash_max_size 2048;
        server_tokens off;
        server_name_in_redirect on;
        include /etc/nginx/mime.types;
        default_type application/octet-stream;

        ##
        # SSL Settings
        ##

        ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3;
        ssl_prefer_server_ciphers on;

        ##
        # Logging Settings
        ##

        access_log off;
        error_log off;

        ##
        # Gzip Settings
        ##

        gzip on;
        gzip_vary on;
        gzip_proxied any;
        gzip_comp_level 6;
        gzip_types *;

        ##
        # Virtual Host Configs
        ##

        include /etc/nginx/conf.d/*.conf;
        # include /etc/nginx/sites-enabled/*;
}

Закрываем и сохраняем файл (ctrl+X)

  1. Переходим в папку с конфигурациями для сайтом (приложений) на сервере: cd /etc/nginx/conf.d/

  2. Если в директории есть какие-то файлы (команда ls покажет что есть в директории), то удалить: sudo rm *

  3. Создаем файл, например с именем нашего будущего домена (желательно, но потом можно переименовать): sudo nano mysite.space.conf

  4. Копируем в него конфигурацию:

Если домена еще нет, то строку с server_name удалить или закомментировать через # в начале строки.

server {
	listen           80;
	server_name www.mysite.space mysite.space; # если уже есть домен
	location / {
		proxy_pass http://$server_addr:5530;
		proxy_set_header Host $host;
		proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
		proxy_set_header X-Real-IP $remote_addr;
		proxy_read_timeout 60s;
		proxy_send_timeout 60s;
		client_max_body_size 0;
		client_body_in_single_buffer on;
	}
	error_page 500 502 503 504 /50x.html;
	location = /50x.html {
		root /usr/share/nginx/html;
	}
}

Закрываем и сохраняем файл (ctrl+X)

  1. Проверяем что в конфигурации нет ошибок: sudo nginx -t. Если всё правильно, то вывод будет:
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
  1. Перезапускаем сервис nginx: sudo service nginx restart

Если всё сделано верно, то сайт будет доступен по IP без указания порта (т.е. на порту 80)

Clone this wiki locally