学习nginx,记录下笔记:
参考地址:https://blog.csdn.net/qq_42815754/article/details/82980326
1、下载nginx包,解压上传至服务器
[nginx官网下载地址](http://nginx.org/en/download.html)
2、进入nginx目录,执行./configure
2.1 查看目录
$ ll
2.2 进入nginx目录:
$ cd nginx-1.20.2
2.3 执行./configure
$ ./configure
报错:
百度了下,原因是缺少配置nginx安装所需的环境
2.3.1. 安装gcc
安装 nginx 需要先将官网下载的源码进行编译,编译依赖 gcc 环境。安装指令如下:
yum install gcc-c++
安装gcc又报错:
意思权限不够?又接着百度,执行sudo -s
$ sudo -s
sudo : 暂时切换到超级用户模式以执行超级用户权限,提示输入密码时该密码为当前用户的密码,而不是超级账户的密码。不过有时间限制,Ubuntu默认为一次时长15分钟。
sudo -i,加载用户变量,并跳转到目标用户home目录;
sudo -s,不加载用户变量,不跳转目录;
(参考地址:https://www.cnblogs.com/wzk-0000/p/11083008.html)
2.3.2. 安装PCRE pcre-devel
Nginx的Rewrite模块和HTTP核心模块会使用到PCRE正则表达式语法。这里需要安装两个安装包pcre和pcre-devel。第一个安装包提供编译版本的库,而第二个提供开发阶段的头文件和编译项目的源代码。安装指令如下:
yum install -y pcre pcre-devel
2.3.3.安装zlib
zlib库提供了开发人员的压缩算法,在Nginx的各种模块中需要使用gzip压缩。安装指令如下:
yum install -y zlib zlib-devel
2.3.4.安装Open SSL
nginx不仅支持 http协议,还支持 https(即在 ssl 协议上传输 http),如果使用了 https,需要安装 OpenSSL 库。安装指令如下:
yum install -y openssl openssl-devel
安装完所有的环境后,执行./configure,又报错了。。。又接着百度。。。
改用bash ./configure,执行成功。百度的原因是:configure文件不是一个可执行文件,前面加bash,会让文件变成可执行。
$ bash ./configure
3、编译安装nginx
进入/usr/local/nginx/sbin目录,输入./nginx即可启动nginx
$ ./nginx
启动后页面报错403
修改nginx.conf文件。
修改第一行,原来的:
#user nobody;
worker_processes 1;
修改后的:
user root;
worker_processes 1;
1)、修改nginx.conf文件,想从xftp下载到本地,发现打不开nginx文件夹,权限不够,通过下面命令行给user1用户权限:
chown -R user1:user1 ./nginx/
2)、直接通过vi nginx.conf,修改文件也可以
vi nginx.conf
页面输入ip,成功。
4、利用nginx进行接口转发
修改nginx.conf 配置文件的location:
location ^~ /testService {
proxy_set_header Host $host;
proxy_set_header X-Real-Ip $remote_addr;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_pass http://10.238.xxx.xxx:8087; #指向的ip
}
重启nginx:
[root@0001 nginx]# ./sbin/nginx -s reload
打开页面报错:404 not fond ,接口是403 not allowed 转发失败!
百度发现:nginx/conf 文件夹下还存在 nginx.conf.default,删除nginx.conf.default后发现正常访问了,至此成功!
5、其他
**
关闭nginx
./nginx -s quit 或者 ./nginx -s stop
重启nginx
./nginx -s reload
查看nginx进程
ps aux|grep nginx
设置nginx开机启动,只需在rc.local增加启动代码即可。
vim /etc/rc.local
然后在底部增加/usr/local/nginx/sbin/nginx