Nginx在centos 7上反向代理apache,同时配置http和https
我使用Centos 7将端口80上的nginx配置为端口8080上的Apache服务器的代理服务器。
我成功地为http配置了两个,但是在安装后可以为Apache加密证书,我看到Apache直接接收https的流量。 我试图让nginx接收所有HTTP和HTTPS的流量,但面临问题,
我做了很多改变,比如禁用apache来监听端口443,只监听8080.我配置nginx在80和443监听,另外我删除了apache的证书并添加到nginx配置文件中。 目前。
nginx配置如下:
服务器{听80; 听[::]:80 default_server; #服务器名称 _; server_name www.example.com;
root /usr/share/nginx/html;
# Load configuration files for the default server block.
include /etc/nginx/default.d/*.conf;
位置 / {
proxy_pass http://my.server.ip.add:8080; root / usr / share / nginx / html; proxy_redirect关闭; 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”
我实际上要实现的是:我试图使用nginx运行node.js和apache。 我还没有开始节点。
我的问题:
晚上好,首先您在基础设施层面所做的所有考虑都非常好,而且我认为尽管当前实施困难,代理配置是最好的。
我一直在使用它一段时间,好处是巨大的。 不过,我想问问你使用的是哪种类型的云基础设施,因为有很多事情因技术基础设施而变化。 例如,我只使用与CloudFlare或其他AWS完全不同的Google Cloud Platform。
从结构的角度来看,所做的配置过于明确并且不清楚。 您应该尝试这种方式:首先,使用上游域名指令输入http上下文并使用Apache输入服务器IP地址,然后通过包含proxy_params文件和snippet ssl的参数来声明服务器和位置上下文。
如果您想要并帮助我了解我们采用的基础架构,我们可以看到如何进行配置,但即将到来,因为每个基础架构都会响应不同的配置。
它也适用于php7.0。 例如,使用php7.0配置PrestaShop 1.7.1.1我必须对CMS的php.ini代码进行很多更改,因为我没有在FPM中使用CGI,但是,正如我所说的,这是非常多变的。
请参阅https://www.webfoobar.com/node/35
链接地址: http://www.djcxy.com/p/32549.html上一篇: Nginx reverse proxy apache on centos 7, configuring both http and https