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