可以使用以下命令来查看8080端口是哪个进程在使用,这对于特定端口占用有用。
(1)默认已经安装vmware,并创建了Ubuntu系统以及包括网络等必要的配置,我的是ubuntu20.04,建议学习这个的时候使用克隆的虚拟机(完全克隆)
(2)默认已经安装Xshell工具,并能够使用ssh连接上你的linux虚拟机。(虚拟机网络连接正常,本人使用nat连接)。
(默认使用ubuntu20.04系统)
(1)链接:https://nginx.org/download/ 版本:nginx-1.21.6.tar.gz
(2)使用Xshell连接上你的虚拟机,并使用Xshell自带的文件传输工具将下载的文件上传到你登录用户创建的root目录下。
(3)进入root目录,使用下列命令解压,解压完成后进入解压的文件夹。
tar zxvf nginx-1.21.6.tar.gz
(4)安装依赖:
apt-get install openssl libssl-dev -y
apt-get install libpcre3 libpcre3-dev -y
apt-get install libpcre3 libpcre3-dev -y
(5)安装gcc和make:
apt install gcc -y
apt install make -y
(6)执行,等待生成makefile文件
./configure --prefix=/usr/loacl/nginx
(7)执行 ,编译
(8)安装
# 首先进入/usr/local/nginx/sbin下,/usr/local/nginx是前面指定的安装目录
./nginx # 启动 step
./nginx -s stop # 快速停止
./nginx -s quit # 优雅关闭,在推出前完成已经建立的连接请求
./nginx -s reload # 重新加载配置
(在/usr/local/nginx/sbin下)
(1)使用./nginx先手动启动nginx,然后ifconfig查看虚拟机的ip,访问这个ip,一般默认访问成功
可能会访问失败,
1>访问失败请关闭防火墙或者自行配置防火墙规则)(默认没设置过防火墙的话,防火墙是关闭的)
2>还有可能你的默认端口80端口被别的进程占用了(我的就被apache占用了,
请在/usr/local/nginx/conf/nginx.conf文件里面配置端口,如下(我的配置成8080端口了):
server {
listen 8080;
server_name localhost;
......
}
将nginx配置成systemctl可以管理的服务
vim /usr/lib/systemd/system/nginx.service # 新建文件
(1)配置文件内容:
[Unit]
Description=nginx - web server
After=network.target remote-fs.target nss-lookup.target
[Service]
Type=forking
PIDFile=/usr/local/nginx/logs/nginx.pid
ExecStartPre=/usr/local/nginx/sbin/nginx -t -c /usr/local/nginx/conf/nginx.conf
ExecStart=/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
ExecReload=/usr/local/nginx/sbin/nginx -s reload
ExecStop=/usr/local/nginx/sbin/nginx -s stop
ExecQuit=/usr/local/nginx/sbin/nginx -s quit
PrivateTmp=True
[Install]
WantedBy=multi-user.target
(2)保存退出后,在/usr/local/nginx/sbin目录下,使用相应命令可以看到之前手动启动的的nginx服务,
请重载守护进程配置前先手动关闭nginx,免得出问题(百分百出问题)
ps -ef | grep nginx # 查看之前手动启动的nginx服务
./nginx -s stop # 手动关闭nginx服务
systemctl daemon-reload
systemctl enable nginx