Nginx

Материал из First-Leon
Перейти к навигации Перейти к поиску

Установка из PPA

apt-get install software-properties-common
add-apt-repository ppa:ondrej/nginx
apt-get update
apt-get install nginx -y

Установка с официального сайта в Debian

http://nginx.org/keys/nginx_signing.key
apt-key add nginx_signing.key
mcedit /etc/apt/sources.list.d/nginx.list
deb http://nginx.org/packages/debian/ stretch nginx
deb-src http://nginx.org/packages/debian/ stretch nginx


Устанавливаем лимит на размер загружаемых файлов. В файле /etc/nginx/nginx.conf

client_max_body_size 1024m;

Настраиваем автозапуск vhost-а

ln -s /etc/nginx/sites-available/ /etc/nginx/sites-enabled/

Применяем параметры

service nginx reload

В крайнем случае полностью рестартуем Nginx:

service nginx restart

Конвертация ключей из tomcat keystore в формат nginx

Convert our ".jks" file to ".p12" (PKCS12 key store format):

keytool -importkeystore -srckeystore oldkeystore.jks -destkeystore newkeystore.p12 -deststoretype PKCS12

List new keystore file contents:

keytool -deststoretype PKCS12 -keystore newkeystore.p12 -list

Extract pem (certificate) from ".p12" keysotre file

openssl pkcs12 -nokeys -in newkeystore.p12 -out certfile.pem

Extract unencrypted key file from ".p12" keysotre file:

openssl pkcs12 -nocerts -nodes -in newkeystore.p12 -out keyfile.key<

Иногда требуется удалить из файла certfile.pem самый первый сертификат (для которого CN не равен имени домена)

HTTP авторизация в Nginx

Авторизация средствами http протокола. Таким способом можно закрыть доступ к определенным разделам на сайте.

Nginx должен быть собран с модулем ngx_http_auth_basic_module.

Описание директив:

auth_basic – текстовое сообщение при авторизации
auth_basic_user_file – полный путь к файлу с паролями

Пример конфига:

server {
       listen          *:80;
       server_name     my.server;

       root /var/www/my.server/htdocs/mysite

       location / {
              ...
       }
       
       location /admin {
               satisfy  any; # разрешить доступ если авторизация прошла успешно
               auth_basic		"admin site";
               auth_basic_user_file	/var/www/my.server/htdocs/mysite/.htpasswd;
       }
       location ~ /\.ht {
               # запрет на доступ к файлам .htpasswd и .htaccess
               deny  all;
       }
}

Создаем файл с пользователями:

htpasswd -c -d /var/www/my.server/htdocs/mysite/.htpasswd USERNAME

Для добавления последующих

htpasswd -d /var/www/my.server/htdocs/mysite/.htpasswd NEWUSERNAME

Перегенерация изображений

location /
{
   set $true 1;
   try_files /maintenance.html $uri @fallback;
   if($true) { set $expr 123; }
}
location @fallback
{
   proxy_pass 127.0.0.1:8080;
}

https://habrahabr.ru/post/74135/

Ссылки