1.nginx是什么?
是一种流行的高性能 Web 服务器、反向代理服务器和电子邮件(IMAP/POP3)代理服务器。Nginx 最初由俄罗斯的软件工程师 Igor Sysoev 开发,于 2004 年首次发布,是一款开源软件,现在由 Nginx 公司进行支持和开发。
Nginx 最主要的特点是性能卓越和可扩展性强,能够支持高并发的 Web 服务和反向代理,以及负载均衡和动态内容缓存等高级功能。Nginx 还具有简单易用的配置语言和模块化的架构,使其非常适合用于大型 Web 应用程序的部署和管理。
在 Web 应用程序中,Nginx 通常用于反向代理、负载均衡、静态文件服务、动态内容缓存等方面,它可以将请求从客户端转发给后端的应用程序服务器,同时对响应进行缓存和加速,提高 Web 应用程序的性能和可靠性。此外,Nginx 还可以作为电子邮件代理服务器,提供 IMAP/POP3 协议支持。
由于其高性能、可靠性和灵活性,Nginx 已经成为了全球互联网公司和组织中最流行的 Web 服务器和反向代理服务器之一。
一般默认端口运行在80,在访问域名或者ip的时候不加上端口的话就是默认访问80端口
2.配置参数(所有配置完的参数都需要重启Nginx)
1.支持WebSocket通信
location / {
proxy_pass http://localhost:8001;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_http_version 1.1;
proxy_read_timeout 86400s;
}
参数介绍:
1.proxy_set_header Upgrade $http_upgrade;
将 Upgrade 头字段设置为 $http_upgrade 变量的值,用于表示要升级到 WebSocket 协议。
$http_upgrade 变量是客户端发来的 Upgrade 头字段的值,通常是 "websocket"。
2.proxy_set_header Connection "upgrade";
将 Connection 头字段设置为 "upgrade",表示要升级到 WebSocket 协议。
3.proxy_http_version 1.1;
设置使用 HTTP 1.1 协议与后端服务器通信。WebSocket 协议要求使用 HTTP 1.1 或更高版本的协议。
4.proxy_read_timeout 86400s;
设置代理服务器的读取超时时间,通常需要设置一个比较长的时间,以避免 WebSocket 连接因为超时而断开。
2.访问静态资源
location /static/ {
alias D:/Azsc/pythonPro/i-know-api/static/; # 设置文件存放目录
}
3.https配置
server {
listen 443 ssl;
server_name yourdomain.com;
ssl_certificate /path/to/yourdomain.crt;
ssl_certificate_key /path/to/yourdomain.key;
...
}
其中,listen 指令告诉 Nginx 在 HTTPS 端口 443 上监听连接请求。server_name 指令指定您的域名,ssl_certificate 指令指定 SSL/TLS 证书文件的路径,
ssl_certificate_key 指令指定 SSL/TLS 密钥文件的路径。这些指令还需要其他 SSL/TLS 相关的配置,例如 SSL 协议版本、加密套件等。您可以根据您的需求进行相应的配置。
4.基础反向代理配置
server {
listen 80;
server_name yourdomain.com;
location / {
proxy_pass http://localhost:8000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}