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

Обратный прокси-сервер NGINX Apache, работающий на порту 8080 с owncloud

У меня nginx работает в качестве основного веб-сервера. Я установил owncloud с apache, работающим на порту 8080. Я знаю, что owncloud имеет неофициальную поддержку nginx сообществом, но я предпочитаю поддерживать официальную поддержку.

Моя текущая проблема заключается в том, что обратный прокси-сервер, похоже, не работает должным образом. Он продолжает загружать мой веб-сайт по умолчанию. Мой веб-сайт работает через облачную среду с гибким сертификатом SSL для HTTPS.

Однако я могу перейти на xxx.xxx.xxx.xxx:8080 и получить доступ к owncloud напрямую.

Основной конфиг nginx

user www-data;

worker_processes 2;
worker_rlimit_nofile 20480;

pid /run/nginx.pid;
include /etc/nginx/modules-enabled/*.conf;

events
{
    worker_connections 768;
    #    multi_accept            on;
}

http
{
    sendfile on;
    tcp_nopush on;
    tcp_nodelay on;
    keepalive_timeout 15;
    types_hash_max_size 2048;
    server_tokens off;

    #    log_format            main '$remote_addr - $remote_user [$time_local] "$request" $status  $body_bytes_sent "$http_referer" "$http_user_agent" "$http_x_forwarded_for"';
    log_format main 'xx.xx.xx.xx - $remote_user [$time_local] "$request" $status $body_bytes_sent "$http_referer" "$http_user_agent" "xx.xx.xx.xx"';

    include /etc/nginx/mime.types;
    default_type application/octet-stream;

    ssl_protocols TLSv1 TLSv1.1 TLSv1.2; # Dropping SSLv3, ref: POODLE
    ssl_prefer_server_ciphers on;

    access_log /var/log/nginx/access.log main;
    error_log /var/log/nginx/error.log;

    gzip on;
    gzip_disable "msie6";

    gzip_vary on;
    gzip_proxied any;
    gzip_comp_level 6;
    gzip_buffers 16 8k;
    gzip_http_version 1.1;
    gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;

    proxy_cache_path /tmp/nginx-filecache levels=1:2 keys_zone=FILES:10m inactive=7d max_size=800g;

    #include /etc/nginx/conf.d/*.conf;
    include /etc/nginx/sites-enabled/*;


}

Конфигурация nginx для apache

server {
    listen 80;
    listen 443 ssl;
    server_name gomn.net;

    root /var/www/owncloud;
    index index.php index.htm index.html;

    location / {
        try_files $uri $uri/ /index.php;
    }

    location ~ \.php$ {
        proxy_pass http://localhost:8080;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }

    location ~ /\. {
        deny all;
    }
}

Это моя конфигурация apache для owncloud

<VirtualHost *:8080>

    DocumentRoot /var/www/owncloud
    <FilesMatch \.php$>
        SetHandler "proxy:unix:/run/php/php7.0-fpm.sock|fcgi://localhost/"
    </FilesMatch>

    <Directory /var/www/owncloud/>
        Options +FollowSymlinks
        AllowOverride All

        <IfModule mod_dav.c>
            Dav off
        </IfModule>

        SetEnv HOME /var/www/owncloud
        SetEnv HTTP_HOME /var/www/owncloud

    </Directory>
    <Directory /var/www/owncloud/data/*/>
        Allow from None
        Order allow,deny
    </Directory>


    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined


</VirtualHost>

# vim: syntax=apache ts=4 sw=4 sts=4 sr noet

Когда Nginx является вашим основным веб-сервером, почему вы используете Apache? Owncloud отлично работает с Nginx (без Apache).

Вы должны настроить Nginx для использования вашего Apache в качестве восходящего потока, а не в вашем местоположении .php.

Попробуйте что-нибудь вроде:

upstream owncloud {
  server localhost:8080;
}

server {
  location / {
    proxypass http://owncloud;
  }
}

Для получения дополнительной информации см. документация по исходному направлению nginx