Nginx使用
一、Nginx安装
-
启动
docker run --name nginx81 -d -p 81:80 nginx -
拷贝容器内的配置文件和日志到本地
进入容器:docker exec -it id /bin/bash docker cp eaf8112da85c:/etc/nginx/nginx.conf W:\docker\nginx\nginx.conf docker cp eaf8112da85c:/var/log/nginx W:\docker\nginx\log docker cp eaf8112da85c:/etc/nginx/conf.d/default.conf W:\docker\nginx\default.conf -
重新指定配置文件启动
docker run --name nginx81 -p 81:80 -v W:\docker\nginx\nginx.conf:/etc/nginx/nginx.conf -v W:\docker\nginx\log:/var/log/nginx -v W:\docker\nginx\default.conf:/etc/nginx/conf.d/default.conf -d nginx #--name 给你启动的容器起个名字,以后可以使用这个名字启动或者停止容器 #-p 映射端口,将docker宿主机的9090端口和容器的9090口进行绑定 #-v 挂载文件用的,第一个-v 表示将你本地的nginx.conf覆盖你要起启动的容器的nginx.conf文件 #第二个表示将日志文件进行挂载,就是把nginx服务器的日志写到你docker宿主机的/root/docker/nginx/log/下面 #第三个-v 表示的和第一个-v意思一样的。 #-d 表示启动的是哪个镜像
二、Nginx反向代理和负载均衡
(1)反向代理
server {
listen 81;
server_name localhost;
location /nginxzf/ {
proxy_pass http://47.109.74.122:8091/;
proxy_set_header Host $host:$server_port;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header REMOTE-HOST $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
(2)负载均衡
upstream nginx {
server 47.109.74.122:9002;
server 47.109.74.122:8091;
}
server {
listen 80;
server_name gateway;
location /nginx/ {
proxy_pass http://nginx/;
proxy_set_header Host $host:$server_port;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
(3)Nginx的五大负载均衡算法
1、轮询策略
轮询方式是Nginx负载默认的方式,顾名思义,所有请求都按照时间顺序分配到不同的服务上,如果服务Down掉,可以自动剔除,如下配置后轮训10001服务和10002服务。
upstream dalaoyang-server {
server localhost:10001;
server localhost:10002;
}
2、权重策略
指定每个服务的权重比例,weight和访问比率成正比,通常用于后端服务机器性能不统一,将性能好的分配权重高来发挥服务器最大性能,如下配置后10002服务的访问比率会是10001服务的二倍。
upstream dalaoyang-server {
server localhost:10001 weight=1;
server localhost:10002 weight=2;
}
3、Ip哈希策略-iphash
每个请求都根据访问ip的hash结果分配,经过这样的处理,每个访客固定访问一个后端服务,如下配置(ip_hash可以和weight配合使用)。
upstream dalaoyang-server {
ip_hash;
server localhost:10001 weight=1;
server localhost:10002 weight=2;
}
4、最少连接策略
将请求分配到连接数最少的服务上。
upstream dalaoyang-server {
least_conn;
server localhost:10001 weight=1;
server localhost:10002 weight=2;
}
5、最快响应策略-fair
按后端服务器的响应时间来分配请求,响应时间短的优先分配。
upstream dalaoyang-server {
server localhost:10001 weight=1;
server localhost:10002 weight=2;
fair;
}
三、Nginx常用指令:
一、基本指令
-
启动Nginx服务器命令:
去到sbin路径:cd /usr/local/nginx/sbin
启动Nginx服务器: ./nginx
-
查看Nginx 版本号命令:./nginx -v或./nginx -V
-
查看Nginx进程命令:ps aux|grep nginx
-
检查Nginx配置文件是否正确命令:./nginx -t
-
指定检测特定Nginx配置文件:-c表示configuration,指定配置文件./nginx -t -c /usr/local/nginx/conf/nginx.conf
-
Nginx服务器指定启动配置文件命令:./nginx -c/usr/local/nginx/conf/nginx.conf
-
暴力停止Nginx服务器命令:./nginx -s stop
-
优雅停止Nginx服务器命令:./nginx -s quit
-
Nginx重新加载配置文件命令:./nginx -s reload
-
停止nginx:在sbin目录下执行./nginx -s stop
-
启动nginx:在sbin目录下执行./ngxin
常用:
nginx -c filename 设置配置文件(nginx -c /conf/nginx.conf)
nginx -s reload 重新加载Nginx配置文件,然后以优雅的方式重启Nginx
nginx -s reopen 重启Nginx
nginx -s stop 强制停止Nginx服务
nginx -s quit 优雅地停止Nginx服务(即处理完所有请求后再停止服务)
nginx -t 检测配置文件是否有语法错误,然后退出
nginx -T 检测配置文件是否有语法错误,转储并退出
nginx -?,-h 强制停止Nginx服务
nginx -v 显示版本信息并退出
nginx -V 显示版本和配置选项信息,然后退出
nginx -q 在检测配置文件期间屏蔽非错误信息
nginx -p prefix 设置前缀路径(默认是:/usr/share/nginx/)
nginx -g directives 设置配置文件外的全局指令
killall nginx 杀死所有nginx进程
二、Nginx通过master发送信号的相关命令
若在nginx.conf配置了pid文件存放路径则该文件存放的就是Nginx主进程号,如果没指定则放在nginx的logs目录下。有了pid文 件,我们就不用先查询Nginx的主进程号,而直接向Nginx发送信号了,命令如下:
kill -信号类型 '/usr/nginx/logs/nginx.pid' (推荐)
1、从容停止Nginx服务器命令:
kill -QUIT 主进程号
2、快速停止Nginx服务器命令:
kill -TERM 主进程号
3、强制停止Nginx服务器命令:
pkill -9 nginx
本文来自博客园,作者:渡——已,转载请注明原文链接:https://www.cnblogs.com/dotnetSunset/p/17312345.html

浙公网安备 33010602011771号