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

Copyright © 2088 飚骑盟主竞技场 - 竞速游戏活动中枢 All Rights Reserved.
友情链接