Nginx使用

一、Nginx安装

  1. 启动

    docker run --name nginx81 -d -p 81:80 nginx 
    
  2. 拷贝容器内的配置文件和日志到本地

    进入容器: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
    
  3. 重新指定配置文件启动

    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常用指令:

一、基本指令

  1. 启动Nginx服务器命令:

    去到sbin路径:cd /usr/local/nginx/sbin

    启动Nginx服务器: ./nginx

  2. 查看Nginx 版本号命令:./nginx -v或./nginx -V

  3. 查看Nginx进程命令:ps aux|grep nginx

  4. 检查Nginx配置文件是否正确命令:./nginx -t

  5. 指定检测特定Nginx配置文件:-c表示configuration,指定配置文件./nginx -t -c /usr/local/nginx/conf/nginx.conf

  6. Nginx服务器指定启动配置文件命令:./nginx -c/usr/local/nginx/conf/nginx.conf

  7. 暴力停止Nginx服务器命令:./nginx -s stop

  8. 优雅停止Nginx服务器命令:./nginx -s quit

  9. Nginx重新加载配置文件命令:./nginx -s reload

  10. 停止nginx:在sbin目录下执行./nginx -s stop

  11. 启动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

posted @ 2023-04-13 10:00  渡——已  阅读(43)  评论(0)    收藏  举报