Linux 安装 Nginx
Linux 安装 Nginx
最新版参考文章:部署 LNMP 环境
一、安装 Nginx
1.1 安装 nginx 环境
执行 gcc-v 查看是否安装 gcc,如果没有安装就执行 yum install gcc-c++
执行 rpm -qa pcre 查看是否安装 pcre,如果没有安装就执行 yum install -y pcre pcre-devel
执行 yum list installed | grep zlib* 查看是否安装 zlib,如果没有安装就执行 yum install -y zlib-devel
执行 rpm -qa openssl 查看是否安装 openssl,如果没有安装就执行 yum install -y openssl openssl-devel
- rpm 包安装的,可以用 rpm -qa 看到,如果要查找某软件包是否安装,用 rpm -qa | grep “软件或者包的名字”
- 以 deb 包安装的,可以用 dpkg -l 看到。如果是查找指定软件包,用 dpkg -l | grep “软件或者包的名字”
- yum 方法安装的,可以用 yum list installed 查找,如果是查找指定包,用 yum list installed | grep “软件名或者包名”
上传压缩包到 /usr/local ,解压
[root@fanxin local]# tar -zxvf nginx-1.22.1.tar.gz
解压后进入目录
通过 config 命令配置参数,可以直接使用
./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
执行 make 命令
执行 make install 命令
注意:启动 nginx 之前,因为上边 configure 命令将临时文件目录指定为/var/temp/nginx/client 参考 --http-client-body-temp-path=/var/temp/nginx/client \
所以需要在/var/temp/nginx/client 下创建此目录 mkdir /var/temp/nginx/client -p
返回上一级目录,然后进入 nginx 目录,在进入 sbin 目录
启动 ngnix
./nginx
在浏览器输入服务器 ip,端口默认 80 不用输入,访问
1.2 nginx 退出与重加载
./nginx -s stop
非正常退出,相当于杀进程 ./nginx -s quit
正常退出 ./nginx -s reload
重新加载配置文件,就是加载上面的 Makefile
1.3 部署静态网页
首先进入到 /usr/local/nginx/conf
目录下,可以看到有一个 nginx.cnf
文件
修改这个文件:
vim nginx.conf
修改内容:
带有注释的配置文档:
worker_processes 1;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
server {
listen 80;
server_name localhost;
charset utf-8;
# 开启解压缩静态文件
gzip_static on;
location / {
root /home/ruoyi/projects/ruoyi-ui;
try_files $uri $uri/ /index.html;
index index.html index.htm;
}
location /prod-api/ {
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header REMOTE-HOST $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://localhost:8080/;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
#建议开启Gzip压缩
#在http配置中加入如下代码对全局的资源进行压缩,可以减少文件体积和加快网页访问速度。
# 开启gzip压缩
gzip on;
# 不压缩临界值,大于1K的才压缩,一般不用改
gzip_min_length 1k;
# 压缩缓冲区
gzip_buffers 16 64K;
# 压缩版本(默认1.1,前端如果是squid2.5请使用1.0)
gzip_http_version 1.1;
# 压缩级别,1-10,数字越大压缩的越好,时间也越长
gzip_comp_level 5;
# 进行压缩的文件类型
gzip_types text/plain application/x-javascript text/css application/xml application/javascript;
# 跟Squid等缓存服务有关,on的话会在Header里增加"Vary: Accept-Encoding"
gzip_vary on;
# IE6对Gzip不怎么友好,不给它Gzip了
gzip_disable "MSIE [1-6]\.";
}
进入到 /usr/lcoal/nginx/sbin
目录:
cd /usr/lcoal/nginx/sbin
每次电脑开机后重新启动 nginx 后都会报错:nginx: [error] open() “/usr/local/var/run/nginx.pid” failed (2: No such file or directory)
报错的原因就是没有 nginx 文件夹或没有 nginx.pid 文件,原因就是每次重新启动,系统都会自动删除文件,所以需要更改 pid 文件存储的位置
vim /usr/lcoal/nginx/conf/nginx.conf
打开 nginx.conf
配置文件,将 pid 前的#去掉,然后保存
在/usr/local/nginx 目录下创建 logs 目录:
mkdir /usr/local/nginx/logs
然后进入 sbin 目录:
cd /usr/lcoal/nginx/sbin
执行命令:
./nginx -c /usr/local/nginx/conf/nginx.conf
如果显示端口被占用就执行:
pkill nginx
再重新执行,执行过后进入 logs 目录下可以看到生成的 pid 文件
最后在 /usr/local/nginx/sbin
目录执行 ./nginx
命令启动 nginx 在浏览器输入 ip 访问即可:
cd /usr/local/nginx/sbin
./nginx