Nginx

一、Docker安装nginx

创建挂载目录

mkdir -p /app/nginx/conf
mkdir -p /app/nginx/log
mkdir -p /app/nginx/html

#启动容器 复制文件

docker run --name nginx -p 80:80 -d nginx:stable
# 将容器nginx.conf文件复制到宿主机
docker cp nginx:/etc/nginx/nginx.conf /app/nginx/conf/nginx.conf
# 将容器conf.d文件夹下内容复制到宿主机
docker cp nginx:/etc/nginx/conf.d /app/nginx/conf/conf.d
# 将容器中的html文件夹复制到宿主机
docker cp nginx:/usr/share/nginx/html /app/nginx/

删除刚才启动的容器

docker run \
-p 80:80 \
--name nginx \
-v /app/nginx/conf/nginx.conf:/etc/nginx/nginx.conf \
-v /app/nginx/conf/conf.d:/etc/nginx/conf.d \
-v /app/nginx/log:/var/log/nginx \
-v /app/nginx/html:/usr/share/nginx/html \
-d nginx:stable

二、安装包编译安装

wget http://nginx.org/download/nginx-1.25.2.tar.gz 

安装gcc

yum install gcc-c++

PCRE:因为nginx需要使用正则表达式

yum install -y pcre pcre-devel

.zlib: 提供了压缩功能

yum install -y zlib zlib-devel

Openssl: 安全认证

yum install -y openssl openssl-devel

将nginx压缩包拷贝到/usr/local文件夹下,新建/usr/nginx(作为以后的nginx安装目录)

mkdir -p /app/nginx

安装nginx,前缀是指安装到文件夹下

./configure --prefix=/app/nginx

在这里插入图片描述
在nginx解压后的安装文件夹下
编译安装

make
make install

进入nginx刚才指定的安装目录

cd /app/nginx/

在这里插入图片描述
Conf: 配置文件的目录
Html: 静态网页
Logs:日志
Sbin: 启动脚本
至此,安装完成

三、Nginx启动

启动必须在nginx安装目录下的sbin文件夹下
Nginx_第1张图片

./nginx -s reload    重启
./nginx -s stop      关闭
./nginx  启动

在这里插入图片描述
nginx服务启动之后,在浏览器中访问(默认访问是 服务器ip+80端口)
Nginx_第2张图片

四、nginx反向代理

打一个jar包项目复制到linux下

java -jar 项目名

Nginx_第3张图片
在浏览器中访问项目地址+端口号,(这里访问虚拟机的地址+tomcat默认端口)
Nginx_第4张图片
nginx反向代理项目
java项目:localhost:8080
nginx: localhost:80
进入nginx配置文件 nginx.conf 在原来的server上加入如下代码
使用nginx的192.168.91.100:81 端口代理 java项目的localhost:8080

server {
        listen       81;
        server_name  localhost;
              location / {        
                   proxy_pass   http://127.0.0.1:8080;
          }
}

测试访问:
Nginx_第5张图片

五、nginx负载均衡

准备三个项目,端口不同,项目相同
Nginx_第6张图片
后台 启动三个项目,测试项目

nohup java -jar demo8080.jar > log8080.file 2>&1 &

Nginx_第7张图片
Nginx_第8张图片
接下来配置nginx吗,实现负载均衡

 upstream www.hdw.com{
                server 192.168.91.100:8080;
                server 192.168.91.100:8081;
                server 192.168.91.100:8082;
        }


        server {
        listen       81;
        server_name  localhost;
                        location / {
                            proxy_pass   http://www.hdw.com;

                        }
        }

配置完成,访问nginx代理端口,多次访问,nginx自动请求3个端口,默认轮询
Nginx_第9张图片
=负载均衡的策略=
1.轮询
2.随机
3.权重
weight值越大,nginx请求的越偏重
Nginx_第10张图片

4.哈希
max_fails=2 如果两次访问失败,nginx认为该服务挂掉了。
fail_timeout=30s 访问超时。

六、动静分离

Nginx_第11张图片
Nginx_第12张图片
vim nginx.conf配置动静分离代码
nginx代理192.168.91.100:83/index =》java项目localhost:8080/index
请求的静态资源去/usr/test/static文件夹下找

server {
        listen     83;
        server_name  localhost;
              location / {
                   proxy_pass   http://192.168.91.100:8080;
          }
         
         location ~ .*\.(html|htm|gif|jpg|jpeg|bmp|png|ico|txt|js|css)$
         {
            root /usr/test/static;
            expires      3d;
         }   
}

Nginx_第13张图片
测试:
Nginx_第14张图片

七、配置容器动静分离

1.查看nginx容器与宿主机映射

-v /app/nginx/html:/usr/share/nginx/html

所以 宿主机的/app/nginx/html= 容器内/usr/share/nginx/html

2.上传文件

拷贝文件到宿主机:/app/nginx/html/image下

宿主机:/app/nginx/html/image/1.jpg 容器内:/usr/share/nginx/html/image/1.jpg

3.配置nginx(对应容器内文件地址)

location /image { root /usr/share/nginx/html;}

http://ip+port/image/1.jpg

八、注意

1.关闭防火墙
2.centos7能连接外网
3.有时候修改完配置文件配置不生效,需要重启nginx服务

./nginx -s reload

后台启动java项目

nohup java -jar demo8080.jar > log8080.file 2>&1 &

你可能感兴趣的:(安装手册,nginx,负载均衡,运维)