Nginx如何配置前端后端服务

Nginx配置前端后端服务

在配置Nginx以支持前端和后端服务时,需要了解Nginx的基本配置语法和结构,并依次设置Nginx作为前端静态资源服务器和反向代理服务器以连接后端应用。

以下是详细的配置步骤:

一、Nginx基本配置语法和结构

Nginx的配置文件通常位于/etc/nginx/nginx.conf,并且可以在/etc/nginx/conf.d/目录下找到其他的站点配置文件。

Nginx的配置主要由http、server和location块组成。

二、配置Nginx作为前端静态资源服务器

假设前端静态资源(如HTML、CSS、JavaScript文件)存放在/var/www/frontend目录下,可以这样配置Nginx:

server {
    listen 80;
    server_name your_domain.com;  # 替换为域名或IP地址
 
    location / {
        root /var/www/frontend;
        index index.html;
        try_files $uri $uri/ /index.html;  # 确保刷新页面时返回index.html
    }
}

三、配置Nginx作为反向代理服务器连接后端应用

假设后端应用运行在http://localhost:3000,可以通过配置Nginx的location块来将特定路径的请求转发到后端应用:

server {
    listen 80;
    server_name your_domain.com;  # 替换为域名或IP地址
 
    location / {
        root /var/www/frontend;
        index index.html;
        try_files $uri $uri/ /index.html;  # 确保刷新页面时返回index.html
    }
 
    location /api/ {  # 假设后端API的路径以/api/开头
        proxy_pass http://localhost:3000/;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}

四、测试和优化Nginx配置

测试Nginx配置:在修改Nginx配置后,需要测试配置文件的正确性并重启Nginx服务。

sudo nginx -t  # 测试配置文件
sudo systemctl restart nginx  # 重启Nginx服务

优化Nginx配置:根据应用需求,可能需要进一步优化Nginx配置,例如设置缓存、限制请求速率、启用HTTPS等。

  • 设置缓存:为静态资源设置缓存可以减少服务器的负载并提高响应速度。
  • 限制请求速率:使用limit_req_zone和limit_req指令可以限制请求的速率,防止恶意攻击或过载。
  • 启用HTTPS:通过配置SSL/TLS证书来启用HTTPS,保护数据传输的安全性。

五、示例配置(基础调优)

以下是一个包含基础调优参数的Nginx配置示例:

user root;
worker_processes auto;  # 自动获取CPU线程数,并启用相对应的worker进程
 
error_log /var/log/nginx/error.log warn;
pid /var/run/nginx.pid;
 
events {
    worker_connections 65535;  # 设置一个worker进程可以同时打开的链接数
    multi_accept on;  # 让nginx收到一个新连接通知后接受尽可能多的连接
}
 
http {
    include /etc/nginx/mime.types;
    default_type application/octet-stream;
 
    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;
    tcp_nodelay on;
 
    keepalive_timeout 60s;
 
    client_max_body_size 20m;  # 限制客户端文件上传下载大小限制
 
    gzip on;
    gzip_buffers 16 8k;
    gzip_comp_level 6;
    gzip_disable 'MSIE [1-6].';
    gzip_http_version 1.0;
    gzip_min_length 1k;
    gzip_types text/plain application/x-javascript text/css application/xml text/javascript application/x-httpd-php image/jpeg image/gif image/png image/tiff image/x-ms-bmp;
    gzip_vary off;
 
    # 关闭页面中的nginx版本数字信息,提高安全性
    server_tokens off;
 
    include /etc/nginx/conf.d/*.conf;
 
    server {
        listen 80;
        server_name www.example.com;  # 替换为域名
 
        # http 跳转 https
        rewrite ^(.*) https://$server_name$1 permanent;
    }
 
    # 其他server配置...
}

请注意:

以上配置仅供参考,并可能需要根据具体需求进行调整。

在配置Nginx时,务必确保配置文件语法正确,并测试配置以确保其按预期工作。

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持恩蓝小号。

原创文章,作者:JNQGD,如若转载,请注明出处:http://www.wangzhanshi.com/n/19265.html

(0)
JNQGD的头像JNQGD
上一篇 2025年2月24日 07:37:42
下一篇 2025年2月24日 07:37:46

相关推荐

  • 部署Kibana及nginx代理访问环境方式

    Kibana及nginx代理访问环境部署(访问权限控制)。 在elk-node03:192.168.150.17节点机上操作: 包名:kibana-7.2.0-x86_64.rpm…

    nginx 2024年12月17日
  • Nginx使用mirror指令实现接口复制

    在Nginx中,使用mirro指令可以方便地实现接口请求的复制。这个功能非常适合用于流量监控、数据收集或负载均衡。以下是一个具体示例,展示如何配置Nginx以实现接口请求的镜像。 …

    nginx 2024年12月17日
  • Nginx实现TCP和UDP代理的方法步骤

    前言 Nginx是一个高性能的HTTP和反向代理服务器,同时也支持TCP/UDP代理。在1.9.13版本后,Nginx已经支持端口转发,包括TCP和UDP协议。Nginx的TCP/…

    nginx 2025年2月24日
  • Nginx实现动态内容缓存的示例代码

    在 Nginx 中实现动态内容的缓存可以显著提高性能,减少后端服务器的负载。以下是如何在 Nginx 中配置动态内容缓存的详细步骤和示例配置。 1. 安装 Nginx 确保你已经安…

    nginx 2025年2月24日
  • tomcat在nginx中的配置方式

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 一、下载安装tomcat 将下载的tomcat压缩包,通过ssh工具传输到linux的目录/usr/src/目录下…

    2025年2月24日
  • nginx日志切割定时任务的实现

    nginx进行日志切割的好处: 便于管理和查询:随着时间的推移,Nginx 日志文件可能会变得非常大。将其切割成较小的、按时间段划分的文件,使得在需要查找特定时间段的日志时更加方便…

    2024年12月17日
  • Nginx 防止目录遍历的方法实现

    引言 目录遍历攻击(Directory Traversal Attack),也被称为路径穿越攻击,是一种常见的 Web 安全漏洞,攻击者通过篡改 URL 请求中的路径,试图访问 W…

    nginx 2025年2月24日
  • 解决nginx:[emerg] getpwnam(“nginx“)failed报错问题

    nginx:[emerg] getpwnam(“nginx“)failed报错 在编译安装nginx时,启动nginx服务报如下错误: nginx: [em…

    2025年2月24日
  • Nginx搭建高可用的实现

    1、高可用概念 一台nginx宕机了,还可以切换到另一台nginx上继续工作,让用户继续访问后台服务器 2、准备工作 (1)需要两台 nginx 服务器 (2)需要 ke…

    2024年12月17日
  • Nginx中配置HTTP2协议的方法

    在当今互联网的高速发展时代,网站的性能和用户体验变得至关重要。就好比在一场激烈的赛车比赛中,车辆的性能和配置决定了谁能率先冲过终点线。而在网站的世界里,HTTP2 协议就像是给网站…

    nginx 2024年12月17日

发表回复

登录后才能评论