文章目录

安装Nginx配置单独的配置:https配置

nginx为什么可以处理高并发

安装Nginx

sudo yum update

sudo yum install epel-release

sudo yum install nginx

sudo systemctl start nginx

安装好后可以打开自己的域名 看一下默认的页面

配置

具体参考Link 位置

/etc/nginx/nginx.conf

nginx默认文件的结构:

... #全局块

events { #events块

...

}

http #http块

{

... #http全局块

server #server块

{

... #server全局块

location [PATTERN] #location块 #请求的url过滤,正则匹配,~为区分大小写,~*为不区分大小写。

{

#root path; #根目录

#index vv.txt; #设置默认页

proxy_pass http://mysvr; #请求转向mysvr 定义的服务器列表

deny 127.0.0.1; #拒绝的ip

allow 172.18.5.54; #允许的ip

}

location [PATTERN]

{

...

}

}

server

{

...

}

... #http全局块

}

1、全局块:配置影响nginx全局的指令。一般有运行nginx服务器的用户组,nginx进程pid存放路径,日志存放路径,配置文件引入,允许生成worker process数等。 2、events块:配置影响nginx服务器或与用户的网络连接。有每个进程的最大连接数,选取哪种事件驱动模型处理连接请求,是否允许同时接受多个网路连接,开启多个网络连接序列化等。 3、http块:可以嵌套多个server,配置代理,缓存,日志定义等绝大多数功能和第三方模块的配置。如文件引入,mime-type定义,日志自定义,是否使用sendfile传输文件,连接超时时间,单连接请求数等。 4、server块:配置虚拟主机的相关参数,一个http中可以有多个server。 5、location块:配置请求的路由,以及各种页面的处理情况。

默认监听的是80端口 单独服务的配置可以写新的文件 比如,把配置文件拆分开来,在/etc/nginx/conf.d/ 文件建立对应的域名配置文件,比如 /etc/nginx/conf.d/123.com.conf 然后在这个nginx.conf中进行引用 在原来文件/etc/nginx/nginx.conf 的http 块下加一句话就可以了:

include /etc/nginx/conf.d/*.conf;

单独的配置:

server {

listen 8080; # 监听的端口

server_name #你的域名 可以有多个;

location / {

proxy_pass http://127.0.0.1:9028; # 转发的地址 比如这是我网站VUE前端的地址

root /home/daily_5_web/前端项目地址; #根目录

index index.html index.htm; #设置默认页

}

配置好后重启

sudo nginx -t

If there are no errors, restart Nginx with:

sudo systemctl restart nginx

现在就可以通过你配置的域名:8080来访问到我的前端界面了 xxx.cn:8080

https配置

需要监听443 需要已经准备好SSL证书(有免费的,可以申请,申请后得到文件,证书一般是pem文件和key文件 将下载好的证书上上传到服务器 比如腾讯云的可以参考这个连接

server {

#SSL 默认访问端口号为 443

listen 443 ssl;

#请填写绑定证书的域名

server_name 域名 ;

#请填写证书文件的相对路径或绝对路径

ssl_certificate /etc/nginx/xxx/xxx.crt;

#请填写私钥文件的相对路径或绝对路径

ssl_certificate_key /etc/nginx/xxx.key;

ssl_session_timeout 5m;

#请按照以下协议配置

ssl_protocols TLSv1.2 TLSv1.3;

#请按照以下套件配置,配置加密套件,写法遵循 openssl 标准。

ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;

ssl_prefer_server_ciphers on;

location / {

#网站主页路径。此路径仅供参考,具体请您按照实际目录操作。

#例如,您的网站主页在 Nginx 服务器的 /etc/www 目录下,则请修改 root 后面的 html 为 /etc/www。

proxy_pass http://127.0.0.1:5000; # 这是我后端的地址和端口号

root /home/xxx/backend; # 后端服务根目录

}

# 静态文件配置

location /fonts/SourceHanSansCN.ttf {

add_header Access-Control-Allow-Origin *;

alias /home/daily_5_web/backend/project/services/SourceHanSansCN-Medium.ttf;

expires 1h;

}

}

修改完同样重启Nginx 用https+域名来访问网站 看是否成功 比如: https://你的域名.cn/xcx/接口

nginx为什么可以处理高并发

Nginx实现支持并发请求的关键在于其事件驱动的架构和高效的处理机制。下面以一个用户访问网站的例子来解释Nginx如何支持并发请求:

用户发起HTTP请求:假设一个用户在浏览器中输入网站的URL并按下回车,发送HTTP请求到服务器。

Nginx接收请求:Nginx作为前端服务器监听在特定端口上,接收到用户的HTTP请求。

并发连接处理:Nginx使用事件驱动的架构,采用异步非阻塞的方式处理并发连接。它通过使用多个工作进程或线程来处理多个连接,每个连接都是一个独立的事件。

请求路由:Nginx根据预先配置的路由规则,将接收到的请求路由到适当的后端服务器。这可以是本地的Gunicorn服务器或其他远程服务器。

反向代理:作为反向代理服务器,Nginx可以在后端服务器和客户端之间进行代理。它将用户的请求转发到后端服务器,并将响应返回给用户,实现了负载均衡和高可用性。

静态文件服务:如果请求的是静态文件(如HTML、CSS、JavaScript、图像等),Nginx可以直接提供这些文件,而无需将请求转发到后端服务器。它可以通过配置缓存和文件压缩来提高静态文件的传输效率。

并发请求处理:Nginx的事件驱动机制允许同时处理多个请求。它使用高效的I/O多路复用技术(如epoll、kqueue等)来监听多个连接的状态,并在连接有数据可读或可写时触发相应的事件。

高性能处理:Nginx使用事件驱动和非阻塞I/O模型,在处理请求时能够高效利用服务器资源。它避免了每个连接都创建一个新的线程或进程的开销,相比传统的多线程或多进程模型,更节省资源并提供更高的并发能力。

通过上述过程,Nginx能够有效地支持并发请求。它的事件驱动架构和非阻塞I/O机制使得它能够处理大量的并发连接,同时提供高性能和可靠性的服务。无论是静态文件服务还是反向代理转发,Nginx都能够有效地处理用户的请求,并将响应迅速返回给用户,实现快速的网站访问体验。

精彩链接

评论可见,请评论后查看内容,谢谢!!!
 您阅读本篇文章共花了: