nginx下载安装配置

nginx下载安装配置

环境:win10虚拟机Vmware,在linux(centos7.6)下安装nginx(nginx-1.20.2.tar.gz)

注意:在linux中,不是管理员登录,最好在指令前加上sudo提权,避免权限不够执行失败带来的麻烦,以下命令请都加上sudo,这是一个好习惯。

下载

https://nginx.org/										# 官网
https://nginx.org/en/download.html						# 官网下载页
# 镜像下载,访问镜像站搜索下载即可
https://www.cnblogs.com/shui-notes/p/18646286		
https://nginx.org/en/docs/switches.html					# nginx命令行参数

安装

安装虚拟机Vmware

在虚拟机上安装centos7.6

接下来,在centos7.6上安装nginx

1.登录linux,搭建gcc等环境

保证linux可以ping通外网

用xshell连接上linux执行指令

yum -y install gcc-c++ pcre pcre-devel zlib zlib-devel openssl openssl-devel

查看linux的ip地址

执行以上命令:centos7.6的yum源报错:Cannot find a valid baseurl for repo: base/7/x86_64

处理好后再执行命令成功安装

不报错且使用gcc --version可以查看到版本就OK

2.将 nginx-1.20.2.tar.gz 上传到 Linux /opt 目录(使用xftp)

3. 切换到/opt 目录, 解压 nginx-1.20.2.tar.gz

cd /opt/
tar -zxvf nginx-1.20.2.tar.gz

4. 将解压后的文件放到指定位置

mv nginx-1.20.2 /usr/local/nginx

5.进入文件目录

cd /usr/local/nginx/

6.配置nginx 路径

./configure --prefix=/usr/local/nginx --pid-path=/var/run/nginx/nginx.pid --lock-path=/var/lock/nginx.lock --error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log --with-http_gzip_static_module --http-client-body-temp-path=/var/temp/nginx/client --http-proxy-temp-path=/var/temp/nginx/proxy --http-fastcgi-temp-path=/var/temp/nginx/fastcgi --http-uwsgi-temp-path=/var/temp/nginx/uwsgi --http-scgi-temp-path=/var/temp/nginx/scgi --conf-path=/usr/local/nginx/nginx.conf

如果报错,删除相关文件夹和路径从来一遍

7.补全nginx配置目录

mkdir /var/temp/nginx -p

8.编译并安装

make && make install

9.测试配置与 nginx 是否正常,当出现 successful 即可

./sbin/nginx -t

10.启动 nginx

./sbin/nginx -c nginx.conf

11.查看进程/或端口(默认端口是 80)

ps -ef | grep nginx
netstat -tulnp | grep nginx	

验证是否安装成功

打开linux的浏览器,访问http://localhost,出现nginx即本机访问成功 。

配置

配置windows访问linux上的nginx

# 查看开放的服务和端口号等信息
firewall-cmd --list-all
# 打开80端口号,--permanent表示永久打开,否则重启失效
firewall-cmd --zone=public --add-port=80/tcp --permanent
# 关闭端口,--permanent表示永久打开,否则重启失效
firewall-cmd --zone=public --remove-port=80/tcp --permanent
# 打开http服务等同于打开80端口
firewall-cmd --add-service=http --permanent
# 重启防火墙,设置才会生效
firewall-cmd --reload

当检查或者启动nginx时,报错

nginx: [emerg] open() "/var/run/nginx/nginx.pid" failed (2: No such file or directory)

解决办法:

# 进入nginx目录
cd /usr/local/nginx/
# 编辑配置文件
vim nginx.conf

# 移除#,修改为自定义的nginx.pid目录
# 修改为 
# pid /usr/local/nginx/logs/nginx.pid

# i进入编辑模式,编辑好后,esc进入命令模式,:wq保存并退出

#在/usr/local/nginx/目录下创建logs目录
mkdir /usr/local/nginx/logs/
# 启动nginx
/usr/local/nginx/sbin/nginx -c nginx.conf

# 查看是否启动成功
ps -ef | grep nginx

用systemctl方式管理nginx

创建systemd服务单元文件

vim /etc/systemd/system/nginx.service

编写服务单元文件

[Unit]
Description=The NGINX HTTP and reverse proxy server
Documentation=http://nginx.org/en/docs/
After=network-online.target remote-fs.target nss-lookup.target
Wants=network-online.target

[Service]
Type=forking
PIDFile=/usr/local/nginx/logs/nginx.pid
ExecStartPre=/usr/local/nginx/sbin/nginx -t
ExecStart=/usr/local/nginx/sbin/nginx -c /usr/local/nginx/nginx.conf
ExecReload=/usr/local/nginx/sbin/nginx -s reload
ExecStop=/bin/kill -s TERM $MAINPID
PrivateTmp=true

[Install]
WantedBy=multi-user.target

重新加载systemd 配置

systemctl daemon-reload

测试

ps -ef | grep nginx											# 查看nginx进程是否启动
systemctl start nginx    									# 启动nginx
ps -ef | grep nginx											# 查看nginx进程是否启动
systemctl restart nginx  									# 重启nginx
ps -ef | grep nginx											# 查看nginx进程是否启动
systemctl stop nginx     									# 停止nginx
ps -ef | grep nginx											# 查看nginx进程是否启动
netstat -tulnp | grep nginx									# 查看nginx进程监听的端口等信息
systemctl reload nginx   									# 重新加载nginx配置
netstat -tulnp | grep nginx									# 查看nginx进程监听的端口等信息
systemctl status nginx   									# 查看nginx运行状态

常用命令

参考文献

韩顺平必学必会技术栈-nginx
韩顺平必学必会技术栈-linux
https://www.cnblogs.com/dylaris/p/18418835
https://blog.csdn.net/A_lazy_bear/article/details/143405507
https://zhuanlan.zhihu.com/p/665057250
https://blog.csdn.net/weixin_45916098/article/details/143476189
posted @ 2025-01-07 14:42  不要划水  阅读(16)  评论(0编辑  收藏  举报