Я даю ниже файл /etc/nginx/sites-available/default
file
server { listen 443 ssl; server_name example.com; root /var/www/html; index index.php index.html; location / { try_files $uri $uri/ = 404; } location /rproxy/ { proxy_pass https://example.org:8144/; } location ~ \.php$ { try_files $uri = 404; fastcgi_split_path_info ^(.+\.php)(/.+)$; .... }
Сервер example.org:8144
имеет файлы и
index.php
– возвращает привет bonjour.php
– возвращает bonjour Теперь вот вопрос:
Если я перейду на https://example.com/rproxy
он быстро вернет привет мир – ожидаемый результат.
Однако, если я просматриваю https://example.com/rproxy/bonjour.php
(или даже https://example.com/rproxy/index.php
), я получаю 404 error
.
Я понимаю, что здесь происходит. Моя конфигурация Nginx приводит к тому, что экземпляр example.ru Nginx пытается найти все *.php
файлы локально (т.е. на example.com
), который не работает, когда файл, который я ищу, на самом деле находится на example.org:8144
.
Я полагаю, что существует относительно простой способ рассказать Nginx
когда НЕ пытаться выполнить файл PHP
– когда это действительно на rproxy. Тем не менее, мои знания о путанице Nginx
слишком ограничены для меня, чтобы понять, как я изменяю конфигурацию. Я был бы самым обязанным всем, кто мог бы сказать мне, как изменить конфигурацию, чтобы это не происходило.
Я должен прояснить кое-что здесь:
Мне нужно иметь возможность запускать PHP-скрипты на обоих SERVERS example.com
и example.org
.
Здесь очень простое решение – я использую другое расширение, например php5, для скриптов php на прокси-сервере, example.org. Однако это легко может привести к непредвиденным проблемам.