CentOS安装nginx

2019-11-21  本文已影响0人  Y了个J

yum安装

1. 安装 nginx 源
sudo rpm -ivh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm 
2. 查看 Nginx 源是否配置成功
通过 yum search nginx 看看是否已经添加源成功,或者 yum info nginx 也可以看看 nginx 源是否添加成功
3. 安装 Nginx
sudo yum install -y nginx 
启动 Nginx 并设置开机自动运行
sudo systemctl start nginx
sudo systemctl enable nginx 

压缩包安装

安装 pcre-devel 和 zlib-devel 依赖库:
yum -y install pcre-devel zlib-devel

# 下载
wget http://nginx.org/download/nginx-1.17.2.tar.gz
# 解压
tar -xzvf nginx-1.17.2.tar.gz
cd nginx-1.17.2
# 配置
./configure --prefix=/usr/local/nginx
# 编译
make
# 安装
make install

配置文件

核心配置文件 /etc/nginx/nginx.conf
程序文件 /usr/sbin/nginx
日志目录 /var/log/nginx
缓存目录 /var/cache/nginx
启动脚本 /etc/init.d/
虚拟主机的目录 /var/www/nginx-default
执行文件目录 /usr/sbin/nginx(说明了这就是启动命令真实调用的地方)

Nginx 命令行

通过 ps -ef | grep nginx 来查看 nginx 运行状况
sudo nginx
sudo nginx -s reload

Nginx配置文件

server {
        listen 80;
        server_name localhost;

        location / {
                alias blog/;
        }  
    }

其中 location / 表示所有的请求,一般我们通过 root 和 alias 来指定访问的目录。root 相对来说有个问题,会把 url 中的一些路径带到我们的文件目录中来,所以一般使用 alias。
修改好配置文件后,执行 nginx -s reload 重启 nginx 服务。

此外还可以开启 gzip 压缩,服务器压缩,浏览器解压。压缩和解压减少的是中间网络传输的消耗。
修改 nginx.conf:

gzip on;
gzip_min_length 1;
gzip_comp_level 2;
gzip_types text/plain application/x-javascript text/css application/pdf application/xml text/javascript application/x-httpd-php image/jpeg image/gif image/png;

其中,gzip_min_length 表示小于此大小则不压缩,gzip_comp_level 表示压缩等级,gzip_types 表示压缩类型。
通过 url 访问,查看消息头就可以看到已经开启 gzip 压缩了:Content-Encoding: gzip


屏幕快照 2019-11-21 下午11.06.01.png

使用 gzip 压缩之后,静态资源的传输效率会提升很多。

还可以打开目录浏览功能,修改 nginx 的配置文件,添加 autoindex on;

server {
    listen 80;
    server_name localhost;

    location / {
           alias blog/;
           autoindex on;
    }
}

修改后,重启 nginx,以目录结构中的 images 目录为例,访问 url:localhost/images/,展示情况如下图:


屏幕快照 2019-11-21 下午11.07.17.png

为了防止访问大文件抢走带宽,可通过设置访问资源时传输的速度来限制访问的文件大小。

server {
    listen 80;
    server_name localhost;

    location / {
            alias blog/;
            autoindex on;
            set $limit_rate 100K;
    }
}

其中 set $limit_rate 100K; 表示每秒传输速度限制在 100K 大小。

配置详解
# 设置运行此nginx的用户名
user www-data;
# 工作进程数
worker_processes auto;
pid /run/nginx.pid;# 这是一个文件,里面放当前nginx的进程号
include /etc/nginx/modules-enabled/*.conf;

events {
        # 工作进程的最大连接数
        worker_connections 768;
        # multi_accept on;
}

# 使用#添加注释,使用$符号可以使用变量
# 配置文件由指令和指令块组成,指令块以{}将多条指令组织在一起
http {
        ##
        # Basic Settings
        ##

        sendfile on; # 零拷贝模式
        tcp_nopush on;# TCP有一定的缓存,避免来了就推,提高性能,攒起来一起给;上下文 :http server location
        tcp_nodelay on;# 在keepalive连接下,提高网络包的传输实时性(立刻发),和tcp_nopush刚好相反;上下文 :http server location
        keepalive_timeout 65;# 活动链接超时时间
        types_hash_max_size 2048;
        # server_tokens off;

        # server_names_hash_bucket_size 64;
        # server_name_in_redirect off;

        # include语句允许把多个配置文件组合起来以提升可维护性
        include /etc/nginx/mime.types;
        # 每条指令以;结尾,指令与参数之间以空格分隔

        # 默认的Content-Type,前提是上面mime.types里面找不到的情况下
        default_type application/octet-stream;

        ##
        # SSL Settings
        ##

        ssl_protocols TLSv1 TLSv1.1 TLSv1.2; # Dropping SSLv3, ref: POODLE
        ssl_prefer_server_ciphers on;

        ##
        # Logging Settings
        ##

        # 指定访问日志的存放位置,格式为main
        access_log /var/log/nginx/access.log;
        error_log /var/log/nginx/error.log;

        ##
        # Gzip Settings
        ##

        gzip on;# 是否启用压缩;上下文 :http server location

        # gzip_vary on;
        # gzip_proxied any;
        # gzip_comp_level 6; # 压缩比率越高,文件被压缩的体积越小
        # gzip_buffers 16 8k;
        # gzip_http_version 1.1; #压缩版本 1.0/1.1 ;上下文 :http server location
        # gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;

        ##
        # Virtual Host Configs
        ##

        include /etc/nginx/conf.d/*.conf;
        include /etc/nginx/sites-enabled/*;
}

一个被引入的配置文件

server{
    listen 80;
    server_name localhost;
    location /{
        root /usr/share/nginx/html;
        index index.html index htm;
    }
    error_page 500 502 503 504 /50x.html;
    location = /50x.html{
        root /usr/share/nginx/html;
    }
    location / {
                # First attempt to serve request as file, then
                # as directory, then fall back to displaying a 404.
                try_files $uri $uri/ =404;
        }
        # pass PHP scripts to FastCGI server
        # 如果.php结尾得请求,直接通过fastcgi-php处理
        #location ~ \.php$ {
        #       include snippets/fastcgi-php.conf;
        #
        #       # With php-fpm (or other unix sockets):
        #       fastcgi_pass unix:/var/run/php/php7.0-fpm.sock;
        #       # With php-cgi (or other tcp sockets):
        #       fastcgi_pass 127.0.0.1:9000;
        #}

        # deny access to .htaccess files, if Apache's document root
        # concurs with nginx's one
        # 如果路径包含/.ht ,则禁止所有人访问
        #location ~ /\.ht {
        #       deny all;
        #}
    }
}

监听文件的变化

tail -f /var/log/nginx/access.log
截屏2020-09-09下午10.18.51.png

参考:https://www.jianshu.com/p/00d3008b9b36

上一篇 下一篇

猜你喜欢

热点阅读