nginx服务器常见配置

nginx是一个优秀的静态服务器,本博客就搭建在nginx服务器中。本博客由Hexo生成静态文件,上传至nginx里的网站目录中(www)即可,用起来非常方便。现将搭博客中用到的配置总结一下,包括: 排除指定目录; 添加服务器ssl证书; 301重定向

预备

这里介绍查找nginx配置文件路径的方法

查找nginx服务器配置文件路径

不同安装方式,不同服务器的nginx的配置文件路径会不一样,那么使用whereis命令可以很快定位nginx的安装位置

1
2
$ whereis nginx
nginx: /usr/sbin/nginx /etc/nginx /usr/share/nginx

很明显/etc/nginx就是我们要找的nginx配置路径

排除指定目录

hexo博客在部署时直接采用git上传至服务器中,但是目录中包含了git的配置目录.git,如果不进行排除,在浏览器地址栏中输入文件名,是可以直接访问的,可能会造成一些安全问题,因此,我们要把此目录排除,不能通过浏览器直接访问。

找到配置文件中server的位置,在server里添加如下语句:

1
2
3
4
5
server {
location ~ /\. {
deny all;
}
}

nginx301重定向

如果一个网站有多个域名(包括二级域名),通过301重定向可以使搜索引擎的权重集中到同一个域名上。

修改配置文件

找到配置文件中server的位置,添加如下语句:

1
2
3
4
5
server {
if ($host != 'tianle.me'){
rewrite ^/(.*)$ http://tianle.me/$1 permanent;
}
}

添加SSL证书(支持https访问)

为了装逼,为了安全

申请SSL证书

目前很多网站都可以申请SSL免费证书,安照步骤来就好了,申请成功后下载证书。

在nginx中安装证书

下载完证书,打开后我们会发现有很多服务器,我们选择nginx。
证书截图
把里面的两证书文件crt,key上传到服务器的任意路径,如:~/ssl/

修改配置文件

同样,在server里面加入如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
server{
# SSL configuration
#
listen 443 ssl;
listen [::]:443 ssl;
#rewrite ^(.*) https://$host$1 permanent;
#ssl on;
ssl_certificate ~/ssl/1_tianle.me_bundle.crt;
ssl_certificate_key ~/ssl/2_tianle.me.key;
ssl_session_timeout 5m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
ssl_prefer_server_ciphers on;
}

重启nginx服务

1
sudo service nginx restart

Done!