为什么我的configuration在指定时不会路由到特定的server_name
?
我的configuration的一部分:
server { listen 443 ssl; server_name foo-bar.example.com; include includes/http/server/ssl.conf; location / { #... } } server { listen 80 default_server; listen 162 default_server; listen 443 default_server; listen 465 default_server; listen 3306 default_server; listen 9200 default_server; return 444; }
但是,转到域foo-bar.example.com
将返回444
状态。 当我删除最后一个块时,它按预期工作。
我试着添加:
server_name ""
server_name _
在最后一块没有成功
此页面上定义的优先级: http : //nginx.org/en/docs/http/server_names.html
- 确切的名字
- 以星号开头的最长通配符名称,例如“* .example.org”
- 最长的通配符名称以星号结尾,例如“mail。*”
- 首先匹配正则expression式(按照在configuration文件中出现的顺序)
…告诉我,我所做的应该工作,伊莫。
查看位于/var/log/nginx/
中的error.log
,发现no "ssl_certificate" is defined in server listening on SSL port while SSL handshaking
所以添加一个新的块:
server { listen 443 default_server; include includes/http/server/ssl.conf; return 444; }
…当从前面的块中删除listen 443 default_server
,做了诀窍…
包括/ HTTP /服务器/ ssl.conf中
ssl_certificate /etc/ssl/certs/crt.crt; ssl_certificate_key /etc/ssl/private/key.key;