सवाल Nginx पता पुनर्निर्देशन / नाम परिवर्तन


मैंने एक अगला क्लाउड सर्वर बनाया है और इसे www.domain.com/name पते के साथ अपने Nginx रिवर्स प्रॉक्सी सर्वर के माध्यम से उपलब्ध होना चाहता हूं।

मैंने नेक्सक्लाउड को एनजीएनएक्स वेबसर्वर (अपाचे के बजाए) के साथ विभिन्न ट्यूटोरियल्स का इस्तेमाल किया

मैंने क्या किया :

  • नेक्सक्लाउड सर्वर का नाम: 1 9 2.168.1.111
  • Nginx पता: www.domain.com/nextcloud

मुझे क्या उम्मीद है :

Www.domain.com/nextcloud पर क्लिक करें और https: // ip को देखे बिना अगली क्लाउड सर्वर पर जाएं

मुझे क्या मिला :

  • https: // आईपी काम करता है
  • www.domain.com/nextcloud काम लेकिन आईपी दिखाता है

मैं किस चीज को देखना चाहता हूं, यह जांच कर रहा हूं कि क्या पता लगाने के लिए nginx में कोई विकल्प है, लेकिन मुझे कुछ भी खत्म नहीं लग रहा है, मैं बस सर्कल में चल रहा हूं, कोई भी सुझाव महान होगा।

नेक्सक्लाउड कॉन्फ़िगरेशन:

# upstream php-handler {
#    server 127.0.0.1:9000;
#    #server unix:/var/run/php5-fpm.sock;
# }

