The OpenNET Project / Index page

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

форумы  правила/FAQ  поиск  регистрация  вход/выход  слежка  RSS
"nginx путь на сайте как доменное имя"
Вариант для распечатки  
Пред. тема | След. тема 
Форум WEB технологии (nginx)
Изначальное сообщение [ Отслеживать ]

"nginx путь на сайте как доменное имя"  +/
Сообщение от mr_Tesla (ok) on 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.

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

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "nginx путь на сайте как доменное имя"  +/
Сообщение от eRIC (ok) on 04-Май-17, 12:01 
> На сайте по пути
> "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?


Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

2. "nginx путь на сайте как доменное имя"  +/
Сообщение от mr_Tesla (ok) on 04-Май-17, 14:20 
Давайте уточню.
Страница 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?

Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

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

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

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


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

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

4. "nginx путь на сайте как доменное имя"  +/
Сообщение от mr_Tesla (ok) on 05-Май-17, 10:59 
Можно, только скорее всего не поможет :)
Для тех кто не работал с 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


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

Ответить | Правка | ^ к родителю #3 | Наверх | Cообщить модератору

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

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

Ответить | Правка | ^ к родителю #4 | Наверх | Cообщить модератору

6. "nginx путь на сайте как доменное имя"  +/
Сообщение от mr_Tesla (ok) on 05-Май-17, 14:20 
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, сервер приложений определит перезапись
> запроса и возвратит ошибку?

Ответить | Правка | ^ к родителю #5 | Наверх | Cообщить модератору

7. "nginx путь на сайте как доменное имя"  +/
Сообщение от PavelR (??) on 05-Май-17, 19:43 
>>> Для нормальной работы сервера приложений ему необходимо передать 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/

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

Ответить | Правка | ^ к родителю #6 | Наверх | Cообщить модератору

8. "nginx путь на сайте как доменное имя"  +/
Сообщение от ыы on 05-Май-17, 19:58 
>[оверквотинг удален]
>>>> Если мы попытаемся 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/
> Не вижу на указанных страницах ответа на вопрос, как сервер приложений определит
> _корректную _перезапись запроса.

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

Ответить | Правка | ^ к родителю #7 | Наверх | Cообщить модератору

9. "nginx путь на сайте как доменное имя"  +/
Сообщение от PavelR (??) on 05-Май-17, 20:12 
> не бывает так корректной перезаписи. и некорректной тоже.

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

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

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

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

----

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

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

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

Ответить | Правка | ^ к родителю #8 | Наверх | Cообщить модератору

10. "nginx путь на сайте как доменное имя"  +/
Сообщение от mr_Tesla (ok) on 05-Май-17, 20:21 
Эх... такую интригу закончил :)
А я жду когда мистер теоретик-всезнайка прозреет ;)

>[оверквотинг удален]
>>>>> 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/
>> Не вижу на указанных страницах ответа на вопрос, как сервер приложений определит
>> _корректную _перезапись запроса.
> не бывает так корректной перезаписи. и некорректной тоже. есть внутренний роутер который
> по урлу - сортирует запрос на определенные куски кода. другой урл
> - другая обработка. исчез из урла хоть байт - все..приехали...

Ответить | Правка | ^ к родителю #8 | Наверх | Cообщить модератору

11. "nginx путь на сайте как доменное имя"  +/
Сообщение от PavelR (??) on 05-Май-17, 21:02 
> Эх... такую интригу закончил :)
> А я жду когда мистер теоретик-всезнайка прозреет ;)

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

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

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

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

Ответить | Правка | ^ к родителю #10 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




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

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