使用wsl(ubutun)安装nginx,服务在window本地连接
尚硅谷有全套教程,但是不是在wsl上安装
安装ngnix
先安装依赖
ubutun中没有yum,只有apt
1.安装pcre
pcre
需要有c++和c环境
sudo apt-get install build-essential
2.安装zlib
zlib
3.安装openssl
sudo apt-cache policy libssl-dev
Nginx常用指令
nginx在安装完后,在usr/local里
其中nginx的配置在配置文件里,nginx的启动在sbin里
配置文件需要在su root模式打开
sbin 有三个指令需要注意
- ./nginx 启动命令
- ./nginx -s reload 热插拔重启命令
- ./nginx -s stop停止命令
- nginx启动报错: [error] open() “/usr/local/nginx/logs/nginx.pid“ failed (2: No such file or directory)
需要通过配置文件进行加载
开放端口
wsl和window不直联,你nginx监听哪个端口,那么需要开发该端口
在wsl里开放端口或则关闭防火墙
wsl端口
在windows里要有映射
是否成功通过 telnet wls_ip:port进行测试,能进入说明端口开放成功
wls和本机的端口映射
netsh interface portproxy add v4tov4 listenaddress=0.0.0.0 protocol=tcp listenport=本地的端口 connectport=映射的端口 connectaddress=wls的ip
配置文件
upstream homeserver {
server 192.168.1.3:8888;
server 192.168.1.3:8889;
}
server {
listen 9911;
server_name 172.30.9.125;
location ~ /user/ {
proxy_pass http://homeserver;
proxy_connect_timeout 10;
}
}
负载均衡方式
1.轮询
默认轮询,配置好监听端口和映射的服务即可
server {
listen 9911;
server_name 172.30.9.125;
#模糊匹配,含有user则映射到该链接
location ~ /user/ {
proxy_pass http://127.0.0.1:8888;
proxy_connect_timeout 10;
}
}
2.权重
upstream homeserver {
#weight之间不能有空格,weight在1-100
server 192.168.1.3:8888 weight=1;
server 192.168.1.3:8889 weight=1;
}
server {
listen 9911;
server_name 172.30.9.125;
location ~ /user/ {
proxy_pass http://homeserver;
proxy_connect_timeout 10;
}
}
3.ip_hash
upstream homeserver {
#根据请求ip进行映射,每次打到确定的机器
ip_hash;
server 192.168.1.3:8888;
server 192.168.1.3:8889;
}
server {
listen 9911;
server_name 172.30.9.125;
location ~ /user/ {
proxy_pass http://homeserver;
proxy_connect_timeout 10;
}
}
4.fair
upstream homeserver {
#根据响应时间进行选择机器,但需要安装第三方
server 192.168.1.3:8888;
server 192.168.1.3:8889;
fair;
}
server {
listen 9911;
server_name 172.30.9.125;
location ~ /user/ {
proxy_pass http://homeserver;
proxy_connect_timeout 10;
}
}
nginx的高可用
需要两台机器上安装nginx,然后他们投放一个虚拟ip,客户端通过这个虚拟ip进行访问,并且两台机器上安装keep-alive并且编写脚本,如果某一台机器宕机后,keep-alive会将请求打到从节点上
nginx的原理
有一个master和多个worker进程,worker进程之间互相不影响,因此可以实现reload的热插拔