簡體   English   中英

使用現有的反向代理(node.js應用)將所有http轉發到nginx上的https

[英]Forward all http to https on nginx with existing reverse proxy (node.js app)

前言:在過去的幾天中,我已經搜索了數十本教程,而其中的任何一本都無法使用,這就是為什么我在這里問這個問題。 我希望這很簡單,我很想念。 感謝您能得到的任何建議!

好的-我正在安裝nginx運行centos 6 vps。 我在此vps上有多個域。 在有問題的域上,我正在端口9000上運行一個node.js應用程序。我目前具有proxy_pass設置,將www.example.net指向www.example.net:9000 -效果很好。 我現在需要做的是將所有流量傳入http://www.example.net ,並將其重定向到https://www.example.net,同時保留端口9000上應用程序的代理權限。

同樣,我嘗試了數十種不同的教程和stackoverflow答案,但是它們都不適合我。 我必須恢復到剛開始使用的nginx配置,以便可以在瀏覽器中查看我的應用程序。 我將在這里發布我所擁有的東西,如果有人能指出正確的方向,將不勝感激!

 server {
    listen      123.45.678.90:80;
    server_name example.net www.example.net;
    error_log  /var/log/httpd/domains/example.net.error.log error;

location / {
        proxy_set_header X-Real-IP $remote_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://123.45.678.90:9000/;
        proxy_redirect off;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";


    }
}

我們為設置執行類似的操作。 我們用於“將所有http請求重定向到https ”的nginx配置看起來像這樣:

server {
    listen      123.45.678.90:80;
    server_name example.net www.example.net;
    error_log  /var/log/httpd/domains/example.net.error.log error;

    # Always redirect to HTTPS
    redirect 301 https://www.example.net$request_uri;
}

server {
    listen      123.45.678.90:443 ssl;
    server_name example.net www.example.net;
    error_log  /var/log/httpd/domains/example.net.error.log error;
    ssl_certificate /path/to/server.crt
    ssl_certificate_key /path/to/server.key

    location / {
        proxy_set_header X-Real-IP $remote_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://123.45.678.90:9000/;
        proxy_redirect off;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
    }
}

因此,偵聽端口80的HTTP服務器始終向偵聽端口443的HTTPS服務器發出HTTP 301重定向。

希望這可以幫助!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM