(备注:隐藏index.php入口文件的方法是tp5的,其他框架可能稍有不同,可根据官方文档修改)
不多说,直接上教程:
第一步:
打开nginx配置文件***.conf,在在配置文件中添加以下代码:
#配置共享会话缓存大小,视站点访问情况设定
ssl_session_cache shared:SSL:10m;
#配置会话超时时间
ssl_session_timeout 10m;
server {
listen 443 ssl;
#设置长连接
keepalive_timeout 70;
#HSTS策略
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains; preload" always;
#证书文件
#ssl_certificate example.com.crt;
ssl_certificate example.com.pem;
#私钥文件
#ssl_certificate_key example.com.key;
ssl_certificate_key example.com.key;
#优先采取服务器算法
ssl_prefer_server_ciphers on;
#使用DH文件
#ssl_dhparam example.com.pem;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
#定义算法
ssl_ciphers "EECDH+ECDSA+AESGCM EECDH+aRSA+AESGCM EECDH+ECDSA+SHA384 EECDH+ECDSA+SHA256 EECDH+aRSA+SHA384 EECDH+aRSA+SHA256 EECDH+aRSA+RC4 EECDH EDH+aRSA !aNULL !eNULL !LOW !3DES !MD5 !EXP !PSK !SRP !DSS !RC4";
#减少点击劫持
add_header X-Frame-Options DENY;
#禁止服务器自动解析资源类型
add_header X-Content-Type-Options nosniff;
#防XSS攻擊
add_header X-Xss-Protection 1;
location / {
index index.html index.htm index.php;
autoindex on;
# 重定向请求,追加index.php入口文件,隐藏入口文件的关键地方
try_files $uri $uri/ /index.php?$query_string;
if (!-e $request_filename) {
rewrite ^(.*)$ /index.php?s=/$1 last;
}
}
# php文件解析
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
#fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_split_path_info ^((?U).+\.php)(/?.+)$;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info;
#fastcgi_param REQUEST_URI $isp$request_uri; #将前缀加到REQUEST_URI中,这里是关键,laravel就是根据这个参数来进行路由解析的
include fastcgi_params;
}
}
第二步:
重启服务 或者 重载配置文件 即可。
简单快捷,如有什么不明确的请自行百度,代码上已经尽可能的加上了注释