难受就摸头盖骨

nginx的安装、配置、启动和gzip

 

原文链接:http://ggz.longpanda.top/article_detail?id=19

修改配置文件后重启

场景: 修改配置文件后的重启
    cd /usr/local/nginx/sbin
 
查看配置文件是否正确
    ./nginx -t
 
首次启动
    ./nginx
    或者
    sudo /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
 
重新启动
    service nginx restart
    或者
        cd /usr/local/nginx/sbin/nginx
        ./nginx -s reload (推荐)
    或者
        sudo /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
 
查找nginx配置文件路径
    ps -ef | grep nginx
    场景: 对于一台陌生的服务器或安装太久忘了位置,怎么才能简单快速的找到配置文件的位置呢?
 
停止
查看进程
    ps -ef|grep nginx
 
杀死对应的进程
    kill -QUIT 10774
 
     示例:         
        kill -HUP 2255
 

阿里云下安装nginx

1、执行yum命令安装依赖
    yum -y install pcre*
    yum -y install openssl*
 
2、下载nginx
    2.1如果没有安装wget,下载已编译版本
        yum install wget
 
    2.2进入指定目录
        cd /usr/local/
 
    2.3下载nginx 安装包,“1.16.0”是指定的安装版本,可以选择自己需要或者最新的版本
 
3、编译安装
 
    3.1 通过tar解压安装包
        tar -zxvf zlib-1.16.0.tar.gz
 
    3.2 进入nginx
        cd nginx-1.16.0
 
    3.3 执行编译
        ./configure
 
    3.4 编译报错误的话比如:“C compiler cc is not found”,这个就是缺少编译环境,安装一下就可以了 
        yum -y install gcc make gcc-c++ openssl-devel wget
 
    3.5 编译成功执行
        make -j4 && make install
4、nginx测试
    4.1 在nginx可执行命令下目录/usr/local/nginx/sbin执行
        ./nginx -t
 
    4.2出现下面结果表示安装成功
        nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
        nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
 
    4.2 验证是否启动成功:
        执行./nginx,然后在浏览器访问此机器的 IP,如果浏览器出现 Welcome to nginx! 则表示 Nginx 已经安装并运行成功
 
    4.4 首次启动  sudo /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
        如果执行./nginx -s reload 会报错 nginx: [error] invalid PID number "" in "/usr/local/nginx/logs/nginx.pid"
 
    4.5 重启:./nginx -s reload  
    4.6 停止: ./nginx -s stop
 
 
