什么是Nginx
Nginx (engine x) 是一个高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务。Nginx是由伊戈尔·赛索耶夫为俄罗斯访问量第二的Rambler.ru站点(俄文:Рамблер)开发的,第一个公开版本0.1.0发布于2004年10月4日。
其将源代码以类BSD许可证的形式发布,因它的稳定性、丰富的功能集、示例配置文件和低系统资源的消耗而闻名。2011年6月1日,nginx 1.0.4发布。
Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,在BSD-like 协议下发行。其特点是占有内存少,并发能力强,事实上nginx的并发能力在同类型的网页服务器中表现较好,中国大陆使用nginx网站用户有:百度、京东、新浪、网易、腾讯、淘宝等。支持50000并发。
什么是正向代理 反向代理
正向代理:代理客户端
如访问外网 挂VPN
反向代理:代理服务端
负载均衡
1.轮询
2.加权轮询
3.iphash 如固定IP 访问固定服务器
动静分离
为了加快网站的解析速度,可以把动态页面和静态页面由不同的服务器来解析,加快解析速度。降低原来单个服务器的压力。
安装Nginx
1. 查看是否存在nginx
whereis nginx
2.不存在就安装并启动
tar -zxvf nginx-1.18.0.tar.gz
cd nginx-1.18.0
./configure
make
make install
cd /usr/local//nginx/sbin # 利用whereis nginx 找到路径 进入sbin
./nginx # 启动nginx
3.访问nginx是否成功
访问不成功?
防火墙配置(开放端口号)
查看防火墙开放的端口号
firewall-cmd --list-ports
设置开放的端口号
firewall-cmd --add-service=http --permanent
firewall-cmd --add-port=80/tcp --permanent
重启防火墙
firewall-cmd -reload 或者 systemctl restart firewalld service
常用指令
1. cd /usr/local//nginx/sbin
2. ./nginx #启动
3. ./nginx -s stop #停止
4. ./nginx -s quit #安全退出
5. ./nginx -s reload #重新加载配置文件
6. ps aux|grep nginx 查看nginx进程
实战演示
nginx配置说明
全局模块:
worker_processes 1;
这是 Nginx 服务器并发处理服务的关键配置,worker_processes 值越大,可以支持的并发处理量也越多,但是会受到硬件、软件等设备的制约。
events模块
events {
worker_connections 1024;
}
events 块涉及的指令主要影响 Nginx 服务器与用户的网络连接,常用的设置包括是否开启对多 work process 下的网络连接进行序列化,是否允许同时接收多个网络连接,选取哪种事件驱动模型来处理连接请求,每个 word process 可以同时支持的最大连接数等。
上述例子就表示每个 work process 支持的最大连接数为 1024。
http块
server {
listen 80;
server_name localhost;
#charset koi8-r;
#access_log logs/host.access.log main;
upstream xmsupstream:{ #########配置负载均衡
server 192.168.101.3:8080 weight=2; ## weight:权重
server 192.168.101.3:8090 weight=1;
}
location / {
root html;
index index.html index.htm;
proxy_pass http://192.168.101.3; ###配置反向代理
}
#error_page 404 /404.html;
# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
# proxy the PHP scripts to Apache listening on 127.0.0.1:80
#
#location ~ \.php$ {
# proxy_pass http://127.0.0.1;
#}
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
#location ~ \.php$ {
# root html;
# fastcgi_pass 127.0.0.1:9000;
# fastcgi_index index.php;
# fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
# include fastcgi_params;
#}
# deny access to .htaccess files, if Apache's document root
# concurs with nginx's one
#
#location ~ /\.ht {
# deny all;
#}
}
详细可看狂神笔记:https://www.kuangstudy.com/bbs/1374942741347201025