Nginx是一款开源的高性能Web服务器,也可以用来作为反向代理、负载均衡器和HTTP缓存等。
以下是简单的Nginx静态文件服务器配置示例:
server {
listen 80;
server_name localhost;
# 配置默认请求的首页
index index.html index.htm;
# 设置静态文件根目录
root /var/www/;
# 添加缓存控制
location ~* \.(jpg|jpeg|gif|png|ico|css|js)$ {
expires 1y;
add_header Cache-Control "public";
}
# 防止目录遍历漏洞
location ~ /\. {
deny all;
}
}
这个配置文件假定你的网站根目录为 /var/www/
。你需要将 server_name
替换为你实际的域名,以及调整其他设置来符合你的需求。也可以根据需要添加其他的 location
块或调整缓存控制设置。
以下是一个简单的 Nginx SSL 终端代理的配置示例:
server {
#SSL 访问端口号为 443
listen 443 ssl;
#填写绑定证书的域名
server_name an1234.top;
#证书文件名称
ssl_certificate an1234.top_bundle.crt;
#私钥文件名称
ssl_certificate_key an1234.top.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 / {
#网站主页路径。此路径仅供参考,具体请您按照实际目录操作。
#例如,您的网站运行目录在/etc/www下,则填写/etc/www。
root /var/www/;
index index.html index.htm;
}
location /api/ {
# 请求传参数的大小上限
client_max_body_size 10m;
proxy_pass https://an1234.top:1234/api/;
# nginx跟后端服务器连接超时时间
proxy_connect_timeout 3000;
# 后端服务器数据回传超时时间
proxy_send_timeout 3000;
# 连接成功后,后端服务器响应超时时间
proxy_read_timeout 3000;
}
# 请求错误展示错误画面
error_page 404 /404;
# redirect server error pages to the static page /50x.html
#
# error_page 500 502 503 504 /500;
}
在这个示例中,我们假定你的证书与密钥文件在 \nginx-1.20.2\conf
目录下,并将其命名为 an1234.top_bundle.crt
和 an1234.top.key
。你需要将 server_name
替换为你实际的域名,并将 proxy_pass
设置为你的后端服务器的地址。
此外,proxy_ssl_server_name
选项也很重要。它告诉 Nginx 在建立 SSL 连接时使用代理请求中的目标主机名,以防止后端服务器配置中的错误或问题。你可以根据需要添加其他的 SSL 相关设置或调整代理相关的设置。
可以将请求转发到多个Web服务器或应用服务器,进行负载均衡和高可用性的实现,同时可以对请求进行安全策略控制和缓存处理。
在 Nginx 中使用 proxy_pass 配置实现反向代理,例如:
server {
listen 80;
server_name example.com;
location / {
proxy_pass http://127.0.0.1:8080;
}
}
这个配置将会把请求转发到 127.0.0.1:8080 这个地址上。
其中,location 指定了匹配的 URL,对应的是 /
根路径,也可以设置其他的路径,例如 /api
等等。
你也可以在 proxy_pass 后面添加一些参数,用于控制代理行为,例如:
server {
listen 80;
server_name localhost;
location / {
proxy_pass http://127.0.0.1:8080;
# 设置代理头信息
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_set_header X-NginX-Proxy true;
# 设置代理的连接超时和读取超时
proxy_connect_timeout 60;
proxy_read_timeout 60;
# 禁止缓存代理内容
proxy_buffering off;
proxy_cache off;
}
}
nginx是一款高性能、多功能的Web服务器和反向代理服务器。它也是一种可用于负载均衡的工具。Nginx可以使用不同的算法来将客户端请求分发到不同的后端服务器上,以实现负载均衡的目的。
以下是常见的nginx负载均衡方法:
这是一些基本的负载均衡方法,nginx还提供了更高级的负载均衡功能,如动态服务器组成和自适应负载平衡等。
nginx可以通过配置文件来实现负载均衡。以下是一个简单的nginx负载均衡配置实例:
在nginx.conf文件中增加以下配置:
http {
upstream myapp {
server backend1.example.com weight=3;
server backend2.example.com;
server backend3.example.com;
}
server {
listen 80;
location / {
proxy_pass http://myapp;
}
}
}
解释如下:
upstream myapp
:定义一个名称为myapp的服务器集群,包含多个后端服务器。server backend1.example.com weight=3
:定义一个名为backend1.example.com的后端服务器,并设置它的权重为3。server backend2.example.com
:定义一个名为backend2.example.com的后端服务器,默认权重为1。server backend3.example.com
:定义一个名为backend3.example.com的后端服务器,默认权重为1。location /
:定义请求的URL地址,例如http://an1234.top/
,其中“/”表示根目录。proxy_pass http://myapp
:将请求转发给myapp服务器集群,使用默认的负载均衡算法(轮询)。在上面的配置文件中,我们定义了一个服务器集群myapp,包含三个后端服务器backend1、backend2和backend3,其中backend1的权重为3,其他两个服务器的权重为1,所以backend1将获得更多的流量。
通过这个简单的配置,我们可以实现nginx的负载均衡功能。nginx还提供了其他高级的负载均衡功能,可以根据实际需求进行调整和优化。