Ubuntu环境下安装部署Nginx

本文档适用于在Ubuntu24.04系统下部署nginx

一、使用apt-get命令安装nginx

注:以下命令都是在root用户下使用

  1. 检查是否存在apt命令
1
apt –version 

说明:出现版本号就说明当前环境存在apt

  1. 更新apt命令
1
apt update
  1. 安装nginx
1
apt-get install nginx
  1. 查看nginx版本
1
nginx -v

出现nginx版本号,即安装成功。

img\5. 启动nginx

1
systemctl start nginx
  1. 查看nginx的状态
1
systemctl status nginx

img

  1. 安装nginx后的文件位置
  • /usr/sbin/nginx:主程序
  • /etc/nginx:存放配置文件
  • /usr/share/nginx:存放静态文件
  • /var/log/nginx:存放日志

二、 卸载上述nginx安装方式

  1. 先停止nginx命令
1
systemctl stop nginx
  1. 通过apt-get命令卸载nginx
1
apt-get --purge autoremove nginx
  1. 查看nginx的版本号
1
nginx -v

如下所示,即为卸载成功

img

三、 通过在安装包的方式部署nginx

  1. 下载nginx相关依赖包

apt-get install gcc

apt-get install libpcre3 libpcre3-dev

apt-get install zlib1g zlib1g-dev

sudo apt-get install openssl

sudo apt-get install libssl-dev

  1. 新建nginx的安装目录

cd /opt

mkdir nginx

cd nginx

  1. 通过wget下载nginx安装包
1
wget https://nginx.org/download/nginx-1.24.0.tar.gz
  1. 解压nginx的安装包
  • 下载的nginx是tar.gz文件

命令:tar -zvxf nginx-1.24.0.tar.gz

  • 下载的nginx是zip文件

命令:unzip nginx-1.24.0.tar.gz

  1. 切换到解压好的nginx-1.24.0目录下
1
nginx-1.24.0
  1. 配置
1
./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module

说明:

  1. –prefix=/usr/local/nginx:指定安装目录为/usr/local/nginx。在编译和安装完成后,软件将被安装到该目录下.

  2. –with-http_stub_status_module:启用 HTTP Stub Status 模块。该模块是 Nginx 的一个内置模块,用于获取 Nginx 服务器的状态信息。

  3. –with-http_ssl_module:启用 HTTP SSL 模块。该模块使得 Nginx 支持通过 HTTPS 提供安全的加密传输。

  4. 编译

1
make
  1. 安装
1
make install

四、启动或关闭

  1. 启动Nginx
1
2
3
4
5
6
7
8
#切换到nginx的安装目录

cd /usr/local/nginx/sbin


#启动nginx

./nginx

1
/usr/local/nginx/sbin/nginxAI助手
  1. 关闭nginx
1
/usr/local/nginx/sbin/nginx -s stopAI助手

1
2
3
4
5
#查看Nginx的进程
ps -ef | grep nginx

#杀死Nginx相关进程
kill xxx

五、访问nginx

在浏览器上面,输入当前你服务器ip+nginx的端口号,如果出现以下图片,就说明成功。

image-20241221165157569

六、让主机也能连接ubuntu上的nginx

一、配置网络

确保虚拟机和本机在同一网络环境中是访问虚拟机中Nginx服务的前提。虚拟机的网络配置主要包括桥接模式和NAT模式。

桥接模式

桥接模式使虚拟机像一个独立的设备,直接连接到宿主机所在的物理网络中。这样,虚拟机将获得一个与宿主机处于同一网段的IP地址。本机可以通过此IP地址访问虚拟机中的Nginx服务。

  1. 选择桥接模式:打开虚拟机管理软件(如VMware、VirtualBox),找到虚拟机的网络设置选项,选择“桥接网络适配器”。
  2. 获取IP地址:启动虚拟机,使用命令ifconfig(Linux)或ipconfig(Windows)查看虚拟机的IP地址。

NAT模式

