Odoo12数据库的Nginx子域重定向问题

问题描述

我需要创建到我的odoo数据库的URL重定向,当您在浏览器db1.example.com中键入内容时,我具有db1.example.com和db2.example.com,浏览器会将您重定向到db1登录页面,与db2相同。 我可以想象通过使用Nginx子域重定向可以实现escenario,现在我通过odoo模块创建新数据库时会自动创建虚拟主机配置文件。我的问题是,当我尝试测试重定向时,重定向不起作用并且Nginx测试失败。 注意:

  1. 我的odoo应用程序与docker集成以为每个新DB创建容器。同样,在docker容器而不是在odoo上创建的所有新数据库也将其自身托管。

  2. 我没有使用其他用户来创建那些数据库,而不是odoo用户。 命令输出Nginx -t:

    semerouk @ server-login:〜$ sudo Nginx -t Nginx:在/opt/odoo/DOCKER-HOSTS/docker_vhosts/my-db.example.com.conf:1中,此处不允许使用[emerg]“服务器”指令 Nginx配置文件/etc/Nginx/Nginx.conf测试失败

这是我的配置文件odoo-server.conf

 [options]
    ; This is the password that allows database operations:
    admin_passwd = MY-password
    db_host = localhost
    db_port = 5432
    db_user = odoo
    db_password = MY_DB-password
    db-filter = ^%d$
    addons_path = /opt/odoo/odoo/addons,/opt/odoo/odoo-custom-addons,/opt/odoo/common-addons,/mnt/extra-addons
    logfile = /var/log/odoo/odoo.log
    ;Preformance tuning parameters :-
    limit_memory_hard = 52344913920
    limit_memory_soft = 43620761600
    limit_request = 8192
    limit_time_cpu = 600
    limit_time_real = 1200
    max_cron_threads = 1
    workers = 31
    ;Proxy tuning parameters:
    proxy_mode = True
    ; XML RPC configuration:
    xmlrpc = True
    xmlrpc_port = 8069
    longpolling_port = 8072
    xmlrpc_interface = 127.0.0.1
    xmlrpcs = True
    xmlrpcs_interface =127.0.0.1
    xmlrpcs_port = 8071

/etc/Nginx/Nginx.conf文件

    user www-data;
    worker_processes auto;
    pid /run/Nginx.pid;
    include /etc/Nginx/modules-enabled/*.conf;
    include /opt/odoo/DOCKER-HOSTS/docker_vhosts/*.conf;
    
    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;
            # server_tokens off;
    
            # server_names_hash_bucket_size 64;
            # server_name_in_redirect off;
    
            include /etc/Nginx/mime.types;
            default_type application/octet-stream;
    
            ##
            # SSL Settings
            ##
    
            ssl_protocols TLSv1 TLSv1.1 TLSv1.2; # Dropping SSLv3,ref: POODLE
            ssl_prefer_server_ciphers on;
    
            ##
            # Logging Settings
            ##
    
            access_log /var/log/Nginx/access.log;
            error_log /var/log/Nginx/error.log;
    
            ##
            # Gzip Settings
            ##
    
            gzip on;
    
            # 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;
    
            ##
            # Virtual Host Configs
            ##
    
            include /etc/Nginx/conf.d/*.conf;
            include /etc/Nginx/sites-enabled/*;
            include /opt/odoo/DOCKER-HOSTS/docker_vhosts/*.conf;
    }
    
    #mail {
    #       # See sample authentication script at:
    #       # http://wiki.Nginx.org/ImapAuthenticateWithApachePHPScript
    # 
    #       # auth_http localhost/auth.PHP;
    #       # pop3_capabilities "TOP" "USER";
    #       # imap_capabilities "IMAP4rev1" "UIdplUS";
    # 
    #       server {
    #               listen     localhost:110;
    #               protocol   pop3;
    #               proxy      on;
    #       }
    # 
    #       server {
    #               listen     localhost:143;
    #               protocol   imap;
    #               proxy      on;
    #       }
    #}

/etc/Nginx/conf.d/example.com.conf文件

# odoo servers
upstream odoo {
 server 127.0.0.1:8069;
}

upstream odoochat {
 server 127.0.0.1:8072;
}

# HTTP -> HTTPS
server {
    listen 80;
    server_name www.example.com example.com;

    return 301 https://example.com$request_uri;
}

# WWW -> NON WWW
server {
    listen 443 ssl http2;
    server_name www.example.com;

    ssl_certificate /etc/Nginx/ssl/sb-ssl/sb-bundle.crt;
    ssl_certificate_key /etc/Nginx/ssl/sb-ssl/server.key2;
        
    return 301 https://example.com$request_uri;
}

server {
    listen 443 ssl http2;
    server_name example.com;

    proxy_read_timeout 720s;
    proxy_connect_timeout 720s;
    proxy_send_timeout 720s;

    # Proxy headers
    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_certificate /etc/Nginx/ssl/sb-ssl/my-domain.crt;
    ssl_certificate_key /etc/Nginx/ssl/sb-ssl/server-key.key2;
    
    # log files
    access_log /var/log/Nginx/odoo.access.log;
    error_log /var/log/Nginx/odoo.error.log;

    # Handle longpoll requests
    location /longpolling {
        proxy_pass http://127.0.0.1:8072;
    }

    # Handle / requests
    location / {
       proxy_redirect off;
       proxy_pass http://odoo;
    }

    # Cache static files
    location ~* /web/static/ {
        proxy_cache_valid 200 90m;
        proxy_buffering on;
        expires 864000;
        proxy_pass http://odoo;
    }

    # Gzip
    gzip_types text/css text/less text/plain text/xml application/xml application/json application/javascript;
    gzip on;
}

我的db.example.com.conf文件

server {
 listen 80;
 server_name xxx.example.com;
 }
#################---Proxy Setting for odoo backend-----------#################################
 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;
##############################################################################################

###############------Log----------------------################################################
 access_log /var/log/Nginx/xxx.example.com.access.log;
 error_log /var/log/Nginx/xxx.example.com.error.log;
 client_body_in_file_only on;
 # Redirect longpoll requests to odoo longpolling port

  location / {
        proxy_redirect off;
        proxy_pass http://localhost:8888;
    }
 gzip_types text/css text/less text/plain text/xml application/xml application/json application/javascript;
 gzip on;

如果有人知道我的问题的解决方案,请提供我们的帮助。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)