下载最新版Nginx镜像
docker pull nginx:latest
运行nginx镜像
docker run -p 80:80 --name nginx -d nginx
从nginx容器中映射核心文件
1、本地创建文件目录
mkdir -p /opt/docker/nginx/conf.dmkdir -p /opt/docker/nginx/htmlmkdir -p /opt/docker/nginx/logsmkdir -p /opt/docker/nginx/conf/nginx.conf
2、拷贝nginx容器对应的文件默认配置
docker cp nginx:/etc/nginx/nginx.conf /opt/docker/nginx/conf/docker cp nginx:/etc/nginx/conf.d /opt/docker/nginx/docker cp nginx:/usr/share/nginx/html /opt/docker/nginx
3、停止并删除nginx容器
docker stop nginxdocker rm nginx
重新启动nginx镜像启动新容器
docker run -p 80:80 --name nginx1 --restart=always \-v /opt/docker/nginx/conf/nginx.conf:/etc/nginx/nginx.conf \-v /opt/docker/nginx/conf.d:/etc/nginx/conf.d \-v /opt/docker/nginx/html:/usr/share/nginx/html \-v /opt/docker/nginx/logs:/var/log/nginx \-d nginx
阿里云安全组中添加80/80端口
浏览器测试是否启动成功
出现nginx访问首页,说明成功。
配置我的域名
接下来,我想把我申请的域名配置到nginx里,这样就能够起到保护ip地址的作用,这样看起来更像是一个完整的网站。首先,刚通过阿里云申请的域名审批通过后,需要在域名控制台下做下域名解析,解析完毕后,方可使用该域名,可以在windows环境下通过ping指令来确定是否解析成功,该域名是否可以直接访问! 解析过程,添加阿里云服务器下的公网ip地址即可!
windows环境看是否ping得通
发现可以ping通之后,我们就可以开始配置域名了! 修改nginx.conf文件, 我的域名是www.yonmei.xyz
配置反向代理
修改/opt/docker/nginx/conf.d下的default.conf文件,加入以下配置:
server {listen 80;server_name www.yonmei.xyz;location / {proxy_set_header Host $host;proxy_pass http://xx.xxx.xx.xx:9090;}}
重启nginx
docker stop nginx1;docker start nginx1;docker run -p 80:80 --name nginx1 --restart=always \-v /opt/docker/nginx/conf/nginx.conf:/etc/nginx/nginx.conf \-v /opt/docker/nginx/conf.d:/etc/nginx/conf.d \-v /opt/docker/nginx/html:/usr/share/nginx/html \-v /opt/docker/nginx/logs:/var/log/nginx \-d nginx
配置一个域名代理多个服务(多个localtion)
localtion ^~ /sweethouse/ {proxy_pass http://47.106.74.81:9090/;#注意这里末尾一定要加上/,因为请求时nginx会把/sweethouse/去掉之后的请求信息直接拼接。导致服务会报404.}
nginx正则表达式使用(可以匹配请求指定静态资源或者指定请求地址,代理不同服务地址):
/weixin_42303730/article/details/122963685