【发布时间】:2017-07-26 01:06:11
【问题描述】:
我正在使用 Centos 7 将端口 80 的 nginx 配置为端口 8080 上的 Apache 服务器的代理服务器。
我成功地为 http 配置了两者,但是在安装了让 Apache 加密证书后,我看到 Apache 直接接收 https 的流量。我试图让 nginx 接收所有 HTTP 和 HTTPS 的流量,但遇到问题,
我做了很多改变,比如禁用 apache 监听 443 端口,只监听 8080。 我将 nginx 配置为在 80 和 443 监听,另外我删除了 apache 的证书并添加到 nginx 配置文件中。目前。
nginx配置如下:
server {
listen 80;
listen [::]:80 default_server;
#server_name _;
server_name www.example.com;
root /usr/share/nginx/html;
# Load configuration files for the default server block.
include /etc/nginx/default.d/*.conf;
location / {
proxy_pass http://my.server.ip.add:8080;
root /usr/share/nginx/html;
proxy_redirect off;
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Server $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
error_page 404 /404.html;
location = /40x.html {
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
}
}
server {
listen 443 default_server;
server_name www.example.com;
root /usr/share/nginx/html;
ssl on;
ssl_certificate /etc/letsencrypt/live/www.example.com/cert.pem;
ssl_certificate_key /etc/letsencrypt/live/www.example.com/privkey.pem;
ssl_prefer_server_ciphers on;
ssl_session_timeout 1d;
ssl_session_cache shared:SSL:50m;
ssl_session_tickets off;
# Diffie-Hellman parameter for DHE ciphersuites, recommended 2048 bits
#ssl_dhparam /etc/pki/nginx/dh2048.pem;
# intermediate configuration. tweak to your needs.
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers 'ECDHE-RSA--REMOVED-SOME-HERE-SHA';
location / {
proxy_pass http://127.0.0.1:8080;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto https;
}
}
注意:我使用的是 php 7.0
当前站点正在使用 https 和 http,但存在 1 个已知问题,即未加载用户图像。但我不确定它是由 apache 还是 nginx 提供的,在 RESPONSE 中我可以看到“nginx/1.10.2”
我实际上要实现的是:我试图同时运行 node.js 和 apache 使用 nginx。我还没有启动节点。
我的问题:
- 前端使用nginx,后端使用apache真的有好处吗? (我读过它可以防止 dDos 攻击)。
- 我们应该将证书放在 nginx 或 apache 的什么位置?
- 如何在 nginx 配置中添加 node.js?我已经安装了 node js。
- 同时使用 nginx 和 apache 的最佳配置是什么?
【问题讨论】:
标签: apache ssl nginx reverse-proxy lets-encrypt