1
0
Fork 0
digitalstudium.com/content/ru/nginx-lifehacks/nginx-configs-examples.md

86 lines
2.2 KiB
Markdown
Raw Normal View History

2023-03-26 14:41:19 +00:00
---
title: "Nginx: примеры конфигурационных файлов"
2023-04-23 14:56:27 +00:00
date: 2023-03-26
2023-03-26 14:41:19 +00:00
---
2023-05-19 09:47:46 +00:00
Иногда возникает потребность быстро создать конфигурационный файл nginx: для хостинга статического вебсайта, для проксирования запросов к какому-либо серверу и т. п.
2023-03-26 14:41:19 +00:00
В данной статье приведены простые примеры конфигов Nginx для разных целей.
2023-04-23 14:56:27 +00:00
2023-03-26 14:41:19 +00:00
<!--more-->
2023-04-23 14:56:27 +00:00
2023-03-26 14:41:19 +00:00
Чтобы нижеприведенные конфиги заработали, нужно положить их по пути `/etc/nginx/conf.d/<some_name>.conf`, затем проверить
валидность конфига:
2023-04-23 14:56:27 +00:00
2023-03-26 14:41:19 +00:00
```bash
nginx -t
```
2023-04-23 14:56:27 +00:00
2023-03-26 14:41:19 +00:00
Затем выполнить команду для применения конфига:
2023-04-23 14:56:27 +00:00
2023-03-26 14:41:19 +00:00
```bash
sudo service nginx reload
```
2023-04-23 14:56:27 +00:00
2023-03-26 14:41:19 +00:00
## Пример 1: хостинг статического сайта.
2023-04-23 14:56:27 +00:00
```nginx
2023-03-26 14:41:19 +00:00
server {
listen 80;
server_name example.com www.example.com;
2023-05-12 12:00:52 +00:00
access_log /var/log/nginx/example.com.log;
2023-03-26 14:41:19 +00:00
location / {
root /var/www/example.com;
index index.html;
}
}
```
2023-04-23 14:56:27 +00:00
2023-03-26 14:41:19 +00:00
## Пример 2: проксирующий сервер
2023-04-23 14:56:27 +00:00
```nginx
2023-03-26 14:41:19 +00:00
server {
listen 80;
server_name example.com www.example.com;
2023-05-19 09:47:46 +00:00
access_log /var/log/nginx/example.com.log;
2023-03-26 14:41:19 +00:00
location / {
proxy_pass http://127.0.0.1:5000;
proxy_buffering off;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Port $server_port;
}
}
```
2023-04-23 14:56:27 +00:00
2023-03-26 14:41:19 +00:00
## Пример 3: кэширующий прокси
2023-04-23 14:56:27 +00:00
2023-03-26 14:41:19 +00:00
В `/etc/nginx/nginx.conf` добавить:
2023-04-23 14:56:27 +00:00
```nginx
2023-03-26 14:41:19 +00:00
http {
2023-04-23 15:33:17 +00:00
proxy_cache_path /data/nginx/cache levels=1:2 keys_zone=STATIC:10m;
2023-03-26 14:41:19 +00:00
inactive=24h max_size=1g;
}
```
2023-04-23 14:56:27 +00:00
2023-03-26 14:41:19 +00:00
В `/etc/nginx/conf.d` положить такой конфиг:
2023-04-23 14:56:27 +00:00
```nginx
2023-03-26 14:41:19 +00:00
server {
listen 80;
server_name example.com www.example.com;
2023-05-19 09:47:46 +00:00
access_log /var/log/nginx/example.com.log;
2023-03-26 14:41:19 +00:00
location / {
proxy_pass http://1.2.3.4;
proxy_set_header Host $host;
proxy_cache STATIC;
proxy_cache_valid 200 1d;
2023-04-23 15:33:17 +00:00
proxy_cache_use_stale error timeout invalid_header updating http_500 http_502 http_503 http_504;
2023-03-26 14:41:19 +00:00
}
}
2023-04-23 14:56:27 +00:00
```