首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Senaite LIMS (Plone 4.3.18) css在启用https的Nginx上不起作用

Senaite LIMS (Plone 4.3.18) css在启用https的Nginx上不起作用
EN

Stack Overflow用户
提问于 2019-03-25 18:38:08
回答 1查看 321关注 0票数 2

我已经安装和设置了senaite.lims,这是一个Plone扩展,运行在由统一安装程序安装的Plone 4.3.18上,并将senaite.lims添加到buildout.cfg鸡蛋中。

它在端口8080上运行得很好,我可以让Nginx重定向到:8080,但是当我开始使用https时,站点的css突然不再工作了。

我查看了源代码,生成的html页面显示了一个指向带有http://...的样式表的链接。我不知道这是否会导致问题,但如果我真的尝试在浏览器中打开.css文件,它工作正常。

我设置并尝试使用端口80重定向https,同时服务于http和https的一个版本,但都不能使用.css呈现页面。如果任何人有任何提示,或者在下面的nginx中看到一些错误的配置,任何帮助都将不胜感激。

这是我的nginx.conf:

代码语言:javascript
复制
user www-data;
worker_processes auto;
pid /run/nginx.pid;

events {
    worker_connections 768;
}

http {
    default_type  application/octet-stream;
    include /etc/nginx/mime.types;
    sendfile    on;
    keepalive_timeout 75;

    upstream plone {
        server 127.0.0.1:8080;
    }

    server {
        listen              80;
        listen              443 ssl http2;
        server_name         99.99.99.99; # changed for posting on SO
        ssl_certificate     /etc/ssl/certs/nginx-selfsigned.crt;
        ssl_certificate_key /etc/ssl/private/nginx-selfsigned.key;

        error_log /var/log/nginx/nginx.vhost.error.log;

        location / {
        proxy_pass                http://localhost:8080/;
        proxy_redirect            off;
        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_buffer_size         128k;
        proxy_buffers             8 128k;
        proxy_busy_buffers_size   256k;
        }
    }
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-03-25 19:24:14

您没有重写URL,例如:

代码语言:javascript
复制
rewrite ^(.*)$ /VirtualHostBase/$scheme/$host/senaite/VirtualHostRoot/$1 break;

以下是SENAITE的完整工作配置:

代码语言:javascript
复制
server {
    listen 80;
    server_name senaite.mydomain.com;
    return 301 https://$server_name$request_uri;
}

server {
    listen 443 ssl http2;
    listen [::]:443 ssl http2;

    server_name senaite.mydomain.com;

    # https://www.digitalocean.com/community/tutorials/how-to-secure-nginx-with-let-s-encrypt-on-ubuntu-16-04
    include snippets/ssl-senaite.mydomain.com.conf;
    include snippets/ssl-params.conf;
    include snippets/well-known.conf;

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

    # Allow Cross-Origin Resource Sharing from our HTTP domain
    add_header "Access-Control-Allow-Origin" "http://senaite.ridingbytes.com";
    add_header "Access-Control-Allow-Credentials" "true";
    add_header "Access-Control-Allow-Methods" "GET, POST, OPTIONS";
    add_header "X-Frame-Options" "SAMEORIGIN";

    if ($http_cookie ~* "__ac=([^;]+)(?:;|$)" ) {
        # prevent infinite recursions between http and https
        break;
    }
    # rewrite ^(.*)(/logged_out)(.*) http://$server_name$1$2$3 redirect;

    location / {
        set $backend http://haproxy;
        # API calls take a different backend w/o caching
        if ($uri ~* "@@API") {
            set $backend http://api;
        }
        proxy_set_header        Host            $http_host;
        proxy_set_header        X-Real-IP       $remote_addr;
        proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
        rewrite                 ^(.*)$ /VirtualHostBase/$scheme/$host/senaite/VirtualHostRoot/$1 break;
        # proxy_pass              $backend;
        proxy_pass              http://plone;
    }
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55335907

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档