# proxy the PHP scripts to Apache listening on 127.0.0.1:80
#
#location ~ \.php$ {
# proxy_pass http://127.0.0.1;
#}
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
#location ~ \.php$ {
# root html/mydoc;
# #fastcgi_pass 127.0.0.1:9000;
# fastcgi_pass 192.168.2.103:9000;
# fastcgi_index index.php;
# #fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
# #fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
# fastcgi_param SCRIPT_FILENAME /usr/share/nginx/html$fastcgi_script_name;
# include fastcgi_params;
#}
# deny access to .htaccess files, if Apache's document root
# concurs with nginx's one
#
#location ~ /\.ht {
# deny all;
#}
}
在/data/nginx/html的目录下创建对应的mydoc目录,并在目录内创建一个index.html,我们这边直接复制根目录下的index.html进行一些修改作为标识,如下图:
![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/cf1f78ccec834d258fd6cbd060953c9d.png#pic_center)
![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/53367f1c0cb44b1686e940362c9a4f6e.png#pic_center)
构建完成后,我们需要重启Nginx容器,这里多提一点,我们在使用二进制部署的Nginx时,会使用`Nginx -s reload`的重载命令,那么Docker部署的Nginx的重载命令如下:
docker exec -it [容器id/容器名称] nginx -s reload
执行完毕后,我们测试访问
![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/9f1ad0b6a5da45178158460ebb3cbca6.png#pic_center)
至此Nginx简单的单机部署完成。后续大家可以在部署好的容器进行配置修改,以适应新的服务需求。
### 自定义配置模块部署
Nginx之所以能够适应很多复杂的应用场景,在于他的具有扩展配置模块的能力。开发者根据业务场景组合配置扩展模块就变得尤为重要。开发者往往需要编译配置Nginx的很多扩展模块,比如stream、http\_stub\_status\_module、http\_ssl\_module等,来适应变化的需求场景。
由于直接使用Docker部署的Nginx本身就开启可很多模块。虽然这些模块很多有用,但是没用到的也很多。如下图:
![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/efe68929203d46758ef51caf99639ab0.png#pic_center)
如果觉得以上这些开启的模块够用,那么可以直接使用。
#### 1.自制对应镜像
我们使用Dockerfile制作定制化的Nginx镜像,这里提供两种Dockerfile
**编译好的Nginx直接打包成镜像**
一般用于已经有nginx服务的情况,直接将以前的编译过的包直接封装进入Docker镜像中就可以了,代码如下:
使用Centos7作为基础镜像
FROM centos:7
安装必要的工具
RUN yum -y update && yum -y install tar && yum clean all
将已编译好的 Nginx 文件复制到容器中
COPY nginx.tar /usr/local/
进入 Nginx 安装目录
WORKDIR /usr/local/
解压 Nginx 包
RUN tar -xvf nginx.tar
暴露 Nginx 端口
EXPOSE 80
在容器启动时运行 Nginx
CMD [“/usr/local/nginx/sbin/nginx”, “-g”, “daemon off;”]
**直接打包时编译nginx镜像**
这个直接使用创建对应镜像即可,代码如下:
使用CentOS 7作为基础镜像
FROM centos:7
安装编译所需的依赖包
RUN yum update -y &&
yum install -y gcc make zlib-devel pcre-devel openssl-devel wget &&
yum clean all
下载Nginx源码并解压缩
RUN wget http://nginx.org/download/nginx-1.22.0.tar.gz &&
tar -zxvf nginx-1.22.0.tar.gz
进入Nginx源码目录,编译并安装
RUN cd nginx-1.22.0 &&
./configure --prefix=/usr/local/nginx --with-stream --with-http_stub_status_module --with-http_ssl_module &&
make &&
make install
清理安装过程中的临时文件
RUN rm -rf nginx-1.22.0.tar.gz nginx-1.22.0
设置启动命令
CMD [“/usr/local/nginx/sbin/nginx”, “-g”, “daemon off;”]
将以上的Dockerfile文件选择一种直接执行
Docker build -t my_new_nginx_images .
执行结果如下
![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/cc653e1c43fe436bb39eb0b4df9c96a0.png#pic_center)
#### 2.启动容器
执行启动容器命令
**自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。**
**深知大多数Linux运维工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!**
**因此收集整理了一份《2024年Linux运维全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。**
![img](https://img-blog.csdnimg.cn/img_convert/45d9345c80671a0f49952d6dd0d121d9.png)
![img](https://img-blog.csdnimg.cn/img_convert/a2831e6fd043effaead81094d8128cb1.png)
![img](https://img-blog.csdnimg.cn/img_convert/156bb79c84e9fadc11fbd07a019ae688.png)
![img](https://img-blog.csdnimg.cn/img_convert/72a38a1e5e400afb14020580bf503a63.png)
![img](https://img-blog.csdnimg.cn/img_convert/4346ff0875f9d9d571997eecff86f063.png)
**既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Linux运维知识点,真正体系化!**
**由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新**
**如果你觉得这些内容对你有帮助,可以添加VX:vip1024b (备注Linux运维获取)**
![img](https://img-blog.csdnimg.cn/img_convert/b8909e1563078357d7a61e277fe25e2d.jpeg)
知识点,真正体系化!**
**由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新**
**如果你觉得这些内容对你有帮助,可以添加VX:vip1024b (备注Linux运维获取)**
[外链图片转存中...(img-fWSSLctk-1712618276180)]