一、概述
nginx是一款自由的、开源的、高性能的HTTP服务器和反向代理服务器;同时也是一个IMAP、POP3、SMTP代理服务器;nginx可以作为一个HTTP服务器进行网站的发布处理,另外nginx可以作为反向代理进行负载均衡的实现。
二、正向代理
代理的是客户端
- 正向代理服务是由客户端设立的。
- 客户端了解代理服务器和目标服务器都是谁。
- 帮助咱们实现突破访问权限,提高访问的速度,对目标服务器隐藏客户端的ip地址。
三、反向代理
代理的是服务器
- 反向代理服务器是配置在服务端的。
- 客户端是不知道访问的到底是哪一台服务器。
- 达到负载均衡,并且可以隐藏服务器真正的ip地址。
四、负载均衡
负载均衡策略有两种:内置策略和扩展策略。内置策略:轮询、加权轮询、lp hash;
-
轮询:将客户端发起的请求,平均的分配给每一台服务器。 默认策略
-
权重:会将客户端的请求,根据服务器的权重值不同,分配不同的数量。
-
ip_hash:基于发起请求的客户端的ip地址不同,他始终会将请求发送到指定的服务器上。 根据ip地址计算出一个结果 根据这个结果找对应的服务器
五、下载
nginx: download 下载稳定版本。
wondows直接双击nginx.exe文件启动,访问连接localhost:80查看是否安装成功
六、nginx配置
nginx核心配置文件nginx.conf
nginx.conf配置文件的内容如下:
user nginx; # Nginx用户
worker_processes auto; # 工作进程:数目或者auto。根据硬件调整,通常等于CPU数量或者2倍于CPU
error_log /var/log/nginx/error.log warn;
pid /var/run/nginx.pid; # pid(进程标识符):存放路径。
# 以上统称为全局块,
# worker_processes他的数值越大,Nginx的并发能力就越强
# error_log 代表Nginx的错误日志存放的位置
events {
worker_connections 1024; #每个工作进程的最大连接数量。根据硬件调整,和前面工作进程配合起来用,尽量大,但是别把cpu跑到100%就行
}
# events块
# worker_connections他的数值越大,Nignx并发能力越强
http { # http块
include /etc/nginx/mime.types;
default_type application/octet-stream;
# include代表引入一个外部的文件 -> /mime.types中放着大量的媒体类型
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log /var/log/nginx/access.log main; # 日志
sendfile on;
#tcp_nopush on;
keepalive_timeout 65; # keepalive超时时间 单位是秒
#gzip on;
#include /etc/nginx/conf.d/*.conf; -> 引入了conf.d目录下的以.conf为结尾的配置文件
# 相当于引入外部的配置文件 咱们主要关注这个文件
include /etc/nginx/conf.d/*.conf;
}
七、SSL+域名实现HTTPS
1、申请SSL
下载SSL证书文件上传到linux,在需要使用时,只需在nginx配置文件中添加相关配置信息即可。步骤二有使用案例
2、nginx 配置文件
如果网站采用HTTPS协议,需配置ssl相关信息,其他可省略。
#聊天室
# map 用于websocket Secure
map $http_upgrade $connection_upgrade {
default upgrade;
'' close;
}
server {
listen 443 ssl;
server_name **.cn;
# server_name 后面为项目域名
ssl_certificate /usr/local/nginx/conf/sll_crt/shaolulustar.cn_bundle.pem;
ssl_certificate_key /usr/local/nginx/conf/sll_crt/shaolulustar.cn.key;
# ssl https 所需密钥密匙
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 5m;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;
#access_log /var/log/nginx/host.access.log main;
client_max_body_size 128m;
location /web-chat {
proxy_pass http://212.64.16.106:19000/web-chat;
proxy_read_timeout 36000s;
# 以下配置用于websocket Secure
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $connection_upgrade;
}
location / {
root html;
index index.html index.htm;
}
}
3、nginx开启SSL模块
在已安装的Nginx上开启SSL模块并配置https-腾讯云开发者社区-腾讯云 (tencent.com)
八、基本命令
命令需在/usr/local/nginx/sbin(默认安装路径)目录下运行。
1 ./nginx 启动
2 ./nginx -s stop 停止
3 ./nginx -s quit 安全退出
4 ./nginx -s reload 重新加载配置文件
5 ps aux|grep nginx 查看nginx进程
持续更新中。。。。。。
参考:
https://www.kuangstudy.com/bbs/1353634800149213186