nginx中server_name配置域名不生效
前段時(shí)間剛搭建好個(gè)人網(wǎng)站,一直沒(méi)有關(guān)注一個(gè)問(wèn)題,那就是IP地址也可以訪問(wèn)我的網(wǎng)站,今天就專門研究了一下nginx配置問(wèn)題,爭(zhēng)取把這個(gè)問(wèn)題研究透徹。
1. nginx配置域名及禁止直接通過(guò)IP訪問(wèn)
先來(lái)看nginx的默認(rèn)配置,ubuntu默認(rèn)位置 /etc/nginx/sites-enabled 。
(注意:sites-enabled里的配置其實(shí)是軟鏈接,鏈接到sites-available下的真實(shí)配置,這是nginx的一種最佳實(shí)踐,希望我們?cè)趕ites-available下修改配置,等修改好以后在鏈接到sites-enabled下,不過(guò)我這里沒(méi)采納這種最佳實(shí)踐,直接在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; }
最簡(jiǎn)單的配置nginx的方式就是直接改這個(gè)default文件,加上自己的網(wǎng)站配置:
# 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; }
不過(guò),不推薦這種方式。如果這樣配置,惡意用戶可以用自己的域名指向我們的IP,蹭我們的流量,來(lái)養(yǎng)他的域名,非常討厭。
我更推薦把這個(gè)配置復(fù)制一份,在復(fù)制的配置里修改網(wǎng)站信息。
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; # 指向網(wǎng)站文件根目錄 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訪問(wèn)和別人把域名惡意指向我們的IP。
想要禁止IP訪問(wèn)的話,就修改default配置:
server { listen 80 default_server; listen [::]:80 default_server; server_name _; return 500; # 添加這句,當(dāng)用IP訪問(wèn)時(shí),返回500錯(cuò)誤碼 }
這也同樣可以阻止別人惡意把域名指向我們的服務(wù)器IP,蹭我們的流量。
2. 配置https
如果是配置了https,我們就增加一個(gè)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證書和密鑰,不然會(huì)導(dǎo)致域名的https無(wú)法訪問(wèn)。
正常網(wǎng)站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; # 網(wǎng)站文件根目錄 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. 如何解決別人域名惡意指向自己服務(wù)器IP的問(wèn)題以及搜集流量
如果按照我上面的配置方法,那么就不怕別人把域名指向我們的IP了。要是在應(yīng)用上述配置之前就已經(jīng)有惡意域名指向我們IP了,怎么辦呢,沒(méi)問(wèn)題,我們可以把這些域名重定向到我們自己的域名,相當(dāng)于把這些流量都搜集起來(lái),導(dǎo)入到自己的域名。
對(duì)default和default_ssl做如下修改:
# default server { listen 80 default_server; listen [::]:80 default_server; server_name _; #return 500; # 添加這句,當(dāng)用IP訪問(wèn)時(shí),返回500錯(cuò)誤碼 return 301 https://www.domain.com; //把IP和其他域名訪問(wèn)的流量永久重定向到我們的域名 }
和:
# 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和其他域名訪問(wèn)的流量永久重定向到我們的域名 }
還可以把自己域名http重定向到https:
server { listen 80; listen [::]:80; server_name www.domain.com; return 301 https://$server_name$request_uri; }
至此,就解決了被別人用域名惡意蹭流量的問(wèn)題。
到此這篇關(guān)于nginx中server_name配置域名不生效的文章就介紹到這了,更多相關(guān)nginx server_name域名不生效內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
利用nginx + fastcgi實(shí)現(xiàn)圖片識(shí)別服務(wù)器
這篇文章主要給大家介紹了關(guān)于如何利用nginx + fastcgi實(shí)現(xiàn)圖片識(shí)別服務(wù)器的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-03-03fastdfs+nginx集群搭建的實(shí)現(xiàn)
這篇文章主要介紹了fastdfs+nginx集群搭建的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-10-10Linux下用Nginx作Perl程序服務(wù)器及其中Perl模塊的配置
這篇文章主要介紹了Linux下用Nginx作Perl程序服務(wù)器及其中Perl模塊的配置,文中使用到了FastCGI中間件進(jìn)行連接,需要的朋友可以參考下2016-02-02Nginx服務(wù)器中使用gzip壓縮的相關(guān)配置解析
這篇文章主要介紹了Nginx服務(wù)器中使用gzip壓縮的相關(guān)配置解析,包括對(duì)gzip請(qǐng)求處理相關(guān)的壓縮配置,需要的朋友可以參考下2015-12-12Nginx高可用(主從、主主模式)的項(xiàng)目實(shí)踐
本文介紹了Nginx高可用性的兩種主要解決方案,主從架構(gòu)和主主架構(gòu),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2025-02-02Nginx http運(yùn)行狀況健康檢查配置過(guò)程解析
這篇文章主要介紹了Nginx http運(yùn)行狀況健康檢查配置過(guò)程解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-08-08Ubuntu系統(tǒng)下的Nginx服務(wù)器軟件安裝時(shí)的常見(jiàn)錯(cuò)誤解決
這篇文章主要介紹了Ubuntu系統(tǒng)下的Nginx服務(wù)器軟件安裝時(shí)的常見(jiàn)問(wèn)題解決,包括徹底卸載Nginx的方法介紹,需要的朋友可以參考下2016-03-03Nginx 如何限制訪問(wèn)頻率,下載速率和并發(fā)連接數(shù)的方法
這篇文章主要介紹了Nginx 如何限制訪問(wèn)頻率,下載速率和并發(fā)連接數(shù)的方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-08-08