我想重定向我的所有http
流量重定向到https
。我正在使用letsencrypt
。我在線閱讀,return 301 https://$server_name$request_uri;
會重定向到我的網站的所有流量到https
,但結果在ERR_TOO_MANY_REDIRECTS
。ERR_TOO_MANY_REDIRECTS與nginx
沒有上面提到的聲明,一切正常,但我必須在URL中專門指定https
。這是我的/etc/nginx/sites-available/default
文件:
server {
listen 80 default_server;
listen 443 ssl default_server;
ssl_certificate /etc/letsencrypt/live/mywebsite.me/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/mywebsite.me/privkey.pem;
root /home/website/mywebsite/public;
index index.html index.htm index.php;
server_name mywebsite.me www.mywebsite.me;
return 301 https://$server_name$request_uri;
location/{
try_files $uri $uri/ /index.php$is_args$args;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php7.1-fpm.sock;
}
}
我在哪裏出錯了?
把http和https放在一個單獨的塊中,如第一個解決方案中所示。它爲我工作。 –
@PritamBohra無法工作。正如你所看到的,我需要代理到另一個端口的同一個服務器名稱。當沒有ssl的後臺應用被強制時,我的配置工作正常。當'http:4000'工作時,'https:'工作正常,否則當'http:4000'本身重定向到'https:'時,配置無法工作。這是我在很多討論過程中見過的流星應用程序中流行的一個問題。也許我需要配置流星應用程序來使用ssl,而不僅僅是nginx。 – sitexa