Nginx安装及配置
·
2 min read
最近在部署Web站点,用到了nginx,这里记录主要相关操作及配置。 来句概括的话,nginx是一个高性能的http与反向代理服务器,具体nginx了解请看官网及维基百科,了解下,
相关命令
# yum方式安装nginx
$ yum -y install nginx
# 启动nginx服务
$ nginx
# 重载nginx配置
$ nginx -s reload
# 停止nginx服务
$ nginx -s stop
相关配置
gzip
Gzip开启以后会将输出到用户浏览器的数据进行压缩的处理,减小通过网络传输的数据量,提高浏览的速度。
下面贴出在nginx.conf配置文件中配置gzip的基本信息
# Gzip
# 开启gzip
gzip on;
# 启用gzip压缩的最小文件,小于设置值的文件将不会压缩
gzip_min_length 1k;
# gzip 压缩级别,1-10,数字越大压缩的越好,也越占用CPU时间,后面会有详细说明
gzip_comp_level 2;
# 进行压缩的文件类型。javascript有多种形式。其中的值可以在 mime.types 文件中找到。
gzip_types text/plain application/javascript application/x-javascript text/css text/html application/xml text/javascript application/x-httpd-php image/jpeg image/gif image/png;
# 是否在http header中添加Vary: Accept-Encoding,建议开启
gzip_vary on;
# 禁用IE 6 gzip
gzip_disable "MSIE [1-6]\.";
关于前端静态资源的gzip,我们也可以采取预压缩方案,这样子,对于用户请求,能够更快的服务,提升性能,比如webpack就可以再打包前端静态资源的时候,生成gz文件。 这里贴出静态gzip配置项。
gzip_static on;
- 反向代理
#定义一个服务器,监听80端口,配置的域名是www.1991421.cn
server{
listen 80;
# using www domain to access the main website
server_name www.1991421.cn;
access_log /var/log/nginx/www.log
location / {
root /usr/www/website_root;
}
}
HTTP强转HTTPS
server {
listen 80;
server_name blog.alanhe.me;
return 301 https://$server_name$request_uri;
}
server {
listen 443 ssl http2 default_server;
listen [::]:443 ssl http2 default_server;
ssl on;
ssl_certificate "/etc/nginx/ssl/blog.alanhe.me/fullchain.cer";
ssl_certificate_key "/etc/nginx/ssl/blog.alanhe.me/blog.alanhe.me.key";
...
}
client_max_body_size
如果报413 (Request Entity Too Large)
错误,需要注意该配置,默认1MB
。
- 按需修改,如果不想限制,改为0即可。
- client_max_body_size可以放在server或者location下。
location / {
client_max_body_size 0;
}
/usr/share/nginx/html
静态资源推荐托管位置放在这里。
referrer白名单
valid_referers none *.1991421.cn 1991421.cn;
if ($invalid_referer) {
return 403;
}