设置http强制转跳https,并禁止IP方式访问

本文详细介绍了如何在Nginx中实现HTTP到HTTPS的强制跳转,以及如何禁止IP直接访问,包括配置示例和验证步骤。涉及的技术包括SSL配置、重写规则和返回状态码等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、强制http转跳https

编辑 Nginx 根目录下的 conf/nginx.conf 文件,内容如下(添加在listen 80后面)
rewrite ^(.*)$ https://$host$1 permanent;
或者
return 301 https://$host$request_uri; 
通过执行以下命令验证配置文件问题
./sbin/nginx -t

二、禁止IP方式访问

在原server前增加以下配置

    server{
         listen 80 default;
         server_name _;
         return 403;
    }

    server {
    listen 443 ssl default_server;
    listen [::]:443 ssl default_server;
    #ssl on;
    ssl_certificate xxxxx.crt;
    ssl_certificate_key xxxx.key;
    server_name _;
    return 400;
}

三、完整代码示例


#user  nobody;
worker_processes  1;

#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 403;
    }
    server {
        listen       80;
        server_name  你的站点域名;
        rewrite ^(.*)$ https://$host$1 permanent;
        location / {
            root   html/你的站点域名;
            index  index.html index.htm;
        }
        error_page  404              /404.html;
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }
    # HTTPS server
    #
	server {
    listen 443 ssl default_server;
    listen [::]:443 ssl default_server;
    #ssl on;
    ssl_certificate 你的站点域名_bundle.crt;
    ssl_certificate_key 你的站点域名.key;
    server_name _;
    return 400;
}
    server {
        listen 443 ssl; 
        #填写绑定证书的域名
        server_name 你的站点域名; 
        #证书文件名称
        ssl_certificate 你的站点域名_bundle.crt; 
        #私钥文件名称
        ssl_certificate_key 你的站点域名.key; 
        ssl_session_timeout 5m;
        #请按照以下协议配置
        ssl_protocols TLSv1.2 TLSv1.3; 
        #请按照以下套件配置,配置加密套件,写法遵循 openssl 标准。
        ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE; 
        ssl_prefer_server_ciphers on;
        location / {
            root   html/你的站点域名;
            index  index.html index.htm;

        }
    }
	

}

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值