Linux上部署Nginx服务器
文章目录
- 概述
- 详细过程
- 1. 安装Nginx
- 1.1 使用包管理器安装(以Ubuntu为例):
- 1.2 使用源码安装:
- 2. 启动和停止Nginx
- 3. 配置Nginx
- 4. 测试配置和重载Nginx
- 5. 设置防火墙规则
- 6. 查看网页
- 可能遇到的问题和解决方案
- 1:Nginx无法启动,出现“bind() to [::]:80 failed”错误
- 2:Nginx配置更新后不生效
- 3:网页部署后其他主机无法访问
- 总结
- 参考
概述
当你完成了一个网页的开发并准备让其他人访问时,你需要将它部署到一个Web服务器上。Nginx是一个高效且广泛使用的Web服务器,本文将介绍如何使用Nginx将本地开发的网页发布到互联网上,供其他用户访问。
详细过程
1. 安装Nginx
在Linux上安装Nginx通常有两种方式:通过包管理器或源码编译安装。
1.1 使用包管理器安装(以Ubuntu为例):
sudo apt update
sudo apt install nginx
1.2 使用源码安装:
- 下载Nginx源码:
wget http://nginx.org/download/nginx-1.21.6.tar.gz
- 解压并进入目录:
tar -xzvf nginx-1.21.6.tar.gz
cd nginx-1.21.6
- 编译并安装:
./configure
make
sudo make install
安装完成后,Nginx默认会安装在/usr/local/nginx/
。
- 手动创建 Nginx 服务单元文件
sudo touch /etc/systemd/system/nginx.service
修改配置文件
[Unit]
Description=The NGINX HTTP and reverse proxy server
Documentation=http://nginx.org/en/docs/
After=network.target
[Service]
Type=forking
ExecStart=/usr/local/nginx/sbin/nginx
ExecReload=/usr/local/nginx/sbin/nginx -s reload
ExecStop=/usr/local/nginx/sbin/nginx -s stop
PIDFile=/run/nginx.pid
PrivateTmp=true
[Install]
WantedBy=multi-user.target
- 重新加载 systemd 配置并启用服务
sudo systemctl daemon-reload
2. 启动和停止Nginx
安装完Nginx后,使用以下命令来管理Nginx服务。
启动Nginx:
sudo systemctl start nginx
查看Nginx状态:
sudo systemctl status nginx
停止Nginx:
sudo systemctl stop nginx
重启Nginx:
sudo systemctl restart nginx
3. 配置Nginx
为用户变量添加Nginx
在~/.bashrc
末尾添加Nginx路径
#Nginx
export NGINX_HOME=/usr/local/nginx
export PATH=$NGINX_HOME/sbin:$PATH
为使更改生效,执行以下命令
sudo source ~/.bashrc
Nginx的主配置文件位于/usr/local/nginx/conf/nginx.conf
修改配置
server {
listen 80; # 监听 80 端口
server_name localhost; # 主机的ip地址或域名
location / {
root /trubin; # 网站根目录
index index.html index.htm; # 默认首页文件
}
}
4. 测试配置和重载Nginx
每次修改配置文件后,使用以下命令进行测试并重载Nginx:
nginx -t # 测试配置文件是否正确
systemctl reload nginx # 重新加载配置
5. 设置防火墙规则
在Linux上安装并运行Nginx时,需要确保防火墙允许HTTP和HTTPS流量。使用以下命令:
sudo ufw allow 80 # 允许HTTP
sudo ufw allow 443 # 允许HTTPS
6. 查看网页
上传文件到跟目录
我设置的是/trubin
打开网页查看
我设置的是本地路径localhost
用浏览器输入ip地址或域名+端口就能访问网页了
如果http端口是80,则在浏览器中可以省略,即http://localhost
,如果是其他端口则需要手动填写,例如ip是10.10.1.2,端口是1210,http://10.10.1.2:1210
可能遇到的问题和解决方案
1:Nginx无法启动,出现“bind() to [::]:80 failed”错误
错误原因:Nginx无法绑定80端口,可能是该端口已被其他服务占用。
解决过程:
- 使用
lsof
检查端口占用的pid:
sudo lsof -i :80
- 如果发现另一个服务占用80端口,可以通过pid停止该服务或修改Nginx配置使用其他端口。
sudo kill -9 [pid]
2:Nginx配置更新后不生效
错误原因:配置文件修改后没有重载Nginx服务。
解决过程:
- 确保修改后执行
nginx -t
命令检查配置文件是否正确。 - 执行
sudo systemctl reload nginx
命令来重新加载Nginx配置。
3:网页部署后其他主机无法访问
错误原因:云服务器安全组规则没有开放端口。
解决过程:(以阿里云为例)
-
登录云服务器控制台,找到对应实例。
-
修改安全组规则。
-
开放需要的端口。
只用设置入方向规则,出方向默认全开。
手动添加策略,协议类型选TCP
,端口范围选择HTTP
和HTTPS
,授权对象为所有0.0.0.0/0
总结
通过部署Nginx,我们能够有效地提升Web服务器的性能,特别是在负载均衡和高并发情况下。Nginx的配置相对简单,但需要注意端口冲突、反向代理设置和防火墙配置等问题。在部署过程中,解决常见的错误,如502错误和端口占用,能确保Nginx的稳定运行。掌握这些技巧后,Nginx将成为搭建高性能Web服务的有力工具。
参考
- CSDN——使用nginx部署静态网站详细教程
- CSDN——Linux系统下安装配置nginx(保姆级教程)
- CSDN——阿里云服务器开放端口的正确方式(超详细图文教程)