Linux离线安装nginx
1.切换到root用户
#切换到root用户
su -
#退出root用户
exit
2.目录操作
#切到根目录
cd /
#查看目录
ls
#切目录
cd /home/...
#到对应的目录下解压
3.安装Nginx
在有网络的设备上下载以下文件:
- Nginx:从 nginx.org/en/download 下载。
- OpenSSL:从 www.openssl.org/source 下载。
- PCRE:从 sourceforge.net/projects/pcre 下载。
- zlib:从 www.zlib.net 下载。
#---------------安装pcre库-------------------#
#安装pcre库
#cd到压缩文件的目录,解压pcre-8.45.tar.gz
tar -zxvf pcre-8.45.tar.gz
#cd到pcre-8.45目录,执行./configure 编译
./configure
# make编译
make
# make install安装,默认情况下,会安装到/usr/local目录下
make install#---------------安装zlib库-------------------##cd到压缩文件的目录,解压zlib.tar.gz
tar -zxvf zlib.tar.gz
# cd zlib目录,执行./configure 编译
./configure
# make编译
make
# make install安装,默认情况下,会安装到/usr/local目录下
make install#---------------安装openssl库-------------------#
#安装openssl库,openssl版本和nginx是配套的,要安装nginx对应的版本
#cd到压缩文件的目录,解压openssl-3.5.0.tar.gz
tar -zxvf openssl-3.5.0.tar.gz#cd openssl-3.5.0目录 执行./config 编译
./config# make编译
make
# make install安装,默认情况下,会安装到/usr/local目录下
make install#---------------安装nginx-------------------#
#nginx,之前的三个库必须先装
#cd到压缩文件的目录,解压nginx-1.28.0.tar.gz
tar -zxvf nginx-1.28.0.tar.gz
# nginx-1.28目录,执行./configure 编译或者./configure --prefix=/usr/local/nginx
./configure
# make编译
make
# make install安装,默认情况下,会安装到/usr/local目录下
make install
4.启动验证
#启动命令:/usr/local/nginx/sbin/nginx
/usr/local/nginx/sbin/nginx
#重启:
/usr/local/nginx/sbin/nginx –s reload
#停止:
/usr/local/nginx/sbin/nginx –s stop
#测试配置文件是否正常:/usr/local/nginx/sbin/nginx –t
#强制关闭:
pkill nginx
查看Nginx进程
你可以使用ps
或pgrep
命令来查看Nginx进程是否正在运行。
ps -ef | grep nginx
解释输出
-
如果Nginx正在运行,你会看到类似以下的输出:
root 1234 1 0 12:00 ? 00:00:00 nginx: master process /usr/sbin/nginx -g daemon on; master_process on; www-data 1235 1234 0 12:00 ? 00:00:00 nginx: worker process
root
表示Nginx主进程以root
用户运行。www-data
表示Nginx工作进程以www-data
用户运行。
-
如果Nginx未运行,你只会看到
grep
命令本身:user 1236 1233 0 12:05 pts/0 00:00:00 grep --color=auto nginx
查Nginx服务状态
运行以下命令:
sudo systemctl status nginx
解释输出
-
如果Nginx正在运行,你会看到类似以下的输出:
● nginx.service - A high performance web server and a reverse proxy serverLoaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)Active: active (running) since Fri 2025-06-20 12:00:00 CST; 1min agoMain PID: 1234 (nginx)Tasks: 2 (limit: 4915)Memory: 2.5MCGroup: /system.slice/nginx.service├─1234 nginx: master process /usr/sbin/nginx -g daemon on; master_process on;└─1235 nginx: worker process
Active: active (running)
表示Nginx正在运行。Main PID
显示了Nginx主进程的进程ID。
-
如果Nginx未运行,你会看到类似以下的输出:
● nginx.service - A high performance web server and a reverse proxy server
Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
Active: inactive (dead)
#### **检查端口监听情况**Nginx通常监听80端口(HTTP)和/或443端口(HTTPS)。你可以使用`netstat`或`ss`命令来检查这些端口是否被Nginx占用。使用netstat命令```bash
sudo netstat -tulnp | grep nginx
解释输出
-
如果Nginx正在运行,你会看到类似以下的输出
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 1234/nginx tcp 0 0 0.0.0.0:443 0.0.0.0:* LISTEN 1234/nginx
LISTEN
表示Nginx正在监听这些端口。1234
是Nginx主进程的PID。
-
如果Nginx未运行,该命令不会输出任何内容。
5.修改配置文件
- 从源码编译安装:默认情况下,配置文件位于
/usr/local/nginx/conf/nginx.conf
server {listen 8080; # 修改为8080端口server_name example.com;location / {root /var/www/html;#修改地址index index.html index.htm;}
}
- 配置反向代理:如果你想将请求转发到后端服务器,可以使用proxy_pass指令:
server {listen 80;server_name example.com;location / {proxy_pass http://backend-server:8080;proxy_set_header Host $host;proxy_set_header X-Real-IP $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;}
}
- 使用nano编辑器修改nginx.conf
nano
是一个简单易用的文本编辑器,适合初学者。
-
打开
nginx.conf
文件:sudo nano /usr/local/nginx/conf/nginx.conf
-
修改配置文件:
- 使用方向键导航到需要修改的地方。
- 直接编辑内容。
-
保存并退出:
- 按下
Ctrl + X
,然后按下Y
确认保存,最后按下Enter
键退出。
- 按下