Вопрос новичка здесь.
Я установил Parse-Server в своей капле Ubuntu, и в настоящее время я сталкиваюсь с проблемой. Мой ssl от letsencrypt
В этом файле
/etc/nginx/sites-enabled/default
У меня есть следующие
# HTTP - redirect all requests to HTTPS
server {
listen 80;
listen [::]:80 default_server ipv6only=on;
server_name example.com;
return 301 https://$host$request_uri;
}
# HTTPS - serve HTML from /usr/share/nginx/html, proxy requests to /parse/
# through to Parse Server
server {
listen 443;
server_name example.com;
root /usr/share/nginx/html;
index index.html index.htm;
ssl on;
# Use certificate and key provided by Let's Encrypt:
ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
ssl_session_timeout 5m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
ssl_ciphers 'EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH';
# Pass requests for /parse/ to Parse Server instance at localhost:1337
location /parse/ {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-NginX-Proxy true;
proxy_pass http://localhost:1337/;
proxy_ssl_session_reuse off;
proxy_set_header Host $http_host;
proxy_redirect off;
}
location /test/ {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-NginX-Proxy true;
proxy_pass http://localhost:1337/test/;
proxy_ssl_session_reuse off;
proxy_set_header Host $http_host;
proxy_redirect off;
}
location /dashboard/ {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-NginX-Proxy true;
proxy_pass http://localhost:4040/dashboard/;
proxy_ssl_session_reuse off;
proxy_set_header Host $http_host;
proxy_redirect off;
}
location / {
try_files $uri $uri/ =404;
}
}
Итак, следующие ссылки работают нормально
но они работают, потому что код файла по умолчанию работает нормально. Я не могу сделать это для всех каталогов, которые, например, в parse
выдает ошибку 404.
Есть ли способ сделать все страницы доступными, не настраивая их в default
файл?
Обновить
Поэтому, когда я помещаю это в свой файл по умолчанию
location /parse/ {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-NginX-Proxy true;
proxy_pass http://localhost:1337/parse/;
proxy_ssl_session_reuse off;
proxy_set_header Host $http_host;
proxy_redirect off;
}
Я не получаю ошибки 404. Это из-за proxy_pass http://localhost:1337/parse/
это отличается от первого файла, который я разместил здесь.
Но как я могу сделать это для ВСЕХ запросов независимо от того, /parse/
или /something/
и т.д? Я не могу прямо здесь ВСЕ папки и возможные ссылки, которые я создам на сервере. Потому что в этом домене я также установлю веб-сайт, на котором будет /assets/
и т. д., и для этого понадобится каждый. Нет ли кода для включения ВСЕХ возможных ссылок, которые будут созданы?
Если вы хотите, чтобы большинство запросов отправлялось на прокси, но обслуживали только некоторый контент непосредственно из nginx, вы можете использовать эту структуру:
location /path/to/nginx/content {
try_files $uri $uri/ =404;
}
location /dashboard {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-NginX-Proxy true;
proxy_pass http://localhost:4040/dashboard/;
proxy_set_header Host $http_host;
proxy_redirect off;
}
location / {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-NginX-Proxy true;
proxy_pass http://localhost:1337;
proxy_set_header Host $http_host;
proxy_redirect off;
}
Итак, сначала мы указываем исключения для процедуры по умолчанию, а затем случай по умолчанию.
Обратите внимание, что нет конца /
в proxy_pass
директива в случае по умолчанию. Это означает, что nginx добавит URI к запросу, отправляемому на прокси-сервер, то есть https://example.com/some/path
будет проксирован на http://localhost:1337/some/path
.
Я удалил proxy_ssl_session_reuse
директива, поскольку она ничего не значит, когда подключение к прокси выполняется с помощью http
.
Если прокси-соединения выполняются с https
, даже в этом случае бесполезно отключать повторное использование сеанса, поскольку это снижает производительность из-за согласования нового сеанса SSL при каждом запросе к прокси.
Затем нужно убедиться, что root
Директива указывает правильный каталог, в котором nginx может найти статические ресурсы. Для root
опция в вашей конфигурации, https://example.com/path/to/nginx/content/example.gif
должен быть в /usr/share/nginx/html/path/to/nginx/content/example.gif
в файловой системе.