标题:
[提问]
咨询个问题nginx 多域名多站点使用https的问题
[打印本页]
作者:
小小青年
时间:
2017-6-16 17:34
标题:
咨询个问题nginx 多域名多站点使用https的问题
咨询个问题nginx 多域名多站点使用https的问题 ,
比如,我未使用面板一键安装,而是自己 安装的nginx等软件,怎么样配置,才能使用多域名多站点的,https互不干扰,怎么样配置的,我最近不知道怎么样可以,或者,是不是高版本的nginx就支持的,不需要另外配置的,因为是新手学nginx有问题就问,所以有懂的,帮忙解答一下。谢谢。
作者:
wolfone
时间:
2017-8-4 02:54
本帖最后由 wolfone 于 2017-8-4 02:59 编辑
刚好碰到同样的问题,查了一下资料,经测试是可以解决的
1,配置文件
nginx/conf/
nginx.conf
按主机分配,这个你可以参考wdcp的写法
include vhost/*.conf;
复制代码
我理解就是不同的站点,单独一个配置文件
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哦
欢迎光临 WDlinux官方论坛 (http://wdlinux.cn/bbs/)
Powered by Discuz! 7.2