The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]




Версия для распечатки Пред. тема | След. тема
Новые ответы [ Отслеживать ]
nginx путь на сайте как доменное имя, !*! mr_Tesla, 04-Май-17, 06:50  [смотреть все]
Доброго времени суток, глубоко уважаемое сообщество.
На борту имеем:

1. nginx/1.10.0 (Ubuntu)
2. odoo 8.0 (OpenERP)

Nginx настроен как прокси:
## Odoo Backend ##
upstream odooerpbb {
    server 127.0.0.1:8069;
}

## https site##
server {
    listen      443 ssl default_server;
    server_name xxx.com;
    root        /usr/share/nginx/html;
    index       index.html index.htm;

    # log files
    access_log  /var/log/nginx/odoo.access.log;
    error_log   /var/log/nginx/odoo.error.log;

    # ssl files
    ssl on;
    ssl_ciphers                 ALL:!ADH:!MD5:!EXPORT:!SSLv2:RC4+RSA:+HIGH:+MEDIUM;
    ssl_protocols               TLSv1 TLSv1.1 TLSv1.2;
    ssl_prefer_server_ciphers   on;
    ssl_certificate             /etc/nginx/ssl/xxx.com.crt;
    ssl_certificate_key         /etc/nginx/ssl/xxx.com.key;

    # proxy buffers
    proxy_buffers 16 64k;
    proxy_buffer_size 128k;
     ## odoo proxypass with https ##
    location / {
        proxy_pass  http://odooerpbb;
        # force timeouts if the backend dies
        proxy_next_upstream error timeout invalid_header http_500 http_502 http_503 http_504;
        proxy_redirect off;

        # set headers
        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 https;
        proxy_connect_timeout 3000;.
        proxy_send_timeout 3000;.
        proxy_read_timeout 3000;.
        send_timeout 3000;.
    }

    # cache some static data in memory for 60mins
    location ~* /web/static/ {
        proxy_cache_valid 200 60m;
        proxy_buffering on;
        expires 864000;
        proxy_pass http://odooerp;
    }

    location ^~ /web/database/ {
        auth_basic            "Restricted Area";
        auth_basic_user_file  /etc/nginx/sites-available/htpasswd;
        proxy_cache_valid 200 60m;
        proxy_buffering on;
        expires 864000;
        proxy_pass http://odooerp;
    }

}


На сайте по пути
"GET /seller/shop/myshop1 HTTP/1.0" 200 -
есть страничка, которую необходимо отобразить по другому доменному имени, без указания длинного пути (/seller/shop/myshop1) как myshop1.ru.

