当前位置: 首页 > article >正文

学习笔记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

说明:

  1. configure:是用来编译之前的配置工作

–prefix:指定最终安装到的目录 默认值 /usr/local/ngnix

–sbin-path:用来指定可执行文件目录:默认的是 sbin/nginx

–conf-path:用来指定配置文件目录:默认的是 conf/nginx.conf

  1. make: 编译,生成了可执行文件

  2. make install: 开始安装

  3. 其实是三个命令,我用 && 连在一起了,怕小白不明白说明下。因为我第一次看就懵了。

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

http://www.kler.cn/a/400801.html

相关文章:

  • 【FAQ】HarmonyOS SDK 闭源开放能力 —Share Kit
  • 5G的SUCI、SUPI、5G-GUTI使用场景及关系
  • 【HCIP]——OSPF综合实验
  • 17.100ASK_T113-PRO 配置QT运行环境(三)
  • 通用定时器---输出比较功能
  • DataStream编程模型之数据源、数据转换、数据输出
  • 机器学习——期末复习 重点题归纳
  • 学习笔记022——Ubuntu 安装 MySQL8.0版本踩坑记录
  • 8、watch数据监视
  • Vscode离线安装插件的方法
  • ed by: java.lang.NoClassDefFoundError: android
  • 【redis】—— 环境搭建教程
  • CSS基础知识04
  • [C++]:C++11(一)
  • 基于Java的校园便利平台
  • elasticsearch是如何实现master选举的?
  • Matlab信号处理:短时傅里叶变换
  • Spring Boot汽车世界:资讯与技术的交汇
  • vue路由的钩子函数?
  • 离散数学与数据结构是什么关系
  • SLM561A系列60V10-50mA单通道线性恒流LED驱动芯片,为汽车照明、景观照明助力
  • 力扣2298. 周末任务计数
  • Linux系统-redis集群、nacos、nginx、keepalived、mysql开机自启
  • RabbitMQ教程:发布/订阅模式(Publish/Subscribe)(三)
  • 网络编程 -------- 3、TCP_UDP_UNIX
  • 汽车资讯新动力:Spring Boot技术革新