Я перенес порт своего шлюза Comcast xfinity на хост-компьютер Ubuntu.
На хосте Ubuntu работает VirtualBox, где я определил прямой порт от порта шлюза до виртуальной машины Ubuntu, на которой размещено мое приложение Odoo.
У Odoo есть встроенный веб-сервер (Werkzueg или что-то в этом роде), который не поддерживает HTTPS, поэтому я установил nginx на ВМ для прокси / обратного прокси-сервера Odoo с использованием HTTPS.
Интернет -> переадресация модемного порта -> хост Ubuntu -> переадресация порта виртуальной коробки -> Ubuntu vm -> nginx -> Odoo
Одно: без установленного nginx и использования простого HTTP я могу без проблем подключиться к своему приложению Odoo со своего планшета в ресторане. Только я не хочу этого делать.
Модем - TECHNICOLOR CGM4140COM, который поддерживает переадресацию портов.
nginx.conf:
user www-data;
worker_processes auto;
pid /run/nginx.pid;
events {
worker_connections 768;
# multi_accept on;
}
http {
##
# Basic Settings
##
sendfile on;
tcp_nopush on;
tcp_nodelay on;
keepalive_timeout 65;
types_hash_max_size 2048;
include /etc/nginx/mime.types;
default_type application/octet-stream;
include /etc/nginx/conf.d/*.conf;
include /etc/nginx/sites-enabled/*;
}
default.conf:
deleted
odoo10.conf
#odoo server
upstream odoo {
server 127.0.0.1:8069;
}
# http -> https
server {
listen 80;
server_name odoo.mycompany.com;
rewrite ^(.*) https://$host$1 permanent;
}
server {
listen 443 ssl;
server_name odoo.mycompany.com;
proxy_read_timeout 720s;
proxy_connect_timeout 720s;
proxy_send_timeout 720s;
# Add Headers for odoo proxy mode
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Real-IP $remote_addr;
# SSL parameters
ssl on;
ssl_certificate /etc/nginx/ssl/odoo10.cert;
ssl_certificate_key /etc/nginx/ssl/odoo10.key;
ssl_session_timeout 30m;
ssl_protocols TLSv1.2;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;
# log
access_log /etc/nginx/odoo10.access.log;
error_log /etc/nginx/odoo10.error.log debug;
# Redirect requests to odoo backend server
location / {
proxy_redirect off;
proxy_pass http://odoo;
}
# common gzip
gzip_types text/css text/less text/plain text/xml application/xml
application/json application/javascript;
gzip on;
}
Из Интернета я могу подключиться к своему приложению Odoo через https, и это работает в некоторой степени. Но есть некоторые проблемы, которые я хотел бы решить.
Когда я вхожу в https://my-modem-IP:port, я получаю страницу входа администратора моего модема. Поэтому мне нужно ввести https://my-modem-IP:port/web/login. Когда я делаю это, я получаю страницу входа в Odoo. И возвращаемый обратно URL-адрес такой же, как я отправил: https://my-modem-IP:port/web/login.
Когда я нажимаю на это, я снова получаю страницу входа администратора модема с https://my-modem-IP/web - без порта #.
Если я вручную ввожу номер порта для этого URL - https://my-modem-IP:port/web - я войду в приложение Odoo. Я не тестировал полное приложение, но до сих пор нет проблем с навигацией по нему, за исключением страницы выхода, которая снова сбрасывает порт # и отправляет мне страницу входа администратора модема.
У меня есть два журнала отладки: один показывает мне проблему с логином, а другой показывает, что он работает, когда я вручную ввожу номер порта #. Они довольно большие, и, возможно, это не то место, где их можно включить. Я надеюсь, что кто-то сообщит мне, как я могу публиковать журналы.