提问三步曲: 提问先看教程/FAQ索引(wdcp,wdcp_v3,一键包)及搜索,会让你更快解决问题
1 提供详细,如系统版本,wdcp版本,软件版本等及错误的详细信息,贴上论坛或截图发论坛
2 做过哪些操作或改动设置等
温馨提示:信息不详,很可能会没人理你!论坛有教程说明的,也可能没人理!因为,你懂的
本帖最后由 wolfone 于 2017-8-4 02:59 编辑
刚好碰到同样的问题,查了一下资料,经测试是可以解决的
1,配置文件nginx/conf/nginx.conf按主机分配,这个你可以参考wdcp的写法
我理解就是不同的站点,单独一个配置文件
2,不同主机证书配置就在当前主机的配置文件里面来解决
例如我有两个站点a.com和b.com,a.com站点又绑定域名c.com
那么配置文件vhost里面就有 a.com.conf和b.com.conf两个配置文件
3,先来给把所有证书文件上传
因为个人大多用免费证书,所以先假设3个域名申请不同的证书
那么就有6个文件
分别是(文件名自定义,能记住就行)
a.com.key
a.com.pem
b.com.key
b.com.pem
c.com.key
c.com.pem
先来传证书,目录nginx/conf/cert
4,先来给b.com加上ssl
b.com配置文件nginx/conf/vhost/b.com.conf
这里我是照抄的wd自动生成的
只要注意修改目录,站点域名和证书文件名,就ok了
listen 443;是https的端口443
root是站点目录
ssl开头的部分是设置https的
server_name 是这是域名的
- server { listen 443; root /www/web/b_com/public_html;
- ssl on;
- ssl_certificate cert/b.com.pem;
- ssl_certificate_key cert/b.com.key;
- ssl_prefer_server_ciphers on;
- ssl_session_timeout 10m;
- ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
- ssl_ciphers EECDH+CHACHA20:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES:RSA+3DES:!MD5;
- server_name b.com www.b.com;
- index index.html index.php index.htm;
- error_page 400 /errpage/400.html;
- error_page 403 /errpage/403.html;
- error_page 404 /errpage/404.html;
- error_page 503 /errpage/503.html;
- location ~ \.php$ {
- proxy_pass http://127.0.0.1:88;
- include naproxy.conf;
- }
- location ~ /\.ht {
- deny all;
- }
- location / {
- try_files $uri @apache;
- }
- location @apache {
- internal;
- proxy_pass http://127.0.0.1:88;
- include naproxy.conf;
- }
- }
复制代码
5,看着是完事了,实际上https确实可以访问了,但是80端口没了,所以打开肯定会出404
b.com配置文件nginx/conf/vhost/b.com.conf
再来加一个,加在最顶上,这里我也是照抄的
据我理解
listen是监听端口
root是定义站点目录
server_name 是站点域名
rewrite 就是直接301跳转到https了
后面的其实没有意义,因为我这里删掉后wdcp老是自动生成,我就没动它了
- server {
- listen 80;
- root /www/web/b_com/public_html;
- server_name b.com www.b.com;
- rewrite ^(.*)$ https://$host$1 permanent;
- index index.html index.php index.htm;
- error_page 400 /errpage/400.html;
- error_page 403 /errpage/403.html;
- error_page 404 /errpage/404.html;
- error_page 503 /errpage/503.html;
- location ~ \.php$ {
- proxy_pass http://127.0.0.1:88;
- include naproxy.conf;
- }
- location ~ /\.ht {
- deny all;
- }
- location / {
- try_files $uri @apache;
- }
- location @apache {
- internal;
- proxy_pass http://127.0.0.1:88;
- include naproxy.conf;
- }
- }
复制代码
6,现在b.com已经实现了https了,轮到a.com了
首先就是重复4和5了先给a.com加上https
7,给站点a.com帮你绑定域名c.com并单独加上https
首先a.com配置文件nginx/conf/vhost/a.com.conf已经有2短server{}了
一段是listen80 一段是listen443
然后先是listen80里面 server_name 里面加上c.com和www.c.com
这里就已经把80端口的c.com域名绑定了
最后再加一个步骤4里面的server {listen 443……}内容完全复制即可,内容照步骤4修改
listen 443;不要动
root 站点目录不要动
ssl开头的部分只需修改指定证书文件的2个名称即可
server_name 是这是域名的膝盖成c.com和www.c.com即可
8,至此结束,重启nginx就搞完了
9,注意:开放防火墙里面开放端口443哦 |