Ubuntu安装Nginx详细示例
这里介绍两种安装方式
1.apt 安装 Nginx
这种安装方式非常简单,几条命令就安装好了,它会自己安装到固定的位置,自动更新,自带systemctl start nginx,因为都是自动的,它一般只能满足一些基本需求,所以开发的话更推荐第二种
先看下这种简单的安装方式
sudo apt update
sudo apt install nginx -y
上面两个命令就安装完成了,我们查看一下是否安装成功,如果看到 “active (running)”,就说明启动成功了
sudo systemctl status nginx
Nginx 默认会监听 80 端口,我们给它改一下
sudo nano /etc/nginx/sites-available/default
找到下面的内容
listen 80 default_server;
listen [::]:80 default_server;
改成8080或其它的
listen 8080 default_server;
listen [::]:8080 default_server;
然后检查配置是否正确
sudo nginx -t
看到下面的就是没问题
nginx: configuration file /etc/nginx/nginx.conf test is successful
重新加载配置
sudo systemctl restart nginx
访问一下试试,如果访问不了检查一下你服务器的安全组是不是开放了对应的端口,也可以直接在服务器上试下 curl http://127.0.0.1:8080 看能不能请求到 nginx 的页面
http://你的服务器IP:8080
这里特别注意,现在的新服务器都是需要备案的,否则连 80 443 8080 这些常规端口都访问不了(开策略安全组都没用!!!),这个大家自己联系自己服务器的运营商
———————————————————————————————————————————————————————
下面我们再来看下第二种通过安装包的方式安装,这个稍微复杂,但是优点就是使用起来更加灵活
,也能自定义更多的配置
第一步先需要安装依赖工具
sudo apt update
sudo apt install -y build-essential libpcre3 libpcre3-dev zlib1g zlib1g-dev libssl-dev
第二步去下载源码解压
这里可以去官网下最新的,也可以直接用下面的命令下,我这里就直接用这个命令下的 nginx官网
# 我们把源码放在 /usr/local/src下面
cd /usr/local/src
# 下载 nginx1.24
sudo wget http://nginx.org/download/nginx-1.24.0.tar.gz
# 解压
sudo tar -zxvf nginx-1.24.0.tar.gz
# 进入解压后的目录
cd nginx-1.24.0
第三步编译并指定安装路径 /usr/local/nginx
# 设置安装路径
sudo ./configure --prefix=/usr/local/nginx
# 编译
sudo make
# 安装
sudo make install
第四步启动 nginx
sudo /usr/local/nginx/sbin/nginx
一样的我们访问 http://你的服务器IP:80 就可以看到默认的 nginx 页面,如果想修改端口去下面文件修改
sudo nano /usr/local/nginx/conf/nginx.conf
# 找到listen 80 改成你想要的端口
listen 8808;
要是访问不了还是去看下服务器安全组是否开放了 8808 端口
最后我们还需要手动给它创建 systemd
先创建一个nginx服务
sudo vi /etc/systemd/system/nginx.service
把下面的内容放进去,注意自己的安装目录位置
[Unit]
Description=The NGINX HTTP and reverse proxy server
After=network.target[Service]
Type=forking
PIDFile=/usr/local/nginx/logs/nginx.pid
ExecStart=/usr/local/nginx/sbin/nginx
ExecReload=/usr/local/nginx/sbin/nginx -s reload
ExecStop=/usr/local/nginx/sbin/nginx -s quit
PrivateTmp=true[Install]
WantedBy=multi-user.target
重新加载 systemd 配置
sudo systemctl daemon-reexec
sudo systemctl daemon-reload
设置为开机自启
sudo systemctl enable nginx
reboot 重启服务器测试一下 (注意:生产环境或服务器上有其它服务慎用,reboot重启服务器!!!)
如果不重启服务器也建议手动杀死nginx进程再进行下面的命令测试,因为我在测试的时候报错了,而且我先执行了 sudo systemctl stop nginx 用来关闭我上面安装时手动启动的 nginx,但是似乎没有关闭成功,直接 ps -ef|grep nginx 找到之前手动启动的进程,然后 kill -9 进程ID 杀掉吧
root@ecm-74de:/usr/local/src/nginx-1.24.0# sudo systemctl start nginx
Job for nginx.service failed because the control process exited with error code.
See "systemctl status nginx.service" and "journalctl -xeu nginx.service" for details.
然后我们就可以使用下面这些命令了
# 启动
sudo systemctl start nginx
# 重启
sudo systemctl restart nginx
# 停止
sudo systemctl stop nginx
# 查看状态,异常的时候这个命令非常有用
sudo systemctl status nginx