创建挂载目录
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
make
make install
进入nginx刚才指定的安装目录
cd /app/nginx/
Conf: 配置文件的目录
Html: 静态网页
Logs:日志
Sbin: 启动脚本
至此,安装完成
./nginx -s reload 重启
./nginx -s stop 关闭
./nginx 启动
nginx服务启动之后,在浏览器中访问(默认访问是 服务器ip+80端口)
打一个jar包项目复制到linux下
java -jar 项目名
在浏览器中访问项目地址+端口号,(这里访问虚拟机的地址+tomcat默认端口)
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;
}
}
准备三个项目,端口不同,项目相同
后台 启动三个项目,测试项目
nohup java -jar demo8080.jar > log8080.file 2>&1 &
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个端口,默认轮询
=负载均衡的策略=:
1.轮询
2.随机
3.权重
weight值越大,nginx请求的越偏重
4.哈希
max_fails=2 如果两次访问失败,nginx认为该服务挂掉了。
fail_timeout=30s 访问超时。
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;
}
}
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 &