Her*_*che 4 apache ssl https reverse-proxy node.js
实际状态:
http://www.example.com/mypage apache http:好的!
https://www.example.com/mypage apache https:好!
http://www.example.com:8000 节点http:好!
https://www.example.com:8000 节点https:不起作用(仍然)
我试图将节点程序修改为
var express = require('express');
var app = express();
var https = require('https');
var fs = require('fs');
var server = http.createServer(app);
https.createServer({
key: fs.readFileSync("/etc/letsencrypt/live/www.example.com/privkey.pem"),
cert: fs.readFileSync("/etc/letsencrypt/live/www.example.com/fullchain.pem"),
ca: fs.readFileSync("/etc/letsencrypt/live/www.example.com/chain.pem")
}, app).listen(443);
Run Code Online (Sandbox Code Playgroud)
这里的明显问题是apache已经侦听端口443,然后
Error: listen EADDRINUSE :::443
Run Code Online (Sandbox Code Playgroud)
有没有一种方法可以使用Apache 443为节点提供SSL服务?
您只能将一个进程绑定到服务器上的给定端口。
也就是说,正确的方法是让Apache在443上侦听,然后使用mod_proxy将流量转发到HTTP端口(不带SSL,但您仅通过localhost进行通信)或Unix上的nodejs。插座。
如何使用端口80 / HTTP进行操作的一个很好的示例在这里:http : //blog.podrezo.com/making-node-js-work-with-apache/
<VirtualHost *:80>
ServerName pastebin.mydomain.com
ServerAlias www.pastebin.mydomain.com
DocumentRoot /var/www/pastebinjs/
Options -Indexes
ErrorDocument 503 /maintenance.html
ProxyRequests on
ProxyPass /maintenance.html !
ProxyPass / http://localhost:8000/
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)
但是,如果将Proxy *行添加到现有HTTPS端点,则原理是相同的。
| 归档时间: |
|
| 查看次数: |
1607 次 |
| 最近记录: |