nginx使用自定义端口服务器将http重定向到https

时间:2016-01-12 13:14:44

标签: nginx

我对使用nginx有一些疑问。 正如你可以看到标题,我试图将http重定向到https。

在阅读nginx代码之前,我想告诉你由node.js制作的主服务器,并使用https和自定义端口(即3000)。

所以我要做的是当用户在浏览器上输入“http://mywebsite.com”时,重定向到“https://mywebsite.com”。

这是我的nginx代码:

# http://mywebsite.com: redirect to https
server {
    listen 80;
    server_name mywebsite.com;
    return 301 https://$server_name$request_uri;
}

# https
# redirect to 3000 port with https!
server {
    listen 443 ssl;
    server_name mywebsite.com
    root ...

    ...

    location / {
        proxy_set_header X-Real-IP $remove_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header Host $http_host;
        proxy_set_header X-NginX-Proxy true;

        proxy_pass https://127.0.0.1:3000/;
        proxy_redirect off;
}

...

这是第一次使用nginx,所以对我来说真的很难。非常感谢它帮助我。 THX!

1 个答案:

答案 0 :(得分:1)

如果您需要将所有https重定向到https,则必须编写全局配置:

server { listen 80; server_name mywebsite.com; rewrite ^ https://$server_name$request_uri? permanent; }