Ispconfig nginx重定向到https

时间:2015-06-02 22:20:13

标签: redirect ssl nginx

我已经部署了一个带有ISPConfig和Nginx的CentOS服务器。

我还能够手动配置Nginx(通过编辑/etc/nginx/sites-available/mysite.com.vhost),将http请求重定向到https:

server {
    listen 80;
    server_name mysite.com;
    return         301 https://$server_name$request_uri;
}

server {
    listen 443 ssl;
    ..
}

当我手动编辑文件时,每次使用ISPConfig更改设置时,我的vhost文件都会被覆盖,我会丢失重定向技巧。

您是否知道使用ISPConfig面板配置重定向的方法,而不是手动编辑nginx文件?

谢谢你。

2 个答案:

答案 0 :(得分:1)

我已将重定向配置为建议的已接受答案。

此外,我还包含了外部配置,因此我将所有手动配置。

在我们的ISPConfig版本中,我这样做了:

if ($scheme != "https") {
  rewrite ^ https://$http_host$request_uri? permanent;
}

include /etc/nginx/sites-available/my-own-config.conf;

这样,ISPConfig就不会破坏我们的配置。

答案 1 :(得分:0)

在更新版本的ISPConfig上,您只需选择要使用SSL的网站(这意味着HTTPS,以及可选的SPDY或HTTP / 2),并附加一个复选框,将所有HTTP请求永久重定向到HTTPS,以及ISPConfig将自动正确生成vhosts文件。

为了completude,这是ISPConfig添加的内容:

server {
        listen *:80;

        listen *:443 ssl;
                ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
        ssl_certificate /var/www/clients/clientX/webY/ssl/your.web.site.crt;
        ssl_certificate_key /var/www/clients/clientX/webY/ssl/your.web.site.key;

        server_name your.web.site www.your.web.site;

        root   /var/www/your.web.site/web/;

        if ($http_host = "www.your.web.site") {
            rewrite ^ $scheme://your.web.site$request_uri? permanent;
        }
        if ($scheme != "https") {
            rewrite ^ https://$http_host$request_uri? permanent;
        }


        index index.html index.htm index.php index.cgi index.pl index.xhtml;