学习笔记029——Ubuntu安装Nginx
文章目录
- 1、apt安装
- 1.1 目录说明
- 1.2 设置 ——> 跨域
- 1.3 重启nginx服务
- 1.4 systemctl方式管理
- 2、手动安装
- 2.1 下载nginx
- 2.2 解压
- 2.3 安装gcc
- 2.4 安装其他一些依赖
- 2.5 开始安装
- 2.6 设置环境变量
- 2.7 systemctl方式管理
- 2.8 查看版本
- 2.9 nginx进程和端口查看
1、apt安装
#更新
apt-get update
#安装
apt-get install nginx
1.1 目录说明
/usr/sbin/nginx:主程序,启动文件
/etc/nginx:存放配置文件
/var/www/html:存放项目目录
/var/log/nginx:存放日志
一般自动安装配置文件目录和主程序目录不变,因为版本原因,其它目录可能会变,
但是都可以从配置文件里ngxin.conf里找到对应的位置。
1.2 设置 ——> 跨域
add_header Access-Control-Allow-Origin *;
add_header Access-Control-Allow-Methods 'GET, POST, OPTIONS';
add_header Access-Control-Allow-Headers 'DNT,X-Mx-ReqToken,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type';
add_header Access-Control-Allow-Credentials true;
获取到nginx的执行路径后,使用-t参数即可获取该进程对应的配置文件路径:
/usr/sbin/nginx -t
结果如下:
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
1.3 重启nginx服务
nginx安装目录sbin下,输入命令:
./nginx -s reload
1.4 systemctl方式管理
#启动
sudo systemctl start nginx
#关闭
sudo systemctl stop nginx
#查看状态
sudo systemctl status nginx
#查询nginx进程
ps -ef|grep nginx
#查看端口
lsof -i:8080
2、手动安装
2.1 下载nginx
点击下载。
# 下载地址
http://mirrors.sohu.com/nginx/
2.2 解压
tar -zxvf nginx-1.25.4.tar.gz
2.3 安装gcc
apt-get install -y gcc
如果出现如下错误:
下列软件包有未满足的依赖关系:
gcc : 依赖: gcc-7 (>= 7.3.0-12~) 但是它将不会被安装
推荐: libc6-dev 但是它将不会被安装 或
libc-dev
解决方案:
# 通过aptitude代替apt来处理。aptitude软件包在解决依赖性上更有优势
sudo apt-get install aptitude
sudo aptitude install gcc g++
aptitude会给出解决方案,根据解决方案来选择。
可以看到,这里aptitude提醒我们有很多包依赖,而这里显示的都是未安装,所以这里选择不接受这个解决方案。选择N。
然后aptitude会再给出解决方案。因为我们安装的一些包版本与需要的版本不匹配,主要降级。此时选择Y。
然后,aptitude会自动完成依赖包的降级。
结束后,查看gcc和g++版本,已经安装成功。
2.4 安装其他一些依赖
apt-get install -y libpcre3 libpcre3-dev
apt-get install -y zlib1g zlib1g-dev
apt-get install -y openssl
apt-get install -y libssl-dev
2.5 开始安装
# 解压
tar -zxvf nginx-1.25.4.tar.gz
# 进入目录
cd nginx-1.25.4
# 先把编译安装一下
apt-get install -y make
# 执行安装命令
./configure \
--prefix=/usr/local/nginx \
--sbin-path=/usr/local/nginx/sbin/nginx \
--conf-path=/etc/nginx/nginx.conf \
&& make \
&& make install
说明:
- configure:是用来编译之前的配置工作
–prefix:指定最终安装到的目录 默认值 /usr/local/ngnix
–sbin-path:用来指定可执行文件目录:默认的是 sbin/nginx
–conf-path:用来指定配置文件目录:默认的是 conf/nginx.conf
-
make: 编译,生成了可执行文件
-
make install: 开始安装
-
其实是三个命令,我用 && 连在一起了,怕小白不明白说明下。因为我第一次看就懵了。
2.6 设置环境变量
echo "PATH=/usr/local/nginx/sbin:${PATH}" > /etc/profile.d/nginx.sh
source /etc/profile.d/nginx.sh
2.7 systemctl方式管理
添加配置文件
sudo vim /etc/systemd/system/nginx.service
输入内容
[Unit]
Description=nginx #描述
After=network.target #描述服务类别
[Service]
Type=forking #后台运行形势
PIDFile =/usr/local/nginx/logs/nginx.pid #PID文件位置
ExecStart=/usr/local/nginx/sbin/nginx #启动服务
ExecReload=/bin/kill -s HUP $MAINPID #根据PID重载配置
ExecStop=/bin/kill -s QUIT $MAINPID #根据PID终止进程
PrivateTmp=true
[Install]
WantedBy=multi-user.target
调整权限
sudo chmod 777 /etc/systemd/system/nginx.service
重新加载
sudo systemctl daemon-reload
设置开机自启
sudo systemctl enable nginx
## 停止
sudo systemctl stop nginx.service
## 开启
sudo systemctl start nginx.service
## 重启
sudo systemctl restart nginx.service
## 查看服务状态
sudo systemctl status nginx.service
## 查看是否开机自启
sudo systemctl list-unit-files | grep nginx
2.8 查看版本
nginx -v
nginx version: nginx/1.25.4
2.9 nginx进程和端口查看
#查询nginx进程
ps -ef|grep nginx
#查看端口
lsof -i:8000