应用场景
静态资源服务:通过本地文件系统提供服务
反向代理服务:nginx的强大性能,缓存,负载均衡
API服务:OpenResty
nginx的优点
1.高并发,高性能
2.可扩展性好
3.高可靠性
4.热部署环
5.BSD
nginx的4个主要组成部分
1.nginx二进制可执行文件(由各个模块源码编译出的一个文件)
2.nginx.conf配置文件(控制nginx 的行为)
3.access.log访问日志(记录每一条http请求信息)
4.error.log(定位问题)
下载和安装
./configure --prefix=/${path}/nginx
编译
make
安装
make install
nginx配置文件的通用语法
1.配置文件由指令和指令块构成
2.每条指令以;分号结尾,指令与参数间以空格符号分隔
3.指令块以{}大括号将多条指令组织在一起
4.include语句允许组合多个配置文件以提升可维护性
5.使用#符号添加注释,提高可读性
6.使用$符号使用变量
7.部分指令的参数支持正则表达式
配置参数 | 时间单位 |
ms | milliseconds |
s | seconds |
m | minutes |
h | hours |
d | days |
w | weeks |
M | months, 30 days |
y | years, 365 days |
配置参数 | 空间单位 |
bytes | |
k/K | kilobytes |
m /M | megabytes |
g/G | gigabytes |
http配置的指令块
http upstream server location
nginx命令行
帮助:-? -h
使用指定的配置文件:-c
指定配置指令:-g
指定运行目录:-p
发送信号:
解释 | 参数 |
立刻停止服务 | stop |
优雅的停止服务 | quit |
重载配置文件 | reload |
重新开始记录日志文件 | reopen |
测试配置文件是否有语法错误:-t -T
打印nginx的版本信息,编译信息等:-v -V
重载配置文件
./nginx -s reload
热部署(升级到更高版本nginx)
拷贝二级进文件
kill -USER2 13195
告诉老的优雅关闭
kill -WINCH 13195
用nginx搭建一个可用的静态资源web服务器
server {
listen 8080;
server_name www.baidu.com;
#定义日志的位置,main为日志格式
access_log log/access.log main;
location / {
alias dlib/;
# 在url中显示文件的层级目录
autoindex on;
# 每秒传输1k字节到浏览器
set $limit_rate 1k;
}
}
可以在http模块放开gzip压缩
gzip on;
gzip_ming_length 1;
gzip_comp_level 2;
gzip_types text/plain
http模块可以定义
log_format main '$remote-addr'
搭建具备缓存功能的反向代理服务器
upstream local {
sever 127.0.0.1:8080
}
server {
server_name www.baidu.com;
listen 80;
location / {
proxy_pass http://local;
}
}
用免费SSL证书实现一个HTTPS站点
yum install
安装完毕执行
certbot --nginx --nginx-server-root=/user/loca/nginx/conf -d www.baidu.com
配置二级域名
包含其他配置文件
include /opt/soft/nginx/conf/sites-enabled/*.conf;
配置接口
# imadmin.fuyoukache.com
upstream d4_imadmin_fuyoukache_com {
server 127.0.0.1:9119;
}
server {
listen 80;
listen 443 ssl;
server_name d4imadmin.fuyoukache.com;
ssl_certificate /opt/soft/nginx/fuyoukache.com.cer;
ssl_certificate_key /opt/soft/nginx/fuyoukache.com.key;
location / {
proxy_pass http://d4_imadmin_fuyoukache_com;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
location ^~ /fykc-goldplate-service/api/ {
proxy_pass http://d4_proxy;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
权限
启动设置用户
user root;
启动的用户得有访问目录的权限
参考博客