概述
文章目录
- (一)nginx安装
- (1)安装前置依赖(以CentOS为例)
- (2)nginx相关命令
- (二)nginx配置使用
- (1)配置文件说明
- (2)配置静态Web服务
- (3)配置动静分离项目
- (4)防盗链配置
- (5)下载限速
- (6)IP黑白名单
- (7)日志配置
(一)nginx安装
(1)安装前置依赖(以CentOS为例)
- 关闭防火墙
systemctl stop firewalld.service #停⽌firewall
systemctl disable firewalld.service #禁⽌firewall开机启动
- 安装 gcc
yum install gcc-c++
- 安装 PCRE pcre-devel
yum install -y pcre pcre-devel
- 安装 zlib
yum install -y zlib zlib-devel
- 安装 OpenSSL
yum install -y openssl openssl-devel
- 下载nginx的tar包,下载地址:https://nginx.org/en/download.html
tar -xvzf nginx-1.16.1.tar.gz
cd nginx-1.16.1
./configure
make install
#查看安装目录
whereis nginx
- 配置ssl模块,用于Https服务(可选),进入nginx下载后的解压目录(不是安装目录)
./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module
make
#把nginx下载后的解压目录中objs目录下的新的/nginx替换安装目录中的nginx文件
cp /home/xxx/xxx/nginx/objs/nginx /usr/local/nginx/sbin
- 查看配置信息
#进入nginx安装目录 /usr/local/nginx/sbin 查看版本
cd /usr/local/nginx/sbin
./nginx -V
(2)nginx相关命令
cd /usr/local/nginx/sbin/
./nginx
./nginx -s stop #关闭nginx服务
./nginx -s quit
./nginx -s reload #重新加载配置文件,热重启
./nginx -V #查看版本
./nginx -t #检查配置文件
- 验证安装是否成功
(二)nginx配置使用
(1)配置文件说明
- Nginx配置,在/usr/local/nginx/conf下的nginx.conf
#Nginx用户及组:用户(user),组(nobody),window下不指定
#user nobody;
worker_processes 1; #工作进程:根据硬件调整配置,通常等于CPU数量,或者CPU数量*2
#错误日志存放路径
#error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info;
#pid logs/nginx.pid; #进程存放路径。
events {
#每个工作进程的最大连接数量
#与worker_processes配合使用,不能超过cpu资源100%
#理论上最大连接数=worker_processes*worker_connections
worker_connections 1024;
keepalive_timeout 60; #keepalive超时时间
}
#设定http服务器
http {
include mime.types; #文件扩展名与文件类型映射表
default_type application/octet-stream; #默认文件类型
#默认编码
#charset utf-8;
#log_format main '$remote_addr - $remote_user [$time_local] "$request" '
# '$status $body_bytes_sent "$http_referer" '
# '"$http_user_agent" "$http_x_forwarded_for"';
#access_log logs/access.log main;
#开启高效文件传输模式,sendfile指令指定nginx是否调用sendfile函数来输出文件,对于普通应用设为 on
sendfile on;
#开启目录列表访问,合适下载服务器,默认关闭。
autoindex on;
#该指令必须在sendfile打开的状态下才会生效,主要是用来提升网络包的传输'效率'
#tcp_nopush on;
keepalive_timeout 65; #长连接超时时间,单位是秒
#gzip on; #开启gzip压缩输出
#虚拟主机的配置,可配置多个
server {
listen 80;
server_name localhost; #多个域名用空格隔开
location / {
#可配置在 server与location中,基于root路径+url中路径去寻找指定文件。
root html;
index index.html index.htm;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
server {
listen 8080;
server_name localhost;
location /tomcat {
root html;
index index.html index.htm;
}
}
}
- 说明
配置块 | 属性 |
---|---|
例如:events、http、server、location、upstream | 例如:worker_processes、worker_connections、include、listen |
使用 { } 包括对应属性 | 属性名 与 属性值 用 空格 隔开,属性值可以有多个,同样使用 空格 隔开 |
(2)配置静态Web服务
- 创建站点目录
mkdir -p /home/xxx/xxx/web/app1
- 放入静态html文件
- 配置nginx.conf
#添加一个server,监听8081端口
server {
listen 8081;
server_name localhost;
location /project1 {
#root /home/xxx/xxx/web/app1;
alias /home/xxx/xxx/web/app1;
index index.html index.htm;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
root与alias的区别: 当访问http://127.0.0.1:8081/project1/index.html时
- root:基于root指定的文件路径(即:/home/xxx/xxx/web/app1)+ location后url路径(即:添加路径/project1),寻找静态网页,最终寻址为:/home/xxx/xxx/web/app1/project1/index.html
- alias:基于alias指定的文件路径(即:/home/xxx/xxx/web/app1)+剔除location后url路径(即:剔除路径/project1)的最终寻址为:/home/xxx/xxx/web/app1/index.html
(3)配置动静分离项目
- 创建静态资源目录:
mkdir -p /home/xxx/xxx/static
- 普通配置:
server {
listen 8081;
server_name localhost;
location / {
root /home/xxx/xxx/web/app1;
index index.html index.htm;
}
location /static {
alias /home/xxx/xxx/static;
}
}
- 基于正则配置:
server {
listen 8081;
server_name localhost;
location /project1 {
alias /home/xxx/xxx/web/app1;
index index.html index.htm;
}
location ~*.(gif|jpg|png|css|js)$ {
#expires 30d;
root /home/xxx/xxx;
}
}
(4)防盗链配置
server {
listen 8081;
server_name localhost;
location / {
root /home/xxx/xxx/web/app1;
index index.html index.htm;
}
location ~*.(gif|jpg|png|css|js)$ {
#expires 30d;
valid_referers 192.168.100.100;
if ($invalid_referer) {
#return 403;
rewrite ^/ http://ww4.sinaimg.cn/bmiddle/051bbed1gw1egjc4xl7srj20cm08aaa6.jpg;
}
root /home/xxx/xxx;
}
}
(5)下载限速
location /download {
limit_rate 1m; #限制下载速度1m/s
limit_conn addr 1; #连接数量
limit_rate_after 30m; #超过30之后在下载
}
(6)IP黑白名单
- 创建黑名单文件
touch /usr/local/nginx/conf/ip.black
- 编辑黑名单文件
# 指定黑白名单IP
allow 192.168.100.9;
deny 192.168.100.51;
#开放指定IP网段
allow 192.168.0.0/24;
- 编辑nginx.conf文件,在http配置块中引入黑名单配置文件
http {
include mime.types;
include ip.black; #引入黑名单配置文件
default_type application/octet-stream;
...
server {
...
}
}
(7)日志配置
- 编辑nginx.conf配置文件,放开 log_format 和 access_log 注释
http {
...
#“main”为日志格式的名称
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
#日志写入nginx根目录下logs/access.log文件,默认使用“main”日志格式,也可以自定义格式
access_log logs/access.log main;
...
server {
...
}
}
- 日志参数列表
参数名称 | 参数说明 |
---|---|
$remote_addr | 客户端的ip地址(代理服务器,显示代理服务ip) |
$remote_user | 记录远程客户端的用户名称(一般为“-”) |
$time_local | 记录访问时间和时区 |
$request | 记录请求的url以及请求方法 |
$status | 响应状态码 |
$body_bytes_sent | 给客户端发送的文件主体内容字节数 |
$http_referer | 记录用户从哪个链接访问过来的 |
$http_user_agent | 用户所使用的代理(一般为浏览器) |
$http_x_forwarded_for | 通过代理服务器来记录客户端的ip地址 |
最后
以上就是年轻野狼为你收集整理的Nginx基本配置(初级)(一)nginx安装(二)nginx配置使用的全部内容,希望文章能够帮你解决Nginx基本配置(初级)(一)nginx安装(二)nginx配置使用所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复