Базовый конфиг 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 редирект