7、配置部署(下面以一个node/vue前后端分离的项目为例:)
    7.1 找到nginx的conf配置文件
        cd /usr/local/nginx/conf/
    7.2 编辑文件
        vi nginx.conf
    7.3 在server对象里改为自己要的端口,默认为80
        listen 80;
    7.4 配置前端打包地址: root为vue打包后存放在服务器的地址
        location / {
            root /home/my-project/blog/dist;
            index index.html index.htm;
            try_files $uri $uri/ /index.html;  (去掉#,这个需要前端vue-route 的rmode:'history')
        }
    7.4 配置后端接口地址:proxy_pass 为后端接口地址
    #解决跨域   location /api { # 自定义nginx接口前缀     proxy_pass http://127.0.0.1:3000; # 后台api接口地址     proxy_redirect default;      #设置主机头和客户端真实地址,以便服务器获取客户端真实IP     proxy_set_header Host $host;     proxy_set_header X-Real-IP $remote_addr;     proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;    }
 
-------------------------------------------------配置开机启动--------------------------------------------
 
配置开机启动
5、配置开机启动-配置文件(如果先部署项目,跳过看第7条) //进入目录,编辑nginx文件 cd /etc/init.d/ vi nginx //添加如下,注内容修改PATH字段, 匹配自己的安装路径,如果按这个流程安装应该是一样的 #!/bin/bash # Startup script for the nginx Web Server # chkconfig: - 85 15 # description: nginx is a World Wide Web server. It is used to serve # HTML files and CGI. # processname: nginx # pidfile: /usr/local/nginx/logs/nginx.pid # config: /usr/local/nginx/conf/nginx.conf PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin export PATH NGINX_HOME=/usr/local/nginx/sbin NGINX_CONF=/usr/local/nginx/conf PHP_HOME=/usr/local/php-fcgi/bin if [ ! -f "$NGINX_HOME/nginx" ] then     echo "nginxserver startup: cannot start"     exit fi case "$1" in     'start')         $PHP_HOME/spawn-fcgi -a 127.0.0.1 -p 10080 -C 20 -u nobody -f $PHP_HOME/php-cgi         $NGINX_HOME/nginx -c $NGINX_CONF/nginx.conf         echo "nginx start successful"         ;;     'stop')         killall -TERM php-cgi         killall -TERM nginx         ;; esac 6、配置开机启动-启动 //设置执行权限 chmod  a+x  /etc/init.d/nginx //注册成服务 chkconfig --add nginx //重启, 查看nginx服务是否自动启动. shutdown -h0 -r netstat -apn|grep nginx
 
配置gzip
注:gzip是在http加的,不是在serice
 
http {
   gzip on;
   
    server{
        gzip on;  #开启gzip压缩功能

        gzip_min_length 1k;

        gzip_buffers 4 16k;

        gzip_http_version 1.0;

        gzip_comp_level 6;

        gzip_types text/plain text/css application/json application/javascript application/x-javascript text/xml application/xml application/xml+rss text/javascript application/vnd.ms-fontobject application/x-font-ttf font/opentype image/svg+xml image/x-icon image/jpeg  image/gif image/png;

        gzip_vary on;

 
        ......
    }
}
 
 
校验是否压缩成功:
    1.打开浏览器下-network查看coontent—Encoding:gzip。
        注:这也只能代表nginx开启了压缩,但是不代表这个文件被压缩过,还要对比访问速度和size是否变小。
    2.对比size是否变小。有可能nginx的gzip_types压缩的文件类型没有包含
    3.对比network下reload时间是否变短
 
 
注释:
    gzip on;  #开启gzip压缩功能
           
    gzip_min_length 1k;#设置允许压缩的页面最小字节数,页面字节数从header头的content-length中获取。默认值是0,不管页面多大都进行压缩。建议设置成大于1k。如果小于1k可能会越压越大。
       
    gzip_buffers 4 16k;#压缩缓冲区大小。表示申请4个单位为16k的内容作为压缩结果流缓存,默认值是申请与原始数据大小相同的内存空间来存储gzip压缩结果。
 
    gzip_http_version 1.0;#压缩版本(默认1.1,前端为squid2.5时使用1.0)用于设置识别http协议版本,默认是1.1,目前大部分浏览器已经支持gzip解压,使用默认即可。
       
    gzip_comp_level 2;#压缩比率。用来指定gzip压缩比,1压缩比量小,处理速度快;9压缩比量大,传输速度快,但处理最慢,也必将消耗cpu资源。
    gzip_types text/plain application/x-javascript text/css application/xml; #用来指定压缩的类型,“text/html”类型总是会被压缩。        
 
    gzip_vary on; #vary header支持。该选项可以让前端的缓存服务器缓存经过gzip压缩的页面,例如用squid缓存经过nginx压缩的数据。
要注意:需要和不需要压缩的对象 (1)大于1k的纯文本文件html,js,css,xml,html. (2)图片,视频等不要压缩,因为不但不会减小,在压缩时消耗cpu和内存资源。
 

启动Nginx
使用默认配置文件启动nginx sudo /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf # 查看nginx的版本号 sudo /usr/local/nginx/sbin/nginx -v
 
 

 
 
 

重启Nginx服务

方法一:进入nginx可执行目录sbin下,输入命令:
    ./nginx -s reload
 
注: 如重启失败,先杀死进程, 再重启

 
 
 
posted @ 2022-04-06 17:14  longpanda_怪怪哉  阅读(323)  评论(0编辑  收藏  举报
下定决心了,要把写不出代码就摸后脑勺的习惯给改了! 如果可以~单身待解救~~