nginx概念:高性能的http和反向代理web服务器,可实现负载均衡、跨域请求
正向代理:比如vpn、上网梯子,代理服务器,帮你请求别人的服务器,代理客户端的
反向代理:代理服务端的,客户只用请求一个域名,后面反向代理会自动寻找对应的服务器
负载均衡:有两种策略(1)内置策略(2)拓展策略
- 内置策略:轮询、加权轮询
- 拓展策略:就是自定义的
iphash:对客户端请求的ip进行hash操作,然后根据hash结果将同一个客户端的ip发给同一台服务器处理,可以解决session不共享的问题(不建议使用)
动静分离:nginx可以存静态的,动态的网页可以放到web服务器
一、下载
1、window:直接下载下压缩包,点击exe即可使用 nginx: download
2、linux:同样是这个链接下载安装包
因为我安装的nginx在wsl-ubuntu上,所以这个过程记录一下
(1)下载并解压:wget https://nginx.org/download/nginx-1.18.0.tar.gz
(2)进入目录内,执行./configure(这里可能会报错,说执行不了,因为没有gcc)
(2.1)更新阿里镜像的dns解析(可能阿里云的镜像还是读不到):sudo vi /etc/resolv.conf
# 添加阿里镜像的dns解析
nameserver 223.6.6.6
nameserver 223.5.5.5
# 更新一下源
sudo apt-get update
(2.2)安装依赖:
sudo apt-get install build-essential
sudo apt-get install libtool
sudo apt-get update
sudo apt-get install libpcre3 libpcre3-dev
sudo apt-get install zlib1g-dev
sudo apt-get install openssl
(3)去执行步骤2的操作
(4)执行make 再执行make install
(5)结束后就可以在/usr/local/nginx/sbin下启动nginx了,但是要sudo启动
(6)ln -s /usr/local/nginx/sbin/nginx /usr/bin/nginx:可以创建一个软链接,就可以直接使用nginx执行了
二、常用的命令
- nginx -s reload: 重新加载配置并启动
- nginx -s reopen: 重启
- nginx -s stop: 停止
- nginx -s quit: 有序退出
三、配置
#user nobody;
worker_processes 1; # 进程数,CPU几核,就设置几个
events {
worker_connections 1024; # 一个work最大并发连接数
}
http {
# 这里配置反向的代理
server {
listen 80;
server_name localhost; # 域名
# 代理
# 当用户访问127.0.0.1时,会自动的转到5000端口
location / {
proxy_pass http://127.0.0.1:5000;
}
}
}
NGINX 从入门到精通,学会这些就够了 | Laravel China 社区
后续出现更厉害的操作,再写入这里
预留一个问题: 为什么使用react启动项目后在3000端口,使用axios请求http://localhost的接口会出现跨域问题,在location的配置中,写入允许所有头访问,还是无效,一样跨域?
(1)nginx的配置文件的路径在 /usr/local/nginx/conf