Базовый конфиг ngnx сервера

Конфиг nginx

_x000D_server {_x000D_ listen 80;_x000D_ server_name domain.com www.domain.com;_x000D_ root /var/www/domain.com/web;_x000D_ _x000D_ index index.php;_x000D_ autoindex off;_x000D__x000D_ # Let's encrypt_x000D_ location ~ /.well-known {_x000D_  root /var/www/html;_x000D_  allow all;_x000D_  break;_x000D_ }_x000D_ _x000D_ # Deny folders_x000D_ location ~ /.cgi.* { deny all; }_x000D_ location ~ /.svn.* { deny all; }_x000D_ location ~ /.hg.* { deny all; }_x000D_ location ~ /.ht.* { deny all; }_x000D_ location ~ /.git.* { deny all; }_x000D_ location ~ /composer.* { deny all; }_x000D_ location ~ /node_modules.* { deny all; }_x000D_ location ~ /vendor.* { deny all; }_x000D_ location ~ .sql$ { deny all; } _x000D_ _x000D_ # Search Engine Friendly URLs_x000D_ location / {_x000D_  if (-f $request_filename) {_x000D_   break;_x000D_  }_x000D_  rewrite ^/. /index.php last;_x000D_ } _x000D_ _x000D_ # PHP FPM for index.php_x000D_ location /index.php {_x000D_  fastcgi_pass 127.0.0.1:9071;_x000D_  fastcgi_index index.php;_x000D_  fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;_x000D_  include fastcgi_params;_x000D_  break;_x000D_ }_x000D_ _x000D_ # Enable cache_x000D_ location ~* ^.+.(css|js|jpg|jpeg|png|bmp|ico|svg)$ {_x000D_  expires max;_x000D_ }_x000D_}

Proxy Pass

Чтобы добавить proxy pass пропишите в начале файла:

_x000D_upstream test.example {_x000D_ server 127.0.0.1:80;_x000D_}

В конфиге с настройкой хоста:

_x000D_location /test/ {_x000D_ proxy_pass http://test.example/;_x000D_ include proxy_params;_x000D__x000D_ # Включить вебсокеты_x000D_ proxy_http_version 1.1;_x000D_ proxy_set_header Upgrade $http_upgrade;_x000D_ proxy_set_header Connection "upgrade";_x000D_}
Подробнее про nginx прокси

Редирект на https

Чтобы добавить редирект, укажите в nginx конфиге следующие строки:

_x000D_if ($ssl_protocol = ""){_x000D_ rewrite ^/(.*) https://$server_name/$1 permanent;_x000D_}_x000D_

еще один вариант:

_x000D_if ($scheme = http) {_x000D_ return 301 https://$host$request_uri;_x000D_}

еще вариант, если nginx стоит за другим nginx:

_x000D_if ($http_x_forwarded_proto != "https"){_x000D_ return 301 https://$host$request_uri;_x000D_}

Редирект с www на без www

_x000D_if ($host ~* www.(.*)) {_x000D_ set $domain $1;_x000D_ return 301 $scheme://$domain$request_uri;_x000D_}

Ссылки на полезные материал

  1. Настройка Lets Encrypt для Nginx
  2. Nginx редирект