Если указать
    ## odoo proxypass with https ##
    location / {
        proxy_pass  http://odooerpbb/seller/shop/mysqhop1/;
то страницы отображаются не корректно, так как происходит добавление к http://odooerpbb/seller/shop/mysqhop1 страниц от "корневого сайта". Типа:

/seller/shop/mysqhop1/website/image/product.template/3_f9a8d3a/image HTTP/1.0" 404


Как следствие - 404.

Воозможно вообще настроить так, чтобы по доменному имени открывалась отдельная страница?

  • nginx путь на сайте как доменное имя, !*! eRIC, 12:01 , 04-Май-17 (1)
    > На сайте по пути
    > "GET /seller/shop/myshop1 HTTP/1.0" 200 -
    > есть страничка, которую необходимо отобразить по другому доменному имени, без указания
    > длинного пути (/seller/shop/myshop1) как myshop1.ru.

    как хотите указать? непонятно поставлен вопрос

    > Если указать
    >     ## odoo proxypass with https ##
    >     location / {
    >         proxy_pass  http://odooerpbb/seller/shop/mysqhop1/;
    > то страницы отображаются не корректно, так как происходит добавление к http://odooerpbb/seller/shop/mysqhop1
    > страниц от "корневого сайта". Типа: /seller/shop/mysqhop1/website/image/product.template/3_f9a8d3a/image HTTP/1.0"
    > 404
    > Как следствие - 404.

    и правильно будет так вам выдавать, потому что proxy_pass вы указали что передать (доп. мусор в строке).


    > Воозможно вообще настроить так, чтобы по доменному имени открывалась отдельная страница?

    да можно, какое доменное имя у вас и какую страницу вы хотите отобразить? страница на стороне nginx будет или на стороне Odoo?


    • nginx путь на сайте как доменное имя, !*! mr_Tesla, 14:20 , 04-Май-17 (2)
      Давайте уточню.
      Страница https://xxx.com/seller/shop/myshop1 должна отображаться по доменному имени https://myshop1.ru
      Все страницы генерирует odoo, поэтому на счет мусора в строке я не согласен, так как эта информация нужна odoo для генерирования страниц...

      >[оверквотинг удален]
      >>         proxy_pass  http://odooerpbb/seller/shop/mysqhop1/;
      >> то страницы отображаются не корректно, так как происходит добавление к http://odooerpbb/seller/shop/mysqhop1
      >> страниц от "корневого сайта". Типа: /seller/shop/mysqhop1/website/image/product.template/3_f9a8d3a/image HTTP/1.0"
      >> 404
      >> Как следствие - 404.
      > и правильно будет так вам выдавать, потому что proxy_pass вы указали что
      > передать (доп. мусор в строке).
      >> Воозможно вообще настроить так, чтобы по доменному имени открывалась отдельная страница?
      > да можно, какое доменное имя у вас и какую страницу вы хотите
      > отобразить? страница на стороне nginx будет или на стороне Odoo?

  • nginx путь на сайте как доменное имя, !*! PavelR, 10:26 , 05-Май-17 (3)
    >страницы отображаются не корректно, так как происходит добавление к http://odooerpbb/seller/shop/mysqhop1 страниц от "корневого сайта". Типа:
    >
    >/seller/shop/mysqhop1/website/image/product.template/3_f9a8d3a/image HTTP/1.0" 404
    >
    >Как следствие - 404.

    А можно эту мысль как-то более технически грамотно донести?

    А то вот моему скудному уму эта мысль как-то уж совсем непонятна.


    (ИМХО поэтому вам никто и не отвечает)

    • nginx путь на сайте как доменное имя, !*! mr_Tesla, 10:59 , 05-Май-17 (4)
      Можно, только скорее всего не поможет :)
      Для тех кто не работал с Odoo или OpenERP архитектура здесь:
      https://doc.odoo.com/6.0/ru/book/1/1_1_Inst_Config/1_1_Inst_.../

      Для нормальной работы сервера приложений ему необходимо передать GET или POST от клиента в неизмененном виде.
      Если мы попытаемся nginx переписать любую часть запроса, то сервер приложений вернет страницу с ошибкой.

      Другими словами не получится показать страницу
      https://xxx.com/seller/shop/mysqhop1/ как https://myshop.ru


      > А можно эту мысль как-то более технически грамотно донести?
      > А то вот моему скудному уму эта мысль как-то уж совсем непонятна.

      • nginx путь на сайте как доменное имя, !*! PavelR, 13:46 , 05-Май-17 (5)
        > Для нормальной работы сервера приложений ему необходимо передать GET или POST от
        > клиента в неизмененном виде.
        > Если мы попытаемся nginx переписать любую часть запроса, то сервер приложений вернет
        > страницу с ошибкой.
        > Другими словами не получится показать страницу
        > https://xxx.com/seller/shop/mysqhop1/ как https://myshop.ru

        В силу каких технических решений, примененных в OpenERP, сервер приложений определит перезапись запроса и возвратит ошибку?

        • nginx путь на сайте как доменное имя, !*! mr_Tesla, 14:20 , 05-Май-17 (6)
          https://www.odoo.com/documentation/8.0/howtos/website.html#u...
          http://werkzeug.pocoo.org/docs/0.12/routing/


          >> Для нормальной работы сервера приложений ему необходимо передать GET или POST от
          >> клиента в неизмененном виде.
          >> Если мы попытаемся nginx переписать любую часть запроса, то сервер приложений вернет
          >> страницу с ошибкой.
          >> Другими словами не получится показать страницу
          >> https://xxx.com/seller/shop/mysqhop1/ как https://myshop.ru
          > В силу каких технических решений, примененных в OpenERP, сервер приложений определит перезапись
          > запроса и возвратит ошибку?

          • nginx путь на сайте как доменное имя, !*! PavelR, 19:43 , 05-Май-17 (7)
            >>> Для нормальной работы сервера приложений ему необходимо передать GET или POST от
            >>> клиента в неизмененном виде.
            >>> Если мы попытаемся nginx переписать любую часть запроса, то сервер приложений вернет
            >>> страницу с ошибкой.
            >>> Другими словами не получится показать страницу
            >>> https://xxx.com/seller/shop/mysqhop1/ как https://myshop.ru
            >> В силу каких технических решений, примененных в OpenERP, сервер приложений определит перезапись
            >> запроса и возвратит ошибку?
            > https://www.odoo.com/documentation/8.0/howtos/website.html#u...
            > http://werkzeug.pocoo.org/docs/0.12/routing/

            Не вижу на указанных страницах ответа на вопрос, как сервер приложений определит _корректную _перезапись запроса.

            • nginx путь на сайте как доменное имя, !*! ыы, 19:58 , 05-Май-17 (8)
              >[оверквотинг удален]
              >>>> Если мы попытаемся nginx переписать любую часть запроса, то сервер приложений вернет
              >>>> страницу с ошибкой.
              >>>> Другими словами не получится показать страницу
              >>>> https://xxx.com/seller/shop/mysqhop1/ как https://myshop.ru
              >>> В силу каких технических решений, примененных в OpenERP, сервер приложений определит перезапись
              >>> запроса и возвратит ошибку?
              >> https://www.odoo.com/documentation/8.0/howtos/website.html#u...
              >> http://werkzeug.pocoo.org/docs/0.12/routing/
              > Не вижу на указанных страницах ответа на вопрос, как сервер приложений определит
              > _корректную _перезапись запроса.

              не бывает так корректной перезаписи. и некорректной тоже. есть внутренний роутер который по урлу - сортирует запрос на определенные куски кода. другой урл - другая обработка. исчез из урла хоть байт - все..приехали...

              • nginx путь на сайте как доменное имя, !*! PavelR, 20:12 , 05-Май-17 (9)
                > не бывает так корректной перезаписи. и некорректной тоже.

                Корректной - не бывает. Некорректной - не бывает.

                Т.е. перезаписи запроса не бывает в принципе?

                > есть внутренний роутер который по урлу - сортирует запрос на определенные куски кода. >другой урл - другая обработка. исчез из урла хоть байт - все..приехали...

                Приехали - выходите.

                ----

                Рекомендую перечитать дискуссию чуть больше, не только отдельный ответ.

                Она посвящена ошибочному представлению топикстартера, цитирую:

                >Для нормальной работы сервера приложений ему необходимо передать GET или POST от клиента в
                >неизмененном виде.
                >Если мы попытаемся nginx переписать любую часть запроса, то сервер приложений вернет >страницу с ошибкой.

              • nginx путь на сайте как доменное имя, !*! mr_Tesla, 20:21 , 05-Май-17 (10)
                Эх... такую интригу закончил :)
                А я жду когда мистер теоретик-всезнайка прозреет ;)

                >[оверквотинг удален]
                >>>>> https://xxx.com/seller/shop/mysqhop1/ как https://myshop.ru
                >>>> В силу каких технических решений, примененных в OpenERP, сервер приложений определит перезапись
                >>>> запроса и возвратит ошибку?
                >>> https://www.odoo.com/documentation/8.0/howtos/website.html#u...
                >>> http://werkzeug.pocoo.org/docs/0.12/routing/
                >> Не вижу на указанных страницах ответа на вопрос, как сервер приложений определит
                >> _корректную _перезапись запроса.
                > не бывает так корректной перезаписи. и некорректной тоже. есть внутренний роутер который
                > по урлу - сортирует запрос на определенные куски кода. другой урл
                > - другая обработка. исчез из урла хоть байт - все..приехали...

                • nginx путь на сайте как доменное имя, !*! PavelR, 21:02 , 05-Май-17 (11)
                  > Эх... такую интригу закончил :)
                  > А я жду когда мистер теоретик-всезнайка прозреет ;)

                  А чего это вы про себя в третьем лице пишете?

                  Я тоже всё надеюсь что вы прозреете и решите свою проблему.
                  Хотя, наверное вам не сильно и надо её решать, если вы решили остановиться на мнении

                  "Если мы попытаемся nginx переписать любую часть запроса, то сервер приложений вернет страницу с ошибкой."

                  Согласен, ничего не делать гораздо проще.




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру