nginx
的配置文件是在/usr/local/nginx/conf/nginx.conf
下的,所有关于站点的配置文件是放在/usr/local/nginx/conf/vhost
目录中的,ssl
证书是放在/usr/local/nginx/conf/ssl
目录中的,当然每个人的目录可能都有所差别,可以根据自己的配置自行对应
server {
listen 80; # 配置80端口
return 301 https://$server_name$request_uri; # 强制使用https,其中$server_name和$request_uri为nginx提供的变量名
}
server{
listen 443 ssl;
ssl_certificate_key /usr/local/nginx/conf/ssl/ceshi.com.key; # ssl证书的key
ssl_certificate /usr/local/nginx/conf/ssl/ceshi.com.pem; # ssl证书的秘钥
ssl_session_cache shared:le_nginx_SSl:1m; # 使用session降低握手的次数,1m表示1兆,大约可以为4000个HTTPS服务
ssl_session_timeout 1440m; # session的时间,1440m表示一天
server_name www.ceshi.com; # 域名
root /data/wwwroot/ceshi; # 网站根目录
index index.html index.htm index.php;
access_log /data/wwwlogs/ceshi/access.log; # 日志
error_log /data/wwwlogs/ceshi/error.log;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location /nginx_status {
stub_status on;
access_log off;
allow 127.0.0.1;
deny all;
}
location ~ [^/]\.php(/|$) {
#fastcgi_pass remote_php_ip:9000;
fastcgi_pass unix:/dev/shm/php-cgi.sock;
fastcgi_index index.php;
include fastcgi.conf;
}
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|flv|mp4|ico)$ {
expires 30d;
access_log off;
}
location ~ .*\.(js|css)?$ {
expires 7d;
access_log off;
}
location ~ ^/(\.user.ini|\.ht|\.git|\.svn|\.project|LICENSE|README.md) {
deny all;
}
}
特别注意:
- 如果要强制 https 跳转的话,监听80端口和监听443端口不能写在一个server段中,否则就会出现重定向次数过多的错误