window下使用nginx
# 杀死所有nginx进程:
taskkill /IM nginx.exe /F
# 进入nginx目录
cd D:\develop\nginx-1.14.2
# 开始服务
start nginx
# 校验语法错误
nginx -t -c conf/nginx.conf
# 重新加载配置文件
nginx -s reload
# 退出
nginx -s quit
linux下使用nginx
linux下编译nginx可能会包xxx命令不存在,安装这些xxx包就可以使用了。
# 解压nginx到该目录
cd /u01/app/back/server/nginx-1.14.2
# 编译nginx
./configure --prefix=/u01/app/server/nginx-1.14.2
# 安装
make
make install
# 验证配置文件
/u01/app/server/nginx-1.14.2/sbin/nginx -t
# 启动nginx
/u01/app/server/nginx-1.14.2/sbin/nginx
# 备份配置
cd /u01/app/server/nginx-1.14.2/conf
cp -r nginx.conf nginx.conf.bak.original
# 修改配置后,重启nginx
/u01/app/server/nginx-1.14.2/sbin/nginx -s reload
# 查看nginx是否启动
ps -ef | grep nginx
如何配置nginx反向代理
- 找到nginx.conf下的server节点,listen里面填的是端口,这里端口我设置为9527。
- 假设我本地有这样一张图片D:/upload/images/a.jpg,我们就可以这样访问。
http://localhost:9527/images/a.jpg.
# 方式一
location /images/ {
root D:/upload;
}
# 方式二
location /images/ {
alias D:/upload/images/;
}
- 假设我另外一台服务器有图片D:/upload/images/a.jpg,我们就可以这样访问。
http://localhost:9527/images/a.jpg
# 本地nginx配置文件
location /images/ {
proxy_pass http://xxx.xxx.xxx.xxx:9260/images/;
}
# 远程nginx配置文件
location /images/ {
root D:/upload;
}
- 如果发现远程一直访问不了,可能是linux没有开放端口
# 开放端口
firewall-cmd --zone=public --add-port=远程服务器nginx的端口/tcp --permanent
# 重新加载防火墙
firewall-cmd --reload
如何设置负载均衡
用例子来演示如何进行负载均衡,准备3个应用,端口为9001,9002,9003,nginx需要做以下配置。
upstream test {
ip_hash; //负载均衡策略
server 127.0.0.1:9001;
server 127.0.0.1:9002;
server 127.0.0.1:9003;
}
server {
listen 9000;
server_name localhost;
location / {
root html;
index index.html index.htm;
proxy_pass http://test;
}
}
集中负载均衡策略
默认:轮询
按时间顺序分配到不同应用
ip_hash
根据每个访问者的ip决定访问哪一个应用,这种策略会固定ip始终访问某一个应用,这个策略可以保持session.
least_conn
访问连接数少的应用
fair
根据响应时间来分配
session丢失怎么办
location /projectB/ {
proxy_pass http://192.168.1.1/projectA/;
proxy_cookie_path /projectA /projectB;
}
如何跳转到另一个代理,并改变路径
访问 http://ip ->地址自动编程 http://ip/projectA
location / {
index projectA
}
location /projectA/ {
proxy_pass http://192.168.1.1/projectA/;
}