node.js - 如何使用 nginx 将 Node.js 应用程序重定向到 HTTPS?
问题描述
我在端口 3000 上有一个 Node 应用程序,我试图弄清楚如何将其重定向到 https,以便可以通过 https://localhost:3000/ 而不是 http://localhost:3000 访问它。我目前的设置将 http 重定向到 https,但给了我一个“502 Bad Gateway Error”并且没有显示我的应用程序。任何想法我的设置可能有什么问题?
nginx.conf
server {
listen 443 ssl;
ssl_certificate /etc/ssl/server-crt.pem;
ssl_certificate_key /etc/ssl/server-key.pem;
error_page 497 301 =307 https://$host:3000$request_uri;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header REQUEST_URI $request_uri;
location / {
set $originaddr http://localhost:3000$request_uri;
proxy_pass $originaddr;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
}
}
Dockerfile:
FROM node:latest
WORKDIR /usr/src/app
COPY . ./
RUN npm install
RUN node -v
RUN ls -ltr
EXPOSE 3000
CMD [ "npm", "start" ]
FROM nginx:latest
COPY ./ /usr/share/nginx/html
RUN rm /etc/nginx/conf.d/default.conf
COPY nginx.conf /etc/nginx/conf.d
COPY ssl/server-*pem /etc/ssl/
CMD ls
EXPOSE 443
CMD ["nginx", "-g", "daemon off;"]
码头工人-compose.yml
services:
node-app:
build:
context: ./my-node-app
dockerfile: Dockerfile
container_name: my-node-app
ports:
- "3000:443"
volumes:
- "./my-node-app/src:/usr/src/app/src"
解决方案
推荐阅读
- r - 比较以前模型 Shiny caret 的输出
- c# - ASP NET API - 在不打开 Microsoft 登录页面的情况下使用 Azure AD SAML 协议对用户进行身份验证
- excel - SAS:将值标签导出到 Excel
- android - Flutter:无法调试到 Live Device 或 Simulator/Android 版本工作
- html - 无法在 div 中将段落居中
- java - 将 Python 代码中的 Roberts kaufman 公式转换为 java
- node.js - NodejS:错误:将标头发送到客户端后无法设置标头
- flutter - Textformfields 上的算术运算
- excel - VBA 重命名包含损坏文件的文件夹中的工作簿
- javascript - 重定向到 javascript 中的另一个页面时,LocalStorage 未更新