1.1 安装
-
下载
$ wget http://nginx.org/download/nginx-1.19.6.tar.gz # 方法一:官网 Nginx $ wget http://tengine.taobao.org/download/tengine-2.3.2.tar.gz # 方法二:阿里 Tengine
-
依赖包
$ yum -y install gcc pcre-devel zlib zlib-devel openssl-*
-
编译 & 安装
$ tar -xf nginx-1.19.6.tar.gz $ cd nginx-1.19.6 $ ./configure --prefix=/opt/nginx1.19.6 # 统一安装目录:/opt/ # $ ./configure --prefix=/opt/tengine2.3.2 $ make && make install
-
环境变量
$ vim /etc/profile # 修改配置文件 >> PATH="/opt/nginx1.19.6/sbin:" # 添加环境变量 $ source /etc/profile # 生效 $ which nginx # 检测
1.3 启动
-
启动
$ nginx '端口' '监听地址IP' '协议版本' # 启动前关闭防火墙
-
检测
$ elinks http://192.688.199.244 -dump $ ps -ef | grep nginx $ netstat -tunlp $ lsof -i :80
-
重启
$ nginx -s reload # 平滑重启:仅重新读取配置文件,而不重启进程
-
关闭
$ nginx -s stop
-
定时重启
$ 0 0 * * * /usr/bin/systemctl restart nginx
-
查看当前服务器连接数
$ netstat -antpl | grep nginx | grep EXTABLISHED | wc -l
1.3 配置文件
-
修改
$ vim /opt/nginx1.19.6/conf/nginx.conf
-
检查语法
# $ nginx -g /opt/nginx1.19.6/conf/nginx.conf $ nginx -t # 推荐
-
删除配置文件的注释和空行
$ sed -i "/#/d" nginx.conf $ sed -i "/^$/d" nginx.conf
1.4 反向代理
-
配置
server { listen 80; # 定义该网站的端口 server_name localhost; # 域名 charset utf-8; # nginx编码支持,局部变量,只对当前代码块生效 location / { proxy_pass http://192.168.199.236:81; # 反向代理 # uwsgi_pass 0.0.0.0:8000; # 基于uwsgi协议的请求转发 } } server { listen 81; server_name _; charset utf-8; location / { root /root/nginx_linux; # 定义该虚拟主机资料存放位置 index index.html; # 首页文件名,只要上面的路径中存在 index.html 即可 } error_page 404 /404.html; # 自定义404页面 }
1.5 负载均衡
-
配置
upstream nginx_server { # ip_hash; # 每个IP固定访问某个服务器 # url_hash; # 每个URL固定访问某个服务器 server 192.168.199.236:81 weight=3; server 192.168.199.236:82 weight=1; # least_conn # 最少连接数,哪台机器连接数最少,就连哪台 } server { listen 80; # 定义该网站的端口 server_name localhost; # 域名 charset utf-8; # nginx编码支持 location / { proxy_pass http:nginx_server; } }
1.6 部署的配置文件
-
配置
upstream nginx_server { #ip_hash; server 0.0.0.0:8000 weight=1; # uwsgi.ini server 0.0.0.0:8001 weight=1; # uwsgi02.ini } server { listen 80; # 定义该网站的端口 server_name localhost; # 域名 charset utf-8; # nginx编码支持,局部变量,只对当前代码块生效 location / { # 固定参数,添加一些转发请求头内容,位置:cat /opt/tengine/conf/uwsgi_params include uwsgi_params; # 与uwsgi配置的socket一致,通过uwsgi_pass把请求转发给后端uwsgi服务器 # uwsgi_pass 0.0.0.0:8000; #负载均衡 uwsgi_pass nginx_server; } location /static { alias /root/crm_static; # 配置nginx查找的静态文件的绝对路径 } }
1.6 日志管理
- 日志格式 json --> elk
1.7 防盗链
1.8 目录访问控制
-
默认网站
-
目录验证
-
添加IP
$ ifconfig ens33:1 192.168.10.52/24 up
-
关闭IP
$ ifconfig ens33:1 down