引言
最近在准备春招中,这几天把学过的nginx常用模块复习了一遍,并作整理记录,便于以后回看。
思路
先在nginx中配置下列功能:
- 搭建静态资源服务器
- 具有缓存功能的反向代理服务器
- 使用goaccess分析access日志
- 用自签证书搭建https站点
再依次添加其他模块:limit_conn、limit_req、access、auth_basic、auth_request、log、gzip、stub_status等实现更丰富的功能
环境
在Ubuntu20.10(当前最新版)上,apt安装了一个nginx,版本为1.18.0。为方便连接,在Ubuntu20.10上设置固定ip。
Host | IP | Nginx version |
---|---|---|
Ubuntu20.10 | 192.168.211.131 | 1.18.0 |
配置前准备
- 安装goaccess,后台执行goaccess命令
sudo apt install goaccess -y
sudo goaccess /var/log/nginx/access.log -o /var/www/html/report.html --real-time-html --time-format='%H%M%S' --date-format='%d%m%Y' --log-format=COMBINED &
# 生成websocket服务器监听客户连接
- 生成自签SSL证书
- 创建证书请求csr,同时生成rsa私钥
sudo openssl req -new -out ssl.csr
- 上一步生成 .pem 私钥时必须输密码,可执行去除密码命令
sudo openssl rsa -in privkey.pem -out privkey.pem
- 由私钥、证书请求生成证书
sudo openssl x509 -req -days 365 -signkey privkey.pem -in ssl.csr -out ssl.crt
- 查看rsa密钥、csr证书请求、crt证书
sudo openssl rsa -text -in privkey.pem -noout
sudo openssl req -text -in ssl.csr -noout
sudo openssl x509 -text -in ssl.crt -noout
配置详解
主配置文件nginx.conf,加载 conf.d/ 目录下的 .conf 配置文件
#user www-data;
user root; # 修改nginx执行用户为root
worker_processes auto;
pid /run/nginx.pid;
include /etc/nginx/modules-enabled/*.conf;
events {
worker_connections 768;
# multi_accept on;
}
http {
##
# Basic Settings
##
sendfile on;
tcp_nopush on;
types_hash_max_size 2048;
# server_tokens off;
# server_names_hash_bucket_size 64;
# server_name_in_redirect off;
include /etc/nginx/mime.