nginx禁止使用ip访问

mtain 2023年05月29日 184次浏览

IP+端口访问:直接返回404,只允许使用域名访问,防止被端口扫描后恶意访问

#user  nobody;
worker_processes  3;

#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;

#pid        logs/nginx.pid;


events {
    worker_connections  1024;
}


http {
    include       mime.types;
    default_type  application/octet-stream;

    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                     '"$http_user_agent" "$http_x_forwarded_for"';

    access_log  logs/access.log  main;

    sendfile        on;
    #tcp_nopush     on;

    #keepalive_timeout  0;
    keepalive_timeout  65;

    #gzip  on;
	server {
	    listen 80 default;
		server_name _;
		return 404;
	}
	
	server {
		listen 443 ssl default_server;

		server_name _;

		#填写证书文件名称
		ssl_certificate cert/[域名].pem;
		#填写证书私钥文件名称  
		ssl_certificate_key cert/[域名].key;
		
		return 404;
	}
	
	server {
	    listen 80;
		server_name [域名];
		rewrite ^(.*) https://[域名] permanent;
	}
	
	server {
		#配置HTTPS的默认访问端口为443。
		#如果未在此处配置HTTPS的默认访问端口,可能会造成Nginx无法启动。
		#如果您使用Nginx 1.15.0及以上版本,请使用listen 443 ssl代替listen 443和ssl on。
		listen 443 ssl;

		#填写证书绑定的域名
		server_name [域名];
		root html;
		index index.html index.htm;

		#填写证书文件名称
		ssl_certificate cert/[域名].pem;
		#填写证书私钥文件名称  
		ssl_certificate_key cert/[域名].key;

		ssl_session_timeout 5m;
		#表示使用的加密套件的类型
		ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
		#表示使用的TLS协议的类型,您需要自行评估是否配置TLSv1.1协议。
		ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3;

		ssl_prefer_server_ciphers on;
		
		location / {
			root   html;
			index  index.html index.htm;
		}

	}
   



}