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
网友评论