在linux下安装nginx,首先需要安装 gcc-c++编译器。然后安装nginx依赖的pcre和zlib包。最后安装nginx即可。
1.先安装gcc-c++编译器
yum install gcc-c++
yum install -y openssl openssl-devel
2.再安装pcre包
yum install -y pcre pcre-devel
3.再安装zlib包
yum install -y zlib zlib-devel
然后安装nginx
ps: 以下1 - 5 步骤都可以直接用yum 安装替代, yum install nginx
执行 nginx -v 查看安装成功否
1.在/usr/local/下创建文件nginx文件
mkdir /usr/local/nginx
2.在网上下nginx包上传至Linux(https://nginx.org/download/),也可以直接下载
wget https://nginx.org/download/nginx-1.19.9.tar.gz
3.解压并进入nginx目录
tar -zxvf nginx-1.19.9.tar.gz
cd nginx-1.19.9
4.使用nginx默认配置
./configure
5.然后 执行编译 安装命令,
make
然后
make install
ps: 以上步骤都可以直接用yum 安装替代, yum install nginx
执行 nginx -v 查看安装成功否
查找安装目录
whereis nginx
6.查看安装成功
在浏览器输入,服务器ip 回车,看是否有Nginx默认欢迎页面
7 修改nginx配置信息
查看nginx的配置文件
nginx -t
进入conf 目录下,eg: cd /opt/nginx/conf
修改配置文件,vi nginx.conf
这里是前后端分离项目,nginx负责前端VUE部署,以及后端的重定向
主要就是修改下边的内容,蓝色部分
这里端口是 9081
server {
listen 9081; #访问项目的端口号
server_name localhost; # 本服务器的IP或域名
location /hr { # /hr 要和前端代码中的.env.production文件 的VITE_PUBLIC_PATH 值一致如图一,去掉最后的 /
alies /opt/qanda/dist; # 放在服务器中的前端工程的目录
index index.html; # 前端页面
try_files $uri $uri/ /hr/index.html; # 记得前边写上一个 location 的目录
}
location /panda/ { # 反向代理到后端工程
proxy_pass http://10.31.249.162:8082; # 后端的工程地址,即部署后端jar包服务的地址和端口
}
eg:
server {
listen 9081;
server_name 10.100.18.11;
location /hr {
alias /opt/pq/dist/;
index index.html index.htm;
try_files $uri $uri/ /hr/index.html;
}
location /hr-schedule-api/ {
proxy_pass http://10.100.18.11:8082;
}
}
图1
修改完Nginx.conf 文件,记得重启服务,
cd sbin 目录下,
执行 nginx -s reload
7.进入sbin目录,可以看到有一个可执行文件nginx,直接./nginx执行就OK了。
./nginx
9.查看是否启动成功
ps -ef | grep nginx
Nginx常用命令:
关闭nginx进程
nginx -s stop
启动nginx进程
/usr/sbin/nginx yum安装的nginx也可以使用 servic nginx start
检查配置文件是否有误
nginx –t
重新加载配置文件
nginx –s reload
查看日志
tail -f filename 显示文件默认10行,刷新显示
例:tail -f /var/log/lvs-agent.log tail -f /etc/nginx/nginx.conf
查看文件后几行
tail -n 行数 文件名 例: tail -n 100 /var/log/aa.log
报错:
1. “nginx: [emerg] unknown directive “ “ in /etc/nginx/conf.d/XXX.conf:122”
该问题为配置conf文本从Windows中拷入Linux,空格编码不统一。
解决办法:把conf文件中的空格,换行都删掉,再手打一遍。