На этой странице находятся готовые конфигурации Nginx, которые вы можете использовать на вашем сервере.
Конфигурации для Linux подходят для использования на всех ОС семейства Linux (Debian, Ubuntu, Centos, Rhel и др.).
Конфигурации для Windows предназначены только для серверов на ОС Windows.
Конфигурации для HTTP используются для сайтов, доступных по незащищенному соединению.
Конфигурации для HTTPS используются, если у вашего веб-сайта будет SSL-защита. Вам понадобится сертификат и закрытый ключ. Для конфигураций HTTPS обычно также добавляется файл перенаправления с HTTP (или же это может быть часть имеющейся конфигурации), чтобы люди, по какой-то причине открывающие сайт по HTTP, автоматически перенаправлялись на HTTPS.
Конфигурации для трёх доменов (рекомендуется) используются, когда у вас зарегистрирован отдельный домен для каждого из сервисов (панель администратора, пользовательский интерфейс и API).
Конфигурации для одного домена (не рекомендуется) используются, когда вместо отдельных доменов, API панель администратора и пользовательский интерфейс - это субдиректории веб-сайта.
В конфигурациях вы можете увидеть следующие переменные значения. Вам необходимо самостоятельно отредактировать конфигурации и заменить переменные на фактические значения, которые вы будете использовать. Символы $ и {} нужно удалить.
${api.domain} = домен для API-сервера;
${panel.domain} = домен для панели администратора;
${ui.domain} = домен для пользовательского интерфейса (панели мониторинга);
${base.domain} = базовый домен в конфигурациях с одним доменом;
${ssl_cert_path} = путь к SSL-сертификату;
${ssl_key_path} = путь к закрытому ключу сертификата.
Linux
server { listen 80 default_server; ## listen for ipv4 client_max_body_size 20m; location /api { proxy_pass http://127.0.0.1:8084/; rewrite /api/(.*) /$1 break; access_log /var/log/nginx/api.access.log; proxy_redirect off; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } location /api/event { proxy_pass http://127.0.0.1:8084/event; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection $connection_upgrade; proxy_buffering off; proxy_ignore_client_abort off; break; } location /api/file/upload/ { proxy_pass http://127.0.0.1:8084/file/upload/; proxy_send_timeout 5m; client_max_body_size 16m; } location /api/file/dl/ { proxy_pass http://127.0.0.1:8084/file/dl/; } location /api/file/preview/ { proxy_cache images; proxy_cache_valid 200 24h; proxy_pass http://127.0.0.1:18888/file/preview/; } location /api/console { proxy_pass http://127.0.0.1:8383/console; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; proxy_read_timeout 1000s; } location /panel { index index.html; add_header Access-Control-Allow-Origin *; alias /var/www/panel-v2/; access_log /var/log/nginx/panel.access.log; } location / { index index.html; add_header Access-Control-Allow-Origin *; root /var/www/pro-ui/; access_log /var/log/nginx/my.access.log; } }
server { listen 443 ssl; ## listen for ipv4 # listen [::]:443 default ipv6only=on; ## listen for ipv6 server_name ${base.domain}; client_max_body_size 20m; ssl_certificate ${ssl_cert_path}; ssl_certificate_key ${ssl_key_path}; # ssl on; ssl_session_cache shared:SSL:10m; ssl_session_timeout 10m; location /api { access_log /var/log/nginx/api.access.log; proxy_redirect off; rewrite /api/(.*) /$1 break; 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_pass http://127.0.0.1:8084; } location /api/event { proxy_pass http://127.0.0.1:8084/event; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection $connection_upgrade; proxy_buffering off; proxy_ignore_client_abort off; break; } location /api/console { proxy_pass http://127.0.0.1:8383/console; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; proxy_read_timeout 1000s; } location /api/file/upload/ { proxy_pass http://127.0.0.1:8084/file/upload/; proxy_send_timeout 5m; client_max_body_size 16m; } location /api/file/dl/ { proxy_pass http://127.0.0.1:8084/file/dl/; } location /api/file/preview/ { proxy_cache images; proxy_cache_valid 200 24h; proxy_pass http://127.0.0.1:18888/file/preview/; } location /panel { index index.html; add_header Access-Control-Allow-Origin *; alias /var/www/panel-v2/; access_log /var/log/nginx/panel.access.log; } location / { index index.html; add_header Access-Control-Allow-Origin *; root /var/www/pro-ui/; access_log /var/log/nginx/my.access.log; } location ~ images/\w*\.(png|jpg) { root /var/www/; } }
server { listen 80; ## listen for ipv4 # listen [::]:80 default ipv6only=on; ## listen for ipv6 server_name ${api.domain}; access_log /var/log/nginx/${api.domain}.access.log; client_max_body_size 20m; location / { proxy_pass http://127.0.0.1:8084; proxy_redirect off; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } location /event { proxy_pass http://127.0.0.1:8084/event; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection $connection_upgrade; proxy_buffering off; proxy_ignore_client_abort off; break; } location /file/upload/ { proxy_pass http://127.0.0.1:8084/file/upload/; proxy_send_timeout 5m; client_max_body_size 16m; } location /file/dl/ { proxy_pass http://127.0.0.1:8084/file/dl/; } location /file/preview/ { proxy_cache images; proxy_cache_valid 200 24h; proxy_pass http://127.0.0.1:18888/file/preview/; } } server { listen 80; ## listen for ipv4 # listen [::]:80; ## listen for ipv6 server_name ${panel.domain}; access_log /var/log/nginx/${panel.domain}.access.log; client_max_body_size 20m; location / { index index.html; add_header Access-Control-Allow-Origin *; root /var/www/panel-v2/; } } server { listen 80; ## listen for ipv4 # listen [::]:80; ## listen for ipv6 server_name ${ui.domain}; access_log /var/log/nginx/${ui.domain}.access.log; client_max_body_size 20m; location / { index index.html; add_header Access-Control-Allow-Origin *; root /var/www/pro-ui/; } location ~ images/\w*\.(png|jpg|jpeg) { root /var/www/; } }
server { listen 443 ssl; ## listen for ipv4 # listen [::]:443 default ipv6only=on; ## listen for ipv6 server_name ${api.domain}; access_log /var/log/${api.domain}.access.log; client_max_body_size 20m; ssl_certificate ${ssl_cert_path}; ssl_certificate_key ${ssl_key_path}; # ssl on; ssl_session_cache shared:SSL:10m; ssl_session_timeout 10m; location / { proxy_redirect off; 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_pass http://127.0.0.1:8084; } location /event { proxy_pass http://127.0.0.1:8084/event; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection $connection_upgrade; proxy_buffering off; proxy_ignore_client_abort off; break; } location /console { proxy_pass http://127.0.0.1:8383/console; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; proxy_read_timeout 1000s; } location /file/upload/ { proxy_pass http://127.0.0.1:8084/file/upload/; proxy_send_timeout 5m; client_max_body_size 16m; } location /file/dl/ { proxy_pass http://127.0.0.1:8084/file/dl/; } location /file/preview/ { proxy_cache images; proxy_cache_valid 200 24h; proxy_pass http://127.0.0.1:18888/file/preview/; } } server { listen 443 ssl; ## listen for ipv4 # listen [::]:443; ## listen for ipv6 server_name ${panel.domain}; access_log /var/log/${panel.domain}.access.log; client_max_body_size 20m; ssl_certificate ${ssl_cert_path}; ssl_certificate_key ${ssl_key_path}; # ssl on; ssl_session_cache shared:SSL:10m; ssl_session_timeout 10m; location / { index index.html; add_header Access-Control-Allow-Origin *; root /var/www/panel-v2/; } } server { listen 443 ssl; ## listen for ipv4 # listen [::]:443; ## listen for ipv6 server_name ${ui.domain}; access_log /var/log/${ui.domain}.access.log; client_max_body_size 20m; ssl_certificate ${ssl_cert_path}; ssl_certificate_key ${ssl_key_path}; # ssl on; ssl_session_cache shared:SSL:10m; ssl_session_timeout 10m; location / { index index.html; add_header Access-Control-Allow-Origin *; root /var/www/pro-ui/; } location ~ images/\w*\.(png|jpg|jpeg) { root /var/www/; } }
Windows
server { listen 80; ## listen for ipv4 client_max_body_size 20m; location /api { proxy_pass http://127.0.0.1:8084/; rewrite /api/(.*) /$1 break; access_log logs/api.access.log; proxy_redirect off; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } location /api/event { proxy_pass http://127.0.0.1:8084/event; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection $connection_upgrade; proxy_buffering off; proxy_ignore_client_abort off; break; } location /api/file/upload/ { proxy_pass http://127.0.0.1:8084/file/upload/; proxy_send_timeout 5m; client_max_body_size 16m; } location /api/file/dl/ { proxy_pass http://127.0.0.1:8084/file/dl/; } location /api/console { proxy_pass http://127.0.0.1:8383/console; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; proxy_read_timeout 1000s; } location /panel { index index.html; add_header Access-Control-Allow-Origin *; alias www/panel-v2/; access_log logs/panel.access.log; } location / { index index.html; add_header Access-Control-Allow-Origin *; root www/pro-ui/; access_log logs/ui.access.log; } location ~ images/\w*\.(png|jpg|jpeg) { root www/; } }
server { listen 443 ssl; ## listen for ipv4 # listen [::]:80 default ipv6only=on; ## listen for ipv6 server_name ${base.domain}; client_max_body_size 20m; ssl_certificate ${ssl_cert_path}; ssl_certificate_key ${ssl_key_path}; # ssl on; ssl_session_cache shared:SSL:10m; ssl_session_timeout 10m; location /api { proxy_pass http://127.0.0.1:8084; rewrite /api/(.*) /$1 break; access_log logs/api.access.log; proxy_redirect off; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } location /api/event { proxy_pass http://127.0.0.1:8084/event; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection $connection_upgrade; proxy_buffering off; proxy_ignore_client_abort off; break; } location /api/console { proxy_pass http://127.0.0.1:8383/console; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; proxy_read_timeout 1000s; } location /api/file/upload/ { proxy_pass http://127.0.0.1:8084/file/upload/; proxy_send_timeout 5m; client_max_body_size 16m; } location /api/file/dl/ { proxy_pass http://127.0.0.1:8084/file/dl/; } location /panel { index index.html; add_header Access-Control-Allow-Origin *; alias www/panel-v2/; access_log logs/panel.access.log; } location / { index index.html; add_header Access-Control-Allow-Origin *; access_log logs/ui.access.log; root www/pro-ui/; } location ~ images/\w*\.(png|jpg|jpeg) { root www/; } }
server { listen 80; ## listen for ipv4 # listen [::]:80 default ipv6only=on; ## listen for ipv6 server_name ${api.domain}; access_log logs/${api.domain}.ssl.access.log; client_max_body_size 20m; location / { proxy_pass http://127.0.0.1:8084; proxy_redirect off; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } location /event { proxy_pass http://127.0.0.1:8084/event; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection $connection_upgrade; proxy_buffering off; proxy_ignore_client_abort off; break; } location /console { proxy_pass http://127.0.0.1:8383/console; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; proxy_read_timeout 1000s; } location /file/upload/ { proxy_pass http://127.0.0.1:8084/file/upload/; proxy_send_timeout 5m; client_max_body_size 16m; } location /file/dl/ { proxy_pass http://127.0.0.1:8084/file/dl/; } } server { listen 80; ## listen for ipv4 # listen [::]:80; ## listen for ipv6 server_name ${panel.domain}; access_log logs/${panel.domain}.access.log; client_max_body_size 20m; location / { index index.html; add_header Access-Control-Allow-Origin *; root www/panel-v2/; } } server { listen 80; ## listen for ipv4 # listen [::]:80; ## listen for ipv6 server_name ${ui.domain}; access_log logs/${ui.domain}.access.log; client_max_body_size 20m; location / { index index.html; add_header Access-Control-Allow-Origin *; root www/pro-ui/; } location ~ images/\w*\.(png|jpg|jpeg) { root www/; } }
server { listen 443 ssl; ## listen for ipv4 # listen [::]:443 default ipv6only=on; ## listen for ipv6 server_name ${api.domain}; access_log logs/${api.domain}.ssl.access.log; client_max_body_size 20m; ssl_certificate ${ssl_cert_path}; ssl_certificate_key ${ssl_key_path}; # ssl on; ssl_session_cache shared:SSL:10m; ssl_session_timeout 10m; location / { proxy_redirect off; 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_pass http://127.0.0.1:8084; } location /event { proxy_pass http://127.0.0.1:8084/event; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection $connection_upgrade; proxy_buffering off; proxy_ignore_client_abort off; break; } location /console { proxy_pass http://127.0.0.1:8383/console; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; proxy_read_timeout 1000s; } location /file/upload/ { proxy_pass http://127.0.0.1:8084/file/upload/; proxy_send_timeout 5m; client_max_body_size 16m; } location /file/dl/ { proxy_pass http://127.0.0.1:8084/file/dl/; } } server { listen 443 ssl; ## listen for ipv4 # listen [::]:443; ## listen for ipv6 server_name ${panel.domain}; access_log logs/${panel.domain}.ssl.access.log; client_max_body_size 20m; ssl_certificate ${ssl_cert_path}; ssl_certificate_key ${ssl_key_path}; # ssl on; ssl_session_cache shared:SSL:10m; ssl_session_timeout 10m; location / { index index.html; add_header Access-Control-Allow-Origin *; root www/panel-v2/; } } server { listen 443 ssl; ## listen for ipv4 # listen [::]:443; ## listen for ipv6 server_name ${ui.domain}; access_log logs/${ui.domain}.ssl.access.log; client_max_body_size 20m; ssl_certificate ${ssl_cert_path}; ssl_certificate_key ${ssl_key_path}; # ssl on; ssl_session_cache shared:SSL:10m; ssl_session_timeout 10m; location / { index index.html; add_header Access-Control-Allow-Origin *; root www/pro-ui/; } location ~ images/\w*\.(png|jpg|svg) { root www/; } }
Перенаправление HTTP-HTTPS
Когда вы используете HTTPS, вам может быть необходимо, чтобы ваши пользователи могли попасть на платформу, даже если они открывают адрес вашего сайта через HTTP. Для этого вам нужно настроить перенаправление HTTP-HTTPS. Это может быть либо частью существующей конфигурации (просто дополните её), либо это может быть отдельный файл, расположенный в той же директории.
Перенаправление работает одинаково для Linux и Windows, единственное различие заключается в количестве используемых доменов.
server { listen 80; server_name ${base.domain}; location / { return 301 https://${base.domain}$request_uri; } }
server { listen 80; server_name ${api.domain}; location / { return 301 https://${api.domain}$request_uri; } } server { listen 80; server_name ${panel.domain}; location / { return 301 https://${panel.domain}$request_uri; } } server { listen 80; server_name ${ui.domain}; location / { return 301 https://${ui.domain}$request_uri; } }