VPS侦探论坛

 找回密码
 注册
查看: 81127|回复: 29

nginx关闭默认站点/空主机头(禁止IP直接访问、防止域名恶...

[复制链接]
发表于 2010-10-14 20:34:04 | 显示全部楼层 |阅读模式

默认情况下,只要将域名解析到vps的IP上,访问该域名就会访问到lnmp默认虚拟主机的默认页面。为了防止别人恶意将域名解析到自己的IP上,可以通过以下方法进行,修改/usr/local/nginx/conf/nginx.conf ,将里面的默认的虚拟主机server{}段修改为如下即可:
  1. server {
  2. listen 80 default_server;
  3. server_name _;
  4. return 500;
  5. }
复制代码
当然也可以将return 500;替换为rewrite ^(.*) https://www.vpser.net permanent;   将流量导入到你指定的网站上。也可以改成return 444; 这样所有的访问都被直接丢弃。
最后记住,/usr/local/nginx/sbin/nginx -s reload


使用空主机头后,原默认虚拟主机下的文件,如PHPmyadmin将无法访问,需要你加个二级域名指向phpmyadmin目录就行了。

对于开启了https的用户,未添加https站点的域名,也可以https访问,只是会访问默认的https网站并提示不安全、域名证书不匹配。
开启SSL后https的空主机头的设置
  1. server {
  2. listen 443 ssl default_server;
  3. server_name _;
  4. ssl on;
  5. ssl_certificate 随便设置一个ssl证书;
  6. ssl_certificate_key 随便设置一个ssl证书的key;
  7. return 500;
  8. }
复制代码


nginx 1.15.0 以上版本去掉ssl on;

如果是nginx 1.19.4或更高版本,可以添加 ssl_reject_handshake on; 不用再设置ssl证书和key及设置return 500,https站点未添加的域名使用https访问会直接拒绝握手,浏览器会报 ERR_SSL_UNRECOGNIZED_NAME_ALERT 的错误。配置如下:
  1. server {
  2. listen 443 ssl default_server;
  3. server_name _;
  4. ssl_reject_handshake on;
  5. }
复制代码


注意!注意!nginx 1.24.0及更高版本  listen 443 ssl default_server; 需要修改为:listen 443 ssl http2 default_server; 不然会报如下错误:nginx: [warn] protocol options redefined for 0.0.0.0:443 in /usr/local/nginx/conf/vhost/xxxx.conf:56 修过完成都是需要重启或reload nginx使其生效的。
美国VPS推荐: 遨游主机LinodeLOCVPS主机云搬瓦工80VPSVultr美国VPS主机中国VPS推荐: 阿里云腾讯云。LNMP付费服务(代装/问题排查)QQ 503228080
 楼主| 发表于 2021-5-20 08:16:42 | 显示全部楼层


wm11261 发表于 2021-5-18 20:40
server {
        listen 443 default_server;
        ssl on;

nginx 1.15.0 以上版本去掉ssl on;

不是这个ip的ssl证书且不是ssl服务商签发的肯定会提示不安全,想要完美解决办法很简单,ip的ssl证书见过最低的价格是500+RMB
Linux下Nginx+MySQL+PHP自动安装工具:https://lnmp.org
发表于 2010-10-25 17:27:35 | 显示全部楼层

那这样的话phpmyadmin就无法访问了
美国VPS推荐: 遨游主机LinodeLOCVPS主机云搬瓦工80VPSVultr美国VPS主机中国VPS推荐: 阿里云腾讯云。LNMP付费服务(代装/问题排查)QQ 503228080
 楼主| 发表于 2010-10-26 15:04:19 | 显示全部楼层

回复 2# 的帖子




你可以专门弄个二级域名绑定到phpmyadmin上。
Linux下Nginx+MySQL+PHP自动安装工具:https://lnmp.org
发表于 2010-10-26 15:11:52 | 显示全部楼层

  1. server
  2.         {
  3.                 listen       80;
  4.                 server_name localhost;
  5.                 index index.html index.htm index.php;
  6.                 root  /home/wwwroot;
复制代码
这个实用,请问军哥,是不是修改这里?

军哥运维代购:http://shop63846532.taobao.com/

发表于 2010-10-26 15:13:32 | 显示全部楼层

  1. server_name localhost;
  2. index index.html index.htm index.php;
  3. root /home/wwwroot;
复制代码



把这些替换?
 楼主| 发表于 2010-10-26 15:31:32 | 显示全部楼层

回复 5# 的帖子


美国VPS推荐: 遨游主机LinodeLOCVPS主机云搬瓦工80VPSVultr美国VPS主机中国VPS推荐: 阿里云腾讯云。LNMP付费服务(代装/问题排查)QQ 503228080
发表于 2011-6-28 21:20:05 | 显示全部楼层

这样安全性要好很多,我从前为这个吃过大亏,服务器被迫强行下架扫地出门……

如果用Pure-ftpd的话,也和phpmyadmin一样,得单独用个二级域名指一下
Linux下Nginx+MySQL+PHP自动安装工具:https://lnmp.org
发表于 2011-8-13 23:28:03 | 显示全部楼层


具体的应该怎么弄呢? 是不是也是用vhost.sh绑定上一个? 我用vhost.sh绑了一个a.domain.com到/home/wwwroot/phpmyadmin
,但是输入a.domain.com却无法打开


问题解决了,https://bbs.vpser.net/thread-3769-1-1.html

[ 本帖最后由 kuluutu 于 2011-8-15 10:56 编辑 ]
美国VPS推荐: 遨游主机LinodeLOCVPS主机云搬瓦工80VPSVultr美国VPS主机中国VPS推荐: 阿里云腾讯云。LNMP付费服务(代装/问题排查)QQ 503228080
发表于 2011-8-14 11:43:04 | 显示全部楼层



俺不用500 俺用 403
发表于 2012-1-29 21:14:51 | 显示全部楼层

一年后总结


三种办法
一个是空头主机去除,也就是军哥的办法.但是如果我用的直接就是这个默认站点(空头主机)如何
二个是用vhost命令去弹开,向楼上说的,但是这里无端多了一个配置文件和子站点目录
三个是用反向代理去弹开.直接在conf里边加反向代理配置即可.

第一种我想比较节约资源,但是会将空头主机删除,对于需要这个默认站点的人来说,有点无奈.
2,3应该都会占用一些资源,但是2的方法,如果恶意解析的域名有一串如何?你得建立多少个文件夹.3相对折中.
发表于 2012-1-29 22:01:54 | 显示全部楼层

我把默认目录的ftp和phpmyadmin目录改名不知道可不可以?
Linux下Nginx+MySQL+PHP自动安装工具:https://lnmp.org
发表于 2012-3-20 00:41:27 | 显示全部楼层
这个帖子太需要了,可惜沉底了,顶上来。
美国VPS推荐: 遨游主机LinodeLOCVPS主机云搬瓦工80VPSVultr美国VPS主机中国VPS推荐: 阿里云腾讯云。LNMP付费服务(代装/问题排查)QQ 503228080
发表于 2012-3-21 12:54:19 | 显示全部楼层
为什么修改后,报错呢?

军哥运维代购:http://shop63846532.taobao.com/

发表于 2012-5-12 13:26:19 | 显示全部楼层
呵呵,太好了,找了半天终于找到这里,搜索了半天原来是关键词不对。。。
发表于 2012-7-28 12:33:03 | 显示全部楼层
标记一下,又学习了一个东东。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|VPS侦探 ( 鲁ICP备16040043号-1 )

GMT+8, 2024-4-30 01:32 , Processed in 0.031750 second(s), 19 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表