一、http强制跳转https

server {
    listen 80;
    server_name fyszy.com;
    index index.html index.php index.htm;
   
    access_log  /usr/local/nginx/logs/8080-access.log main;
    error_log  /usr/local/nginx/logs/8080-error.log;
 
    return      301 https://$server_name$request_uri;      
  
    location ~ / {
    root /var/www/html/8080;
    index index.html index.php index.htm;
    }
}

二、下不带www跳转www

server {
    listen 443;
    server_name fyszy.com;
    return 301 https://$server_name$request_uri;
}

server {
    listen       443 default_server ssl;
    server_name  www.fyszy.com;
    root         html;
    index index.php index.html index.htm;
    ssl                  on;
    #ssl设置
}

三、Nginx设置防止IP及非配置域名访问

国内网站的特殊性,国内空间必须备案才能使用,如果域名指向某一空间ip而未备案,会导致该空间被强制关闭。正常情况下,你给自己的域名指向自己的空间并做了备案处理就结束了。但是此时如果有第三方恶意的将其它域名解析指向你的空间,则你的空间和该域名之间就属于未备案状态了。结果是导致你的空间收到处罚。

禁止恶意解析,禁止ip直接访问的目的,就是让本服务器仅响应自己指定的域名,对第三方的域名接入或者ip直接接入返回错误,达到禁止恶意解析的目的。

在前述配置文件的server块处,添加以下块内容

server {
    listen 80 default_server;
    server_name _;
    return 404;
}

上面是nginx官方给出的配置
但是好像这只支持http,如果https的话不管配置在哪、是否配置default_server都会把用域名访问和IP直接访问404。

server {
    listen 80;
    listen [::]:80;
    server_name example.com;
    return 301 https://$host$request_uri;
}

server {
    listen 443 ssl http2;
    listen [::]:443 ssl http2;
    server_name example.com;

    if ( $host = $server_addr ) {
        return 404;
    }
    # ...
}

我现在是这样配置的,http请求301跳转到https,然后用if来检测如果是用服务器IP地址来请求的话就404。

四、禁止与开启ping设置

禁止ping:

echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all

允许ping:

echo 0 > /proc/sys/net/ipv4/icmp_echo_ignore_all

可以将命令设置为开机启动

chmod +x /etc/rc.d/rc.local
vi /etc/rc.d/rc.local

然后就可以在里面添加你要开机自启的命令了

最后修改:2022 年 04 月 27 日
如果觉得我的文章对你有用,请随意赞赏