本教程基于Docker部署Nginx,演示部署Nginx的版本为1.22.0,操作系统为CentOS7,其部署方式包括以下两种方式:
- 单机部署
- 自定义配置模块部署
什么是Nginx
Nginx (engine x) 是一款高性能、轻量级、稳定性高、并发性好的 Web 服务器 、反向代理服务器及电子邮件(IMAP/POP3)代理服务器。 广泛应用于Http服务、负载均衡、反向代理等实用场景。其配置简单、配置语法简洁,社区活跃,学习成本低等优点,使其成为最受欢迎的的服务器应用之一。
部署前的注意
在进行部署之前,最好对服务器的防火墙进行相关处理,命令如下,请按需使用
# 开放8888端口,端口自定义,我这里以8888为例
firewall-cmd --zone=public --add-port=8888/tcp --permanent
#关闭8888端口
firewall-cmd --zone=public --remove-port=8888/tcp --permanent
# 配置立即生效
firewall-cmd --reload
# 查看防火墙所有开放的端口
firewall-cmd --zone=public --list-ports
firewall-cmd --zone=public --list-all
# 关闭防火墙 如果不想管控端口,直接关闭系统防火墙,啥都能通,但安全性不强,不建议。
systemctl stop firewalld.service
systemctl start firewalld.service
systemctl restart firewalld.service
# 查看防火墙状态
firewall-cmd --state
# 查看监听的端口
netstat -lnpt
# 检查端口被哪个进程占用
netstat -lnpt | grep 8888
# 查看进程的详细信息
ps 8888
单机部署Nginx
拉取Nginx镜像
# 拉取Nginx镜像,版本使用1.22.0
docker pull nginx:1.22.0
# 查看拉取镜像
docker images
镜像拉取成功则如下图所示
创建主本地目录
# 创建配置目录
mkdir -p /data/nginx/conf
# 创建日志目录
mkdir -p /data/nginx/log
# 创建前端显示目录
mkdir -p /data/nginx/html
#对nginx本地文件进行递归赋权
chmod -R 755 /data/nginx
如下图
部署Nginx容器
1.生成容器
# 先简单启动容器
docker run -p 80:80 --name nginx -d nginx:1.22.0
# 进入容器内部
docker exec -it 容器id /bin/bash
2.复制容器配置到宿主机
# 将容器nginx.conf文件复制到宿主机
docker cp nginx:/etc/nginx/nginx.conf /data/nginx/conf/nginx.conf
# 将容器conf.d文件夹下内容复制到宿主机
docker cp nginx:/etc/nginx/conf.d /data/nginx/conf/conf.d
# 将容器中的html文件夹复制到宿主机
docker cp nginx:/usr/share/nginx/html/index.html /data/nginx/html
docker cp nginx:/usr/share/nginx/html/50x.html /data/nginx/html
3.重启容器
# 使用数据卷重启nginx容器
docker run -p 80:80 --name nginx -v /data/nginx/conf/nginx.conf:/etc/nginx/conf/nginx.conf -v /data/nginx/conf/conf.d:/etc/nginx/conf.d -v /data/nginx/log:/var/log/nginx -v /data/nginx/html:/usr/share/nginx/html -d nginx:1.22.0
查看容器是否启动成功
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 {
### 最后
**对于很多Java工程师而言,想要提升技能,往往是自己摸索成长,不成体系的学习效果低效漫长且无助。**
**整理的这些资料希望对Java开发的朋友们有所参考以及少走弯路,本文的重点是你有没有收获与成长,其余的都不重要,希望读者们能谨记这一点。**
**再分享一波我的Java面试真题+视频学习详解+技能进阶书籍**
![美团二面惜败,我的凉经复盘(附学习笔记+面试整理+进阶书籍)](https://img-blog.csdnimg.cn/img_convert/7e45abacca530b90bdd07a3ecc3dacda.webp?x-oss-process=image/format,png)
#
#location ~ /\.ht {
### 最后
**对于很多Java工程师而言,想要提升技能,往往是自己摸索成长,不成体系的学习效果低效漫长且无助。**
**整理的这些资料希望对Java开发的朋友们有所参考以及少走弯路,本文的重点是你有没有收获与成长,其余的都不重要,希望读者们能谨记这一点。**
**再分享一波我的Java面试真题+视频学习详解+技能进阶书籍**
[外链图片转存中...(img-LFpKUNDr-1714652087568)]
> **本文已被[CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】](https://bbs.csdn.net/topics/618154847)收录**