当前位置:   article > 正文

nginx配置域名和ip_nginx配置域名和ip都能访问

nginx配置域名和ip都能访问

nginx配置域名和ip

原文链接:https://blog.csdn.net/axe6404/article/details/120918830

1、配置域名和ip同时访问,只需要配置

server_name lanxin.cn,locahost;
  • 1

也就是制定server配置节里面的server_name ,域名和localhost之间用逗号分隔就可以了。

2、多端口则需要将server复制多个,每个里面指定不同端口就好了。例如:

server {
#应用端口
listen 80;
server_name lanxin.cn,locahost;

……

}

server {
#应用端口
listen 8899;
server_name locahost;

……

}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17

这样就开放了80端口和8899端口。域名和IP能够同时访问。

原文链接:https://www.cnblogs.com/forheart/p/12945355.html

使用nginx配置域名及禁止直接通过IP访问网站

1. nginx配置域名及禁止直接通过IP访问

先来看nginx的默认配置,ubuntu默认位置 /etc/nginx/sites-enabled 。

(注意:sites-enabled里的配置其实是软链接,链接到sites-available下的真实配置,这是nginx的一种最佳实践,希望我们在sites-available下修改配置,等修改好以后在链接到sites-enabled下,不过我这里没采纳这种最佳实践,直接在sites-enabled目录下增加配置,哈哈。)

server {

listen 80 default_server;

listen [::]:80 default_server;


server_name _;

root /var/www/html;

index index.html index.htm index.nginx-debian.html;

}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14

最简单的配置nginx的方式就是直接改这个default文件,加上自己的网站配置:

server {

listen 80 default_server;

listen [::]:80 default_server;

server_name www.domain.com;

root /path/to/www.domain.com;

index index.html index.htm;

}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

不过,不推荐这种方式。如果这样配置,恶意用户可以用自己的域名指向我们的IP,蹭我们的流量,来养他的域名,非常讨厌。

我更推荐把这个配置复制一份,在复制的配置里修改网站信息。

cp default domain-website

  • 1
  • 2

然后修改信息:

domain-website

server {

listen 80; # 去掉这里的default_server

listen [::]:80; # 去掉这里的default_server

server_name www.domain.com; # 修改自己的域名

root /path/to/www.domain.com; # 指向网站文件根目录

index index.php index.html index.htm;

location / {

try_files $uri $uri/ /index.php?$query_string;

}

location ~ \.php$ {

include snippets/fastcgi-php.conf;

fastcgi_pass unix:/run/php/php7.0-fpm.sock;

}


}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28

这样配置就很灵活了,方便我们禁止IP访问和别人把域名恶意指向我们的IP。

想要禁止IP访问的话,就修改default配置:

server {

listen 80 default_server;

listen [::]:80 default_server;

server_name _;

return 500; # 添加这句,当用IP访问时,返回500错误码

}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

这也同样可以阻止别人恶意把域名指向我们的服务器IP,蹭我们的流量。

2. 配置https

如果是配置了https,我们就增加一个default-ssl配置文件:

default-ssl

server {

listen 443 ssl default_server;

listen [::]:443 ssl default_server;

#ssl on;

ssl_certificate cert/www.domain.com.pem; # SSL证书和密钥

ssl_certificate_key cert/www.domain.com.key;

server_name _;

return 500;

}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17

注意:一定要加上自己的SSL证书和密钥,不然会导致域名的https无法访问。

正常网站https配置:

domain-website-ssl

server {

listen 443;

listen [::]:443;

ssl on;

ssl_certificate cert/www.domain.com.pem; # SSL证书和密钥

ssl_certificate_key cert/www.domain.com.key;

ssl_session_timeout 30m;

ssl_protocols TLSv1 TLSv1.1 TLSv1.2;

ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;

ssl_prefer_server_ciphers on;

 

server_name www.domain.com; # 域名

root /path/to/www.domain.com; # 网站文件根目录

index index.php index.html index.htm;

location / {

try_files $uri $uri/ /index.php?$query_string;

}

location ~ \.php$ {

include snippets/fastcgi-php.conf;

fastcgi_pass unix:/run/php/php7.0-fpm.sock;

}

}

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44

3. 如何解决别人域名恶意指向自己服务器IP的问题以及搜集流量

如果按照我上面的配置方法,那么就不怕别人把域名指向我们的IP了。要是在应用上述配置之前就已经有恶意域名指向我们IP了,怎么办呢,没问题,我们可以把这些域名重定向到我们自己的域名,相当于把这些流量都搜集起来,导入到自己的域名。

对default和default_ssl做如下修改:

default

server {

listen 80 default_server;

listen [::]:80 default_server;

server_name _;

#return 500; # 添加这句,当用IP访问时,返回500错误码

return 301 https://www.domain.com; //把IP和其他域名访问的流量永久重定向到我们的域名

}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

和:

default_ssl

server {

listen 443 ssl default_server;

listen [::]:443 ssl default_server;

#ssl on;

ssl_certificate cert/www.domain.com.pem; # SSL证书和密钥

ssl_certificate_key cert/www.domain.com.key;

server_name _;

return 500;

return 301 https://www.domain.com; //把IP和其他域名访问的流量永久重定向到我们的域名


}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20

还可以把自己域名http重定向到https:

server {

listen 80;

listen [::]:80;

server_name www.domain.com;

return 301 https://$server_name$request_uri;

}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

至此,就解决了被别人用域名恶意蹭流量的问题。

本文内容由网友自发贡献,转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号