server {
    listen 8080;
    server_name 192.168.1.111;
    return 301 https://$server_name$request_uri; }

server {
    listen 443 ssl;
    server_name 192.168.1.111;
    root /var/www/nextcloud;

    ssl on;
    ssl_certificate /etc/ssl/certs/www.opeq.biz.crt;
    ssl_certificate_key /etc/ssl/private/www.opeq.biz.key;
    ssl_session_timeout 5m;
    ssl_ciphers               'AES128+EECDH:AES128+EDH:!aNULL';
    ssl_protocols              TLSv1 TLSv1.1 TLSv1.2;
    ssl_prefer_server_ciphers on;

    add_header X-Content-Type-Options nosniff;
    add_header X-Frame-Options "SAMEORIGIN";
    add_header X-XSS-Protection "1; mode=block";
    add_header X-Robots-Tag none;
    add_header X-Download-Options noopen;
    add_header X-Permitted-Cross-Domain-Policies none;

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

    location = /robots.txt {
        allow all;
        log_not_found off;
        access_log off;
    }

    location = /.well-known/carddav {
      return 301 $scheme://$host/remote.php/dav;
    }
    location = /.well-known/caldav {
      return 301 $scheme://$host/remote.php/dav;
    }

    client_max_body_size 10G;
    fastcgi_buffers 64 4K;
    gzip off;

    error_page 403 /nextcloud/core/templates/403.php;
    error_page 404 /nextcloud/core/templates/404.php;
    location / {
        rewrite ^ /index.php$uri;
    }

    location ~ ^/(?:build|tests|config|lib|3rdparty|templates|data)/ {
        deny all;
    }
    location ~ ^/(?:\.|autotest|occ|issue|indie|db_|console) {
        deny all;
    }

    location ~ ^/(?:index|remote|public|cron|core/ajax/update|status|ocs/v[12]|updater/.+|ocs-provider/.+|core/templates/40[34])\.php(?:$|/)
{
        include fastcgi_params;
        fastcgi_split_path_info ^(.+\.php)(/.*)$;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_param PATH_INFO $fastcgi_path_info;
        fastcgi_param HTTPS on;
        fastcgi_param modHeadersAvailable true;
        fastcgi_param front_controller_active true;
        fastcgi_pass unix:/var/run/php/php7.0-fpm.sock;
        fastcgi_intercept_errors on;
        fastcgi_request_buffering off;
    }

    location ~ ^/(?:updater|ocs-provider)(?:$|/) {
        try_files $uri/ =404;
        index index.php;
    }

    location ~* \.(?:css|js)$ {
        try_files $uri /index.php$uri$is_args$args;
        add_header Cache-Control "public, max-age=7200";
        add_header X-Content-Type-Options nosniff;
        add_header X-Frame-Options "SAMEORIGIN";
        add_header X-XSS-Protection "1; mode=block";
        add_header X-Robots-Tag none;
        add_header X-Download-Options noopen;
        add_header X-Permitted-Cross-Domain-Policies none;
        access_log off;
    }

    location ~* \.(?:svg|gif|png|html|ttf|woff|ico|jpg|jpeg)$ {
        try_files $uri /index.php$uri$is_args$args;
        access_log off;
    }

   location ~ /\.ht {
    deny all;   } }

Nextcloud config.php:

<?php
$CONFIG = array (
  'instanceid' => 'stuff',
  'passwordsalt' => 'more stuff',
  'secret' => 'even more stuff',
  'trusted_domains' => 
  array (
    0 => '192.168.1.111',
    1 => 'domain.com',
    2 => 'share',
    3 => 'nextcloud',
  ),
  'trusted_proxies' => ['192.168.1.5'],
  'datadirectory' => '/home/nextcloud',
  'dbtype' => 'mysql',
  'version' => '11.0.1.2',
  'dbname' => 'nextcloud',
  'dbhost' => 'localhost',
  'dbport' => '',
  'dbtableprefix' => 'oc_',
  'dbuser' => 'admin-nextcloud',
  'dbpassword' => 'password',
  'logtimezone' => 'UTC',
  'installed' => true,
  'memcache.local' => '\\OC\\Memcache\\APCu',
  'memcache.locking' => '\\OC\\Memcache\\Redis',
  'filelocking.enabled' => 'true',
  'redis' => 
  array (
    'host' => '/var/run/redis/redis.sock',
    'port' => 0,
    'timeout' => 0.0,
  ),
  'htaccess.RewriteBase' => '/',
  'ldapIgnoreNamingRules' => false,
  'ldapProviderFactory' => '\\OCA\\User_LDAP\\LDAPProviderFactory',
);

एनजीआईएनएक्स कॉन्फ़िगरेशन:

server {
     listen 80;
     return 301 https://$host$request_uri; }

 server {

     listen 443;
     server_name nginx.domain.com;

     ssl_certificate           /etc/nginx/ssl/www.domain.com.crt;
     ssl_certificate_key       /etc/nginx/ssl/www.domain.com.key;

     ssl on;
     ssl_session_cache  builtin:1000  shared:SSL:10m;
     ssl_protocols  TLSv1 TLSv1.1 TLSv1.2;
     ssl_ciphers HIGH:!aNULL:!eNULL:!EXPORT:!CAMELLIA:!DES:!MD5:!PSK:!RC4;
     ssl_prefer_server_ciphers on;

     access_log            /var/log/nginx/domain.access.log;

      error_page 404 /custom_404.html;
      location = /custom_404.html {
               root /usr/share/nginx/html;
               internal;
      }

      error_page 500 502 503 504 /custom_50x.html;
      location = /custom_50x.html {
              root /usr/share/nginx/html;
              internal;
      }

     location /nextcloud/ {

 #      proxy_pass        http:// 192.168.1.111:8080/;
       proxy_redirect      http:// 192.168.1.111:8080 https:// 192.168.1.111;

       proxy_set_header        Host $host;
       proxy_set_header        X-Real-IP $remote_addr;
 #      proxy_set_header        X-NginX-Proxy true;
       proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
       proxy_set_header        X-Forwarded-Proto $scheme;
 #      proxy_set_header X-Forwarded-For $remote_addr;
         proxy_headers_hash_max_size 512;
         proxy_headers_hash_bucket_size 64;

       add_header Front-End-Https on;
       # Fix the “It appears that your reverse proxy set up is broken" error.
 #      proxy_read_timeout  90;

      }

मेरे पास प्रॉक्सी पर कुछ अन्य साइटें हैं जो सभी काम करती हैं। केवल Nextcloud में यह समस्या है।

संपादित करें: मैं फिर से अपाचे में वापस चला गया और एक साफ इंस्टॉल के साथ भी मुझे एक ही समस्या मिलती है। अगर मैं रिवाइट / इंजन / कंड / नियम निकालता हूं तो मैं साइट को अच्छे नाम से एक्सेस कर सकता हूं लेकिन केवल अपाचे डिफ़ॉल्ट पृष्ठ। अगर मैं रीराइट मॉड्यूल जोड़ता हूं तो यह बंद हो जाता है। अभी भी इसे समझने की कोशिश कर रहा है।


2
2018-02-24 16:06


मूल


अपाचे क्यों है? क्या आप अभी उपयोग नहीं कर सकते nginx सीधे, apache / nginx fussing करने के बिना? - Thomas Ward♦
मैं वास्तव में समझ में नहीं आता कि आपका क्या मतलब है क्योंकि मुझे वेब पर अगली क्लाउड रखने के लिए अपाचे की आवश्यकता है? - Carobell
NGINX के साथ सीधे काम करने के लिए नेक्स्टक्लाउड सेट अप करने पर नेक्स्टक्लाउड दस्तावेज़ आपके बयान से अलग है। यही है, आपको जरूरत नहीं है दो सामान्य सर्वर, अगली क्लाउड चलाने के लिए वेब सर्वर। - Thomas Ward♦
मैं अपनी आखिरी टिप्पणी में जो मतलब था उसका पुन: प्रयास करूंगा; अगली क्लाउड वॉक-थ्रू ने मुझे अपाचे का उपयोग किया, nginx walk-through मुझे उस कॉन्फ़िगरेशन में जोड़ने के लिए कहता है। यही वह है जो मैंने उससे समझा। मैं समझता हूं कि मुझे पूरी तरह से अपाचे को अनइंस्टॉल करना चाहिए और अगली क्लाउड सर्वर पर nginx इंस्टॉल करना चाहिए, भले ही मेरे पास पहले से ही nginx सर्वर है? या nclx सर्वर में अगला क्लाउड स्थापित होना चाहिए (जो सुरक्षा कारणों से संभव नहीं है) - Carobell
जैसा कि सुझाव दिया गया है कि मैं websachever nextcloud उपयोगों के लिए अपाचे से nginx में बदल गया। मुझे खुद को एक ही समस्या है। संपादित प्रश्न - Carobell


जवाब:


मैंने नेक्स्टक्स के साथ नेक्स्टक्स के साथ थोड़ी देर के लिए इस्तेमाल किया, लेकिन पाया कि यह वास्तव में अपाचे पर मेरे लिए सबसे अच्छा काम करता है और मैंने अभी वापस स्विच किया है। हालांकि मैंने Nginx सर्वर कॉन्फ़िगरेशन को सहेजा है जिसे मैंने हाल ही में उपयोग किया था और यह परीक्षण किया गया है और 16.04 को चल रहे नेक्स्टक्लाउड 11 के साथ काम कर रहा है।

मैंने उपयोग किए गए कुछ टीएलएस अनुकूलन को हटा दिया है, और यह उदाहरण example.com को www.example.com पर रीडायरेक्ट करता है, रूट डोमेन से नेक्स्टक्लाउड की सेवा करता है और एक / nextcloud निर्देशिका नहीं। मैंने अधिकतम अपलोड आकार को 1 जीबी (जीबी?) में भी बदल दिया।

उम्मीद है की यह मदद करेगा:

upstream php-handler {
  server unix:/run/php/php7.0-fpm.sock;
}


server {

  # The basics
  listen 80;
  server_name example.com www.example.com;

  # Redirect HTTP > HTTPS
  return 301 https://$server_name$request_uri;

}

server {

  # The basics
  listen 443 ssl http2;
  server_name example.com;

  # HTTPS
  ssl_certificate /path/to/cert.pem;
  ssl_certificate_key /path/to/key.pem;

  # Redirect no-www to www
  return 301 https://www.example.com$request_uri;

}

server {

  # The basics
  server_name www.example.com;
  root /var/www/example.com;
  index index.html;

  # HTTPS
  listen 443 ssl http2;
  ssl_certificate /path/to/cert.pem;
  ssl_certificate_key /path/to/key.pem;

  # Security
  server_tokens off;
  add_header X-Content-Type-Options nosniff;
  add_header X-Frame-Options "SAMEORIGIN";
  add_header X-XSS-Protection "1; mode=block";
  add_header X-Robots-Tag none;
  add_header X-Download-Options noopen;
  add_header X-Permitted-Cross-Domain-Policies none;
  # Disallow accessing dotfiles (`/.well-known/` is allowed)
  location ~* /\.(?!well-known\/) {
    deny all;
  }
  # Prevent clients from accessing to backup/config/source files
  location ~* (?:\.(?:build|tests|config|lib|3rdparty|templates|data|bak|sql|fla|psd|ini|log|sh|inc|swp|dist)|~)$ {
    deny all;
  }

  location = /robots.txt {
    allow all;
    log_not_found off;
    access_log off;
  }

  location = /.well-known/carddav { 
    return 301 $scheme://$host/remote.php/dav; 
  }

  location = /.well-known/caldav { 
    return 301 $scheme://$host/remote.php/dav; 
  }

  # Max upload size
  client_max_body_size 1G;
  fastcgi_buffers 64 4K;
  gzip off;

  error_page 403 /core/templates/403.php;
  error_page 404 /core/templates/404.php;

  location / {
    rewrite ^ /index.php$uri;
  }

  location ~^/(?:index|remote|public|cron|core/ajax/update|status|ocs/v[12]|updater/.+|ocs-provider/.+|core/templates/40[34])\.php(?:$|/) {
    include fastcgi_params;
    fastcgi_split_path_info ^(.+\.php)(/.+)$;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    fastcgi_param PATH_INFO $fastcgi_path_info;
    fastcgi_param HTTPS on;
    #Avoid sending the security headers twice
    fastcgi_param modHeadersAvailable true;
    fastcgi_param front_controller_active true;
    fastcgi_pass php-handler;
    fastcgi_intercept_errors on;
    fastcgi_request_buffering off;
  }

  location ~ ^/(?:updater|ocs-provider)(?:$|/) {
    try_files $uri/ =404;
    index index.php;
  }

  location ~* \.(?:css|js)$ {
    try_files $uri /index.php$uri$is_args$args;
    add_header Cache-Control "public, max-age=7200";
    add_header X-Content-Type-Options nosniff;
    add_header X-Frame-Options "SAMEORIGIN";
    add_header X-XSS-Protection "1; mode=block";
    add_header X-Robots-Tag none;
    add_header X-Download-Options noopen;
    add_header X-Permitted-Cross-Domain-Policies none;
    # Optional: Don't log access to assets
    access_log off;
  }

  location ~* \.(?:svg|gif|png|html|ttf|woff|ico|jpg|jpeg)$ {
    try_files $uri /index.php$uri$is_args$args;
    access_log off;
  }

}

0
2018-02-27 14:01



कुछ कारणों से यदि मैं इस कॉन्फ़िगरेशन का उपयोग करता हूं, तो मैं सर्वर_नाम में दिए गए पते पर निर्देशित करने के बजाय यह अपने मेजबानों में जाता हूं, पता चला है कि यह मेरे साथ ही एक ही चीज़ है, लेकिन केवल पोर्ट 80 के लिए। मुझे जो पता चला है उसे समझने की कोशिश कर रहा हूं। - Carobell
क्या आपके पास अगली क्लाउड config.php है? मैं सोच रहा हूं कि मैंने अपनी तरह लिखा नहीं था जैसा कि यह होना चाहिए और ऐसा कुछ भी नहीं लगता है जो काम करता है। - Carobell
@ करोबेल द डिफ़ॉल्ट पैरामीटर नेक्स्टक्लाउड दस्तावेज़ में यहां उपलब्ध हैं जो उम्मीद के रूप में काम करते हैं। तुम कोशिश कर सकते हो diff --side-by-side config.php config.sample.php दो समानांतर कॉलम में डिफ़ॉल्ट से अंतर को प्रदर्शित करने के लिए, हालांकि इसमें बहुत सारी जानकारी शामिल होगी जो आप अलग होने की उम्मीद करते हैं (जैसे डेटाबेस जानकारी, आदि ...)। - Tom Brossman