在CenterOS中安装nginx
直接安装
安装依赖包
# 一键安装上面四个依赖
yum -y install gcc zlib zlib-devel pcre-devel openssl openssl-devel
下载并解压安装包
# 创建一个文件夹
cd /usr/local
mkdir nginx
cd nginx
# 下载tar包
wget http://nginx.org/download/nginx-1.25.3.tar.gz
tar -xvf nginx-1.25.3.tar.gz
安装nginx
# 进入nginx目录
cd /usr/local/nginx/nginx-1.25.3
# 执行默认安装命令
./configure
# 或者可以增加插件安装
./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --with-http_v2_module
# 执行make命令
make
# 覆盖安装执行make install命令
make install
配置nginx.conf
# 打开并修改配置文件
vi /usr/local/nginx/conf/nginx.conf
启动nginx
/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
查看nginx进程
ps -ef | grep nginx
端口开放
# 服务器在防火墙中将nginx映射端口打开
# 云服务器在安全组中将nginx映射端口配置
# 服务器端口放开
firewall-cmd --zone=public --add-port=端口/tcp --permanent
# 重启防火墙
firewall-cmd --reload
# 防火墙放开端口列表
firewall-cmd --zone=public --list-ports
# tcp端口
iptables -A INPUT -p tcp -m tcp --dport 要开放的端口 -j ACCEPT
# udp端口
iptables -A INPUT -p udp -m udp --dport 要开放的端口 -j ACCEPT
service iptables start
service iptables restart
常用命令
# 进入安装目录中,
cd /usr/local/nginx/sbin
# 启动
./nginx -s start
# 关闭
./nginx -s stop
# 重启
./nginx -s reload
启动报错
No such file or directory
nginx: [error] open() “/usr/local/nginx/logs/nginx.pid” failed (2: No such file or directory)
# 解决办法:使用nginx -c的参数指定nginx.conf文件的位置
/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
No such process
nginx 启动报错nginx: [alert] kill(15368, 1) failed (3: No such process)
设置开机自启
创建nginx.service 文件
vi /lib/systemd/system/nginx.service
nginx.service内容配置
[Unit]
Description=nginx
After=network.target
[Service]
Type=forking
ExecStart=/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
ExecReload=/usr/local/nginx/sbin/nginx -s reload
ExecStop=/usr/local/nginx/sbin/nginx -s quit
PrivateTmp=true
[Install]
WantedBy=multi-user.target
nginx注册系统服务后相关指令
# 启动nginx
systemctl start nginx.service
# 设置开机自启动
systemctl enable nginx.service
# 停止开机自启动
systemctl disable nginx.service
# 查看服务当前状态
systemctl status nginx.service
# 重新启动服务
systemctl restart nginx.service
# 查看所有已启动的服务
systemctl list-units --type=service
文件上传限制,设置nginx.conf
# 比如上传限制为100兆
client_max_body_size 100m;
开启ssl模块
./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module
# 替换
cp ./objs/nginx /usr/local/nginx/sbin/
使用docker
从Docker Hub拉取最新的Nginx镜像
docker pull nginx
运行Nginx容器,并将其暴露在端口80上。您可以根据需要将它映射到其他端口。在这个例子中,我们将宿主机的80端口映射到容器的80端口
docker run --name my-nginx -p 80:80 -p 443:443 -d nginx
--name
选项为容器命名,以便将来可以方便地引用它。您可以选择一个不同的名称。
-p
选项用于指定端口映射。格式为 宿主机端口:容器端口
。
-d
选项让容器在后台运行。
通过访问 http://your-server-ip
或者 http://localhost
(如果您在本地运行)来验证Nginx是否已成功运行。您应该看到Nginx的默认欢迎页面。
若要停止并删除Nginx容器,请运行以下命令
docker stop my-nginx
docker rm my-nginx
如果您需要对Nginx进行配置或添加自定义内容,请使用卷(volume)或绑定挂载(bind mount)将宿主机的配置文件或内容目录映射到容器内。
假设您正在运行一个Nginx容器,您希望将宿主机上的一个目录(/home/user/www
)作为Nginx容器内的Web内容根目录(/usr/share/nginx/html
),您可以执行以下命令:
docker run -v /path/to/your/host-directory-1:/path/in/container-1 \
-v /path/to/your/host-directory-2:/path/in/container-2 \
your-image
现在,容器中的/usr/share/nginx/html
目录将映射到宿主机上的/home/user/www
目录,您可以直接在宿主机上对Web内容进行编辑,这些更改将立即反映在容器内。
请注意,绑定挂载的路径必须是绝对路径。另外,在使用绑定挂载时,您需要确保容器中的目录或文件已存在,否则Docker将在宿主机上创建一个新的目录或文件。
使用宿主机内的配置文件(-v中冒号前是宿主机配置文件,后面是docker中的)
docker run --name my-nginx \
-p 80:80 \
-p 443:443 \
-v /home/user/custom-nginx.conf:/etc/nginx/nginx.conf \
-d nginx
重新加载
docker exec my-nginx nginx -s reload
# 或者
docker restart my-nginx
最后启动合并示例
docker run --name my-nginx \
-p 80:80 \
-p 443:443 \
-v /home/hexoBlog:/home/hexoBlog \
-v /home/cdn:/home/cdn \
-v /home/nginx/ssl:/usr/local/nginx/ssl \
-v /home/nginx/nginx.conf:/etc/nginx/nginx.conf \
-d nginx
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 ALLBS!
评论