Nginx 使用记录
项目部署阶段开始接触 Nginx,主要用它做反向代理和前端静态资源托管。记录安装方式和几个用过的配置,备查用。
安装配置
网上大多数教程是官方包编译安装,这里记录 yum 安装方式和 Docker 中使用,实际项目用得更多。
一、Linux 直接安装(yum 方式)
1、添加源
CentOS 7 默认没有 Nginx 源,从 Nginx 官网添加:
rpm -Uvh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm
|
2、通过 yum search nginx 确认源添加成功,然后安装:
3、启动并设置开机自动运行
systemctl start nginx.service systemctl enable nginx.service
|
4、查看版本和主要路径
nginx -v # nginx version: nginx/1.18.0
|
5、常用路径
Nginx 配置路径:/etc/nginx/ PID 目录: /var/run/nginx.pid 错误日志: /var/log/nginx/error.log 访问日志: /var/log/nginx/access.log 默认站点目录:/usr/share/nginx/html
|
新增 *.conf 放到 /etc/nginx/conf.d/ 下,nginx -s reload 即可生效。
修改配置后先验证语法:nginx -t
二、Docker 中安装
docker pull nginx:1.18
# 先启动一个临时容器,把配置文件拷出来 docker run -p 80:80 --name nginx \ -v /mydata/nginx/html:/usr/share/nginx/html \ -v /mydata/nginx/logs:/var/log/nginx \ -d nginx:1.18
docker container cp nginx:/etc/nginx /mydata/nginx/ mv /mydata/nginx/nginx /mydata/nginx/conf
# 停掉临时容器,重建带配置映射的正式容器 docker stop nginx && docker rm nginx
docker run -p 80:80 --name nginx \ -v /mydata/nginx/html:/usr/share/nginx/html \ -v /mydata/nginx/logs:/var/log/nginx \ -v /mydata/nginx/conf:/etc/nginx \ -d nginx:1.18
|
先跑一次再把配置文件拷出来挂载,是避免直接挂载空目录把容器内配置覆盖掉的常见做法。
常规配置示例
server { listen 80; server_name www.example.com;
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; } }
server { listen 80; server_name file.example.com;
location / { root /usr/share/nginx/html/file; } }
server { listen 80; server_name api.example.com;
location / { root /usr/share/nginx/html; index index.html index.htm; }
location ~ /wx/ { proxy_pass http://后端服务IP:端口; } }
|