在nginx中处理默认服务器和ip转发的最佳实践

我最近在debian 8上创build了一个nginx服务器。它在/ etc / nginx / sites-available / default中提供了一个默认configuration,它被redirect到一个nginx的欢迎页面。

server { listen 80 default_server; listen [::]:80 default_server; root /var/www/html; index index.php index.html index.htm index.nginx-debian.html; server_name your_server_ip; location / { try_files $uri $uri/ =404; } location ~ \.php$ { include snippets/fastcgi-php.conf; fastcgi_pass unix:/var/run/php/php7.0-fpm.sock; } location ~ /\.ht { deny all; } } 

我已经添加了一个新的生产页面,用'ssl'来说'example.com'。

在../example.com的configuration中,它没有被设置为默认服务器。

 server { listen 80; listen [::]:80; server_name example.com www.example.com; return 301 https://$server_name$request_uri; } server { # SSL configuration listen 443 ssl; listen [::]:443 ssl; include snippets/ssl-example.com.conf; include snippets/ssl-params.conf; .... 

现在,当我通过https://www.ssllabs.com/ssltest/analyze.html?d=example.com进行安全testing时,得到了A +。 但它曾经评论过“不一致的服务器configuration”。

当我加载的IP地址,说浏览器的xxxx为https:// xxxx它加载相同的页面https://example.com但没有SSL(绿色地址栏)上。 如果我加载http:// xxxx它加载默认的nginx欢迎页面。

我试图设置默认configuration(对于ip)来获取禁止消息,我已经添加了下面的代码

 location / { deny all; } 

现在,当我在安全testingexample.com时,它说“没有安全的协议支持”,并没有出现testing结果。

所以我的问题是,

nginx自带的ip地址默认configuration应该怎么做?

哪个server_name(config文件)应该被设置为default_server'listen'命令?

当前正在转发https请求到示例域的ip应该做什么?

预期的结果: –

https://example.com只应该用于连接到服务器和加载IP地址可以显示“页面未find”或“禁止”,因为example.com将用于PHP脚本。

在设置configuration之后,SSLtesting应该给予至less一个额定值。

IP地址不应该直接接受任何连接并进行处理。

默认配置显然不提供SSL。 一般来说,你需要安装一个SSL证书。 有很多关于这个的教程。 进入你的网页的入口取决于你。 你在同一篇文章中提出了不同的问题。

显然你可以在这里和其他地方找到答案,通过搜索。