我正在使用Nginx的Apache反向代理,我有多个VHOSTS,我想在一个单一的nginx虚拟主机文件中提供全部支持SSL。
我的服务器块是
server { listen 80; server_name _; root /var/www/$host/web; access_log /var/log/mylogs/httpd/$host/access.log; location / { try_files $uri $uri/ /index.php; } location ~ \.php$ { proxy_pass http://SERVERIP:8090; 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 $scheme; } location ~ /\. { deny all; } }
这对于所有站点没有SSL都能正常工作,但是当我为以下SSL支持做同样的工作时:
server { listen 80; server_name _; ssl on; ssl_certificate /var/www/$host/ssl/$host-le.crt; ssl_certificate_key /var/www/$host/ssl/$host-le.key; root /var/www/$host/web; access_log /var/log/mylogs/httpd/$host/access.log; location / { try_files $uri $uri/ /index.php; } location ~ \.php$ { proxy_pass http://MYIP:8090; 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 $scheme; } location ~ /\. { deny all; } }
我得到了这样的错误
ssl_certificate /var/www/$host/ssl/$host-le.crt not found nginx config test failed
我的虚拟主机Web文件是这种格式
/var/www/domain1.com/web /var/www/domain2.com/web /var/www/domain3.com/web
和他们的SSL证书和钥匙在
/var/www/domain1.com/ssl /var/www/domain2.com/ssl /var/www/domain3.com/ssl
请帮助我,我是noob,仍在学习….