Базовый конфиг 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_}