Назад | Перейти на главную страницу

Nginx обратное проксирование контента Drupal, обслуживаемого Apache

Я новичок в Nginx, но мне было интересно попробовать.

Теперь у меня есть Nginx, который прослушивает порт 80 и обслуживает статический HTML-контент из / srv / www для основного «промо-сайта». Я также настроил apache2 для обслуживания контента из того же места на localhost: 8080. В этом месте у меня есть папка под названием beta, содержащая установку Drupal, которую я хотел бы использовать с Apache вместо Nginx.

Мне успешно удалось настроить Nginx, чтобы запросы, идущие на example.com/beta, обслуживались Apache, а файлы правильно отображались в браузере, за исключением любых файлов php, связанных с Drupal. info.php (<?php phpinfo(); ?>) тоже работает. Для любого из php-файлов, связанных с Drupal, я получаю стандартную ошибку 500.

Мои файлы конфигурации для apache и nginx ниже:

Apache:

<VirtualHost 127.0.0.1:8080>
    ServerAdmin webmaster@localhost

    DocumentRoot /srv/www
    <Directory />
            Options FollowSymLinks
            AllowOverride None
    </Directory>
    <Directory /srv/www>
            Options Indexes FollowSymLinks MultiViews
            AllowOverride None
            Order allow,deny
            allow from all
    </Directory>

    ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
    <Directory "/usr/lib/cgi-bin">
            AllowOverride None
            Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
            Order allow,deny
            Allow from all
    </Directory>

    ErrorLog ${APACHE_LOG_DIR}/error.log
    AddType application/x-httpd-php .php

    # Possible values include: debug, info, notice, warn, error, crit,
    # alert, emerg.
    LogLevel warn

    CustomLog ${APACHE_LOG_DIR}/access.log combined

Alias /doc/ "/usr/share/doc/"
<Directory "/usr/share/doc/">
    Options Indexes MultiViews FollowSymLinks
    AllowOverride None
    Order deny,allow
    Deny from all
    Allow from 127.0.0.0/255.0.0.0 ::1/128
</Directory>

</VirtualHost>

Nginx:

server {
    #listen   80; ## listen for ipv4; this line is default and implied
    #listen   [::]:80 default ipv6only=on; ## listen for ipv6

    root /usr/share/nginx/www;
    index index.html index.php index.htm;

    # Make site accessible from http://localhost/
    server_name example.com;

    location / {
            # First attempt to serve request as file, then
            # as directory, then fall back to index.html
            try_files $uri $uri/ /index.html;
            # Uncomment to enable naxsi on this location
            # include /etc/nginx/naxsi.rules
    }

    location /doc/ {
            alias /usr/share/doc/;
            autoindex on;
            allow 127.0.0.1;
            deny all;
    }

  #THIS BIT IS FOR DRUPAL
    location ~ ^/beta {
            proxy_pass http://127.0.0.1:8080;
            include /etc/nginx/proxy_params;
            index index.php index.html index.htm;
   }
}