nginx前端配置(新)

基础配置 

server {
    listen 80;
    server_name your-frontend-domain.com;

    # 根目录为前端网页文件所在目录
    root /path/to/your/frontend/files;

    # 默认文档(例如 index.html)
    index index.html;

    location / {
        try_files $uri $uri/ /index.html;   #try_files 指令用于处理前端路由,以便将所有请求重定向到 index.html,这对于单页应用程序(SPA)非常有用
    }

    location ~* \.(js|css|png|jpg|jpeg|gif|ico|svg)$ {
        expires 30d;    #配置静态文件的缓存时间
        add_header Cache-Control "public, max-age=2592000";在响应头中添加 Cache-Control 标头,告诉客户端浏览器可以缓存响应内容,最长时间为2592000秒
    }

    # 可以添加其他资源的处理规则,如字体文件等
}

关于add_header还可以添加其它标头

添加安全标头

add_header X-Content-Type-Options "nosniff";
add_header X-Frame-Options "SAMEORIGIN";
add_header X-XSS-Protection "1; mode=block";

如禁止浏览器嗅探内容类型(X-Content-Type-Options)以及点击劫持保护(X-Frame-Options)等

添加自定义标头

add_header X-My-Custom-Header "Hello, World!";

这会在响应头中添加一个自定义标头 X-My-Custom-Header 并将其值设置为 "Hello, World!"

不同客户端使用不同的项目文件

server {
    listen 80;
    server_name your-frontend-domain.com;

    location / {
        root /opt/static/pc;
        if ($http_user_agent ~* '(mobile|android|iphone|ipad|phone)') {   #判断变量中的客户端参数是否是移动端,是的话使用以下静态资源路径
           root /opt/static/mobile;
        }
        index index.html;
        try_files $uri $uri/ /index.html;   #try_files 指令用于处理前端路由,以便将所有请求重定向到 index.html,这对于单页应用程序(SPA)非常有用
    }

}

 ssl配置与重定向配置

server {
    listen 80;
    server_name your-website.com;
    return 301 https://$server_name$request_uri;
}
server {
  listen                      443 ssl;
  server_name                 your-website.com;
  ssl_certificate             /etc/nginx/ssl/your-website.crt;
  ssl_certificate_key         /etc/nginx/ssl/your-website.key;
  ssl_session_timeout         10m;
  ssl_ciphers                 ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384;
  ssl_protocols               TLSv1 TLSv1.1 TLSv1.2;
  ssl_prefer_server_ciphers   on;   #如果启用此选项,Nginx会优先使用服务器端支持的密码套件,而不是客户端提供的首选密码套件。这通常是安全的,因为它强制使用服务器配置中的密码套件,以最大程度地确保安全性。但是,这可能会导致某些老旧客户端无法连接,因为它们的密码套件不被服务器所支持
  ssl_session_timeout 1d;    #选配,此配置定义了SSL会话超时的时间。在示例中,它设置为1天,这意味着SSL会话将在1天后过期。过期的会话可能需要重新建立,以提高安全性
  ssl_session_cache shared:SSL:10m;   #选配,这个配置定义了用于存储SSL会话信息的缓存大小和存储位置。在示例中,它使用了共享内存缓存(shared memory cache)来存储SSL会话。这有助于加快SSL握手的速度,因为会话数据可以在客户端和服务器之间重用
  ssl_session_tickets off;   #选配,这个配置用于控制是否启用SSL会话票据(session tickets)。在示例中,它被设置为 off,表示禁用SSL会话票据。启用会话票据允许客户端和服务器之间的会话信息跨多个SSL连接重用,以提高性能
  add_header Strict-Transport-Security "max-age=31536000; includeSubdomains" always;  #选配,使用HTTP Strict Transport Security 头增加了安全性,强制客户端在一年内使用HTTPS与您的网站通信
    
  location / {
    root                    /project/xxx;
    index                   index.html index.htm index.md;
    try_files               $uri $uri/ /index.html;
  }
}

静态文件压缩


server {
    # 开启gzip 压缩
    gzip on;
    # 设置gzip所需的http协议最低版本 (HTTP/1.1, HTTP/1.0)
    gzip_http_version 1.1;
    # 设置压缩级别,压缩级别越高压缩时间越长  (1-9)
    gzip_comp_level 4;
    # 设置压缩的最小字节数, 页面Content-Length获取
    gzip_min_length 1000;
    # 设置压缩文件的类型  (text/html)
    gzip_types text/plain application/javascript text/css;
}

### Linux 环境下 Nginx 作为前端服务器的配置方法 #### 配置概述 Nginx 是一种高性能HTTP和反向代理web服务器,在Linux环境中常被用作前端服务器来处理静态资源并转发动态请求给后端应用服务器。为了实现这一功能,需要对`nginx.conf`文件中的不同区块进行适当配置。 #### 安装与基本设置 在开始具体配置之前,确保已经按照官方指南完成了Nginx的基础安装[^1]。这通常涉及创建必要的目录结构、下载软件包并通过编译或者预构建二进制文件完成部署过程[^3]。 #### 开机自启设定 为了让Nginx能够在系统启动时自动运行,可以通过编辑`/etc/rc.local`文件并在其中加入启动命令来达到目的: ```bash /usr/local/nginx/sbin/nginx ``` 此操作使得每次机器重启之后无需手动开启服务即可正常工作。 #### 修改主配置文件 对于想要调整监听端口号或是更改默认主页的情况,则需定位至Nginx的主要配置文档位置,并利用文本编辑器打开它来进行相应改动: ```bash vi /usr/local/nginx/conf/nginx.conf ``` 在此处可以定义多个server块以适应不同的应用场景需求[^2]。 #### 关键配置项解析 针对Nginx作为前端服务器的角色,以下是几个重要的配置参数说明: - **全局块**:这部分位于整个配置文件开头直到遇到第一个事件模块(event)为止。这里可指定诸如用户权限、子进程数量等基础属性[^5]。 - **Events块**:用于控制异步连接的数量及其模式(epoll, kqueue)。这对于高并发场景下的性能优化至关重要。 - **Http域**:这是最为复杂的部分之一,包含了mime-type映射表、日志格式化规则以及最重要的——location匹配规则。后者决定了如何路由来自客户端的不同类型的请求到相应的处理器上。 #### 实际案例演示 假设现在有一个简单的Web应用程序托管于本地IP地址 `192.168.1.100` 上面,并希望将其暴露在外网可通过域名访问的形式呈现出来。那么可以在`http{}`内部添加如下所示的一个的Server实例: ```nginx server { listen 80; server_name example.com; location / { proxy_pass http://192.168.1.100/; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; } } ``` 上述代码片段实现了当接收到目标主机名为example.com且协议版本为HTTP/1.x的GET请求时,将会把这些流量重定向发送给局域网内的另一台计算机上的特定服务去响应[^4]。 #### 测试与验证 最后一步就是确认所有变更都已生效并且没有任何错误存在。为此,应当先尝试重加载配置而不中断现有连接;如果一切顺利的话再考虑完全重启守护程序以便彻底刷状态。 ```bash ./nginx -s reload ``` 通过执行以上步骤就可以成功搭建起基于Linux平台之上稳定可靠的Nginx前端架构了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值