网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
4.测试验证
访问服务器ip:80端口(请先保证防火墙的端口已经打开,或者已经关闭),如下图所示,则安装成功。
5.Nginx配置
进入本地宿主机配置目录,由于我们启用的是include模式,所以在内部创建了conf.d目录
我们设置一个简单测试的配置,默认只有一个default.conf
配置文件,如果有其他配置需要可以在conf.d目录下继续添加配置,我们在这里增加一个mydoc.conf
的配置文件
配置mydoc.conf
server {
listen 8001;
listen [::]:8001;
server_name localhost;
location / {
root /usr/share/nginx/html/mydoc;
index index.html index.htm;
}
}
配置default.conf
server {
listen 80;
listen [::]:80;
server_name localhost;
#access_log /var/log/nginx/host.access.log main;
location / {
root /usr/share/nginx/html/home;
index index.html index.htm;
}
#error_page 404 /404.html;
# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html/home;
}
# 配置mydoc的测试代理
location /mydoc {
proxy_pass http://127.0.0.1:8001/;
proxy_set_header Host $host;
}
# 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进行一些修改作为标识,如下图:
构建完成后,我们需要重启Nginx容器,这里多提一点,我们在使用二进制部署的Nginx时,会使用Nginx -s reload
的重载命令,那么Docker部署的Nginx的重载命令如下:
docker exec -it [容器id/容器名称] nginx -s reload
执行完毕后,我们测试访问
至此Nginx简单的单机部署完成。后续大家可以在部署好的容器进行配置修改,以适应新的服务需求。
自定义配置模块部署
Nginx之所以能够适应很多复杂的应用场景,在于他的具有扩展配置模块的能力。开发者根据业务场景组合配置扩展模块就变得尤为重要。开发者往往需要编译配置Nginx的很多扩展模块,比如stream、http_stub_status_module、http_ssl_module等,来适应变化的需求场景。
由于直接使用Docker部署的Nginx本身就开启可很多模块。虽然这些模块很多有用,但是没用到的也很多。如下图:
如果觉得以上这些开启的模块够用,那么可以直接使用。
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 .
执行结果如下
2.启动容器
执行启动容器命令
# 启动容器
docker run --name my_new_nginx -d -p 80:80 my_new_nginx_images
### 最后的话
最近很多小伙伴找我要Linux学习资料,于是我翻箱倒柜,整理了一些优质资源,涵盖视频、电子书、PPT等共享给大家!
### 资料预览
给大家整理的视频资料:
![](https://img-blog.csdnimg.cn/img_convert/7488d5b49f859aa73840ac6b49eb7245.png)
给大家整理的电子书资料:
![](https://img-blog.csdnimg.cn/img_convert/d56cec4bc6e1c47bb4568e9681ad2e1d.png)
**如果本文对你有帮助,欢迎点赞、收藏、转发给朋友,让我有持续创作的动力!**
**网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。**
**[需要这份系统化的资料的朋友,可以点击这里获取!](https://bbs.csdn.net/forums/4f45ff00ff254613a03fab5e56a57acb)**
**一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**
友,让我有持续创作的动力!**
**网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。**
**[需要这份系统化的资料的朋友,可以点击这里获取!](https://bbs.csdn.net/forums/4f45ff00ff254613a03fab5e56a57acb)**
**一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**