一、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
然后就可以在里面添加你要开机自启的命令了