NAT模式使虚拟机通过宿主机的网络连接上网,虚拟机和宿主机之间通过NAT(网络地址转换)进行通信。NAT模式下,虚拟机的IP地址通常是一个私有地址。

  1. 选择NAT模式:在虚拟机管理软件中选择“NAT网络适配器”。
  2. 端口转发:为了让宿主机访问虚拟机中的Nginx服务,需要配置端口转发。将宿主机的某个端口(如8080)映射到虚拟机的80端口。

二、检查防火墙

虚拟机的防火墙设置可能会阻止Nginx服务的访问,因此需要检查并配置防火墙规则。

检查防火墙状态

  1. Linux防火墙:使用命令sudo ufw status(适用于Ubuntu)或sudo firewall-cmd --state(适用于CentOS)检查防火墙状态。
  2. Windows防火墙:在控制面板中打开“Windows防火墙”,查看防火墙的状态和规则。

配置防火墙规则

开放端口

:确保Nginx使用的端口(默认80端口)已开放。

  • Ubuntu:使用命令sudo ufw allow 80/tcp开放80端口。
  • CentOS:使用命令sudo firewall-cmd --permanent --add-port=80/tcp开放80端口,并使用sudo firewall-cmd --reload重新加载防火墙配置。
  • Windows:在防火墙设置中手动添加规则,允许80端口的TCP流量。

三、修改Nginx配置文件

Nginx的配置文件需要修改以确保其监听所有IP地址,并且可以从外部访问。

主要配置文件

Nginx的主配置文件通常位于/etc/nginx/nginx.conf(Linux)或C:nginxconfnginx.conf(Windows)中。

修改配置文件

  1. 打开配置文件:使用文本编辑器(如vi、nano或Notepad)打开Nginx配置文件。

  2. 监听所有IP地址

    :找到server块中的listen指令,确保其监听所有IP地址,例如:

    1
    2
    3
    4
    5
    server {
    listen 80;
    server_name _;
    ...
    }

    也可以显式指定监听所有接口:

    1
    2
    3
    4
    5
    server {
    listen 0.0.0.0:80;
    server_name _;
    ...
    }

四、重启Nginx服务

修改配置文件后,需要重启Nginx服务以应用新的配置。

  1. Linux系统:
    • 使用命令sudo systemctl restart nginx重启Nginx服务(适用于systemd管理的系统,如Ubuntu、CentOS 7及以上)。
    • 使用命令sudo service nginx restart重启Nginx服务(适用于init.d管理的系统,如CentOS 6及以下)。
  2. Windows系统:在命令提示符中进入Nginx的安装目录,使用命令nginx -s reload重启Nginx服务。

五、测试访问

完成上述步骤后,可以通过本机浏览器或命令行工具测试访问虚拟机中的Nginx服务。

  1. 浏览器访问:在浏览器地址栏中输入虚拟机的IP地址(如http://192.168.1.100),查看是否能看到Nginx的欢迎页面。

  2. 命令行工具:使用

    1
    curl

    命令行工具测试访问,例如:

    1
    curl http://192.168.1.100

六、排查常见问题

如果无法访问Nginx服务,可以根据以下常见问题进行排查:

网络连接问题

  1. IP地址:确认虚拟机的IP地址是否正确,确保与本机在同一网络段。
  2. 网络配置:检查虚拟机网络配置是否正确,是否选择了桥接模式或正确配置了NAT端口转发。

防火墙问题

  1. 端口开放:确认虚拟机防火墙是否开放了80端口,宿主机防火墙是否允许访问虚拟机的IP地址。
  2. 防火墙状态:确保防火墙处于启用状态,并且配置了正确的规则。

Nginx配置问题

  1. 配置文件语法:确认Nginx配置文件语法正确,可以使用命令sudo nginx -t(Linux)或nginx -t(Windows)进行语法检查。
  2. 监听地址:确认Nginx配置文件中listen指令正确配置,监听所有IP地址或特定IP地址。