Я даю ниже файл /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. Однако это легко может привести к непредвиденным проблемам.