主要为了记录一下nginx配置web服务的一些笔记。
http-->https
我的博客使用了腾讯云免费签发的证书,因此可以使用https访问,默认情况下http也是可以访问的,那么如何将http请求301重定向到https,便是第一个要解决的问题。
编辑/etc/nginx/nginx.conf文件:
server {
listen 80;
server_name yourdomain.com;
return 301 https://$server_name$request_uri;
}
server {
listen 443;
server_name yourdomain.com;
}
创建一个80端口,一个443端口的web服务,并且将80端口的服务重定向到https://….。重启nginx后,访问http://yourdomain.com会被301重定向到https://yourdomain.com
禁止访问某些目录文件
由于我的博客项目存放在git上,因此服务器web目录内含有.git目录,也算是敏感信息泄露(当然都是一些静态的网页,其实也没有什么危害),那么如何在nginx中配置访问.git目录403是要解决的第二个问题。
编辑/etc/nginx/nginx.conf文件:
server {
listen 443;
server_name yourdomain.com;
......
location /.git/ {
deny all;
}
}
添加一个location,禁止访问某目录。重启nginx后,尝试访问https://yourdomain.com/.git/ 返回403。
只能通过域名访问网站
如果博客不想通过IP被访问到,需要在nginx上配置禁止ip访问,或者访问ip跳转到域名。
编辑/etc/nginx/nginx.conf文件:
server {
listen 80 default_server;
listen 443 default_server;
return 403
}
重启nginx,访问:http://150.109.106.49/ 返回403。
权限问题
首先说明一下,一般我不推荐使用root权限启动nginx服务。但如果nginx服务是用root权限安装的,且网站放在root目录下,启动nginx解析网站会有权限问题(因为配置文件中默认不是用root权限启动),因此需要更改配置文件为:
user root;
更安全的方法是用普通用户权限安装nginx,并将web目录移到普通用户目录下,用普通用户权限启动nginx服务。