Hostwinds Учебники

Результаты поиска для:


Содержание


Предпосылки
Конфигурация Nginx
Протестируйте конфигурацию Nginx

Обратный прокси Nginx с SSL

Теги: Cloud Servers,  SSL,  VPS 

Предпосылки
Конфигурация Nginx
Протестируйте конфигурацию Nginx

Nginx - мощный инструмент. Это позволяет вам подавать несколько приложений, веб-сайтов, сбалансированных нагрузки и многое другое. Эта гибкость все работает с помощью относительно простой системы конфигурации, которая использует практически читаемые файлы конфигурации. Это руководство продемонстрирует, как настроить реверсивный прокси NGINX с SSL на Hostwinds Cloud VPS.

Предпосылки

Это руководство предположиет общее понимание использования системы Linux на основе командной строки и будет способствовать следующим предварительным условиям:

  • Ubuntu 18.04
  • Пользователь без полномочий root
  • Приложение работает на желаемом порту обратного прокси (в этом руководстве предполагается, что порт 3000)
  • DNS запись имени для желаемого домена
  • SSL-сертификат для домена

Конфигурация Nginx

По умолчанию для пакета Nginx-full используется динамическая среда общего виртуального хоста. Файлы конфигурации для каждого виртуального хоста доступны для использования здесь:

/etc/nginx/sites-available/

В этом месте будет файл с именем по умолчанию Доступно использовать в качестве базового шаблона. Тем не менее, мы вручную создаем новый файл конфигурации в этом руководстве и заполните его по мере необходимости. После входа в систему пользователя Unro root, выпустите эту команду, чтобы запустить процесс:

sudo touch /etc/nginx/sites-available/domain.tld

Обязательно замените Домен-TLD. с доменом, который вы фактически используете.

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

sudo vim /etc/nginx/sites-available/domain.tld

Теперь, когда файл существует, добавьте следующий текст в этот файл. Измените текст, указанный для ссылки на ваш домен, порт вашего приложения использует, и ваши пути сертификата SSL. Этот файл будет основной конфигурацией для обратного прокси:

###
# This Section listens on port 80 for your domain and rewrites the request 
# to HTTPS for us
###

server {
listen 80;
server_name domain.tld www.domain.tld; # Edit this to your domain name
rewrite ^ https://$host$request_uri permanent;
}

###
# This is all the configuration declarations that help SSL Function.
###

server {
listen 443 ssl;

server_name domain.tld;
# Edit this to your domain name

ssl_certificate /etc/letsencrypt/live/domain.tld/fullchain.pem;       
# If you use Lets Encrypt, you should just need to change the domain. 

ssl_certificate_key /etc/letsencrypt/live/domain.tld/privkey.pem;     
# If you use Let's Encrypt, you should just need to change the domain.

ssl_session_cache builtin:1000 shared:SSL:10m;                        
# Defining option to share SSL Connection with Passed Proxy

ssl_protocols TLSv1 TLSv1.1 TLSv1.2;                                  
# Defining used protocol versions. 

ssl_ciphers HIGH:!aNULL:!eNULL:!EXPORT:!CAMELLIA:!DES:!MD5:!PSK:!RC4; 
# Defining ciphers to use. 

ssl_prefer_server_ciphers on;                                         
# Enabling ciphers

access_log /var/log/nginx/access.log;                                 
# Log Location. Can be anywhere. Make sure the nginx user defined in /etc/nginx/nginx.conf has r/w permissions

###
# This is the juicey part of the config file, handing off relevant data to 
# our back-end app running on port 3000
# Nothing should need to be changed here, unless port 3000 is not the port 
# you're using. 
# Furthermore, if you're using a socket to serve your app (PHP comes to 
# mind), you can define a unix:.sock location here as well
###

location / {
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_pass http://localhost:3000;
proxy_read_timeout 90;
}
}

Сохраните файл и выйдите из текстового редактора.

Протестируйте конфигурацию Nginx

Теперь, когда конфигурация создана, мы должны указать Nginx проверять наличие файла при загрузке. Сделаем символическую ссылку:

sudo ln -s /etc/nginx/sites-avaialable/domain.tld /etc/nginx/sites-enabled/domain.tld.conf

Далее мы тестируем конфигурацию перед перезапуском системной службы Nginx.

sudo nginx -t

После этого он должен запустить тест и в случае успеха вывести следующее сообщение:

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

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

sudo systemctl restart nginx

Теперь вы должны иметь доступ к приложению, запущенному на определенном порту, просматривая Домен-TLD. как показано в ранее созданном файле конфигурации Nginx.

Написано Hostwinds Team  /  Июнь 14, 2019