nginx配置域名和ip


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

1、配置域名和ip同時訪問,只需要配置

server_name lanxin.cn,locahost;

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

2、多端口則需要將server復制多個,每個里面指定不同端口就好了。例如:

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

……

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

……

這樣就開放了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目錄下增加配置,哈哈。)

# default

server {

listen 80 default_server;

listen [::]:80 default_server;


server_name _;

root /var/www/html;

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

}
最簡單的配置nginx的方式就是直接改這個default文件,加上自己的網站配置:

# 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;

}

不過,不推薦這種方式。如果這樣配置,惡意用戶可以用自己的域名指向我們的IP,蹭我們的流量,來養他的域名,非常討厭。

我更推薦把這個配置復制一份,在復制的配置里修改網站信息。

cp default domain-website

然后修改信息:

# 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;

}


}

這樣配置就很靈活了,方便我們禁止IP訪問和別人把域名惡意指向我們的IP。

想要禁止IP訪問的話,就修改default配置:

server {

listen 80 default_server;

listen [::]:80 default_server;

server_name _;

return 500; # 添加這句,當用IP訪問時,返回500錯誤碼

}

這也同樣可以阻止別人惡意把域名指向我們的服務器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;

}

注意:一定要加上自己的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;

}

}

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和其他域名訪問的流量永久重定向到我們的域名

}

和:

# 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和其他域名訪問的流量永久重定向到我們的域名


}

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

server {

listen 80;

listen [::]:80;

server_name www.domain.com;

return 301 https://$server_name$request_uri;

}

至此,就解決了被別人用域名惡意蹭流量的問題。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM