Nginx的一些常用配置汇总

Nginx的一些常用配置汇总

Nginx是一个高性能的HTTP和反向代理服务器。在使用Nginx的过程中,下面这些常用的配置是必不可少的。

1. 为域名配置SSL证书

如果您的网站需要使用SSL证书来保护数据传输的安全,您需要为您的域名配置SSL证书。Nginx支持使用Let's Encrypt等免费的SSL证书。您可以通过以下步骤配置您的SSL证书。

首先,您需要安装certbot:

sudo apt-get update
sudo apt-get install certbot

安装完成后,您可以使用以下命令配置证书:

sudo certbot certonly --nginx -d example.com -d www.example.com

其中,example.com是您的域名。这个命令会自动检测您的Nginx配置,并为您的域名生成SSL证书。

2. 为静态资源添加缓存

如果您的网站包含大量的静态资源,如图片、CSS和JavaScript文件,为这些资源添加缓存可以显著提高网站的性能。可以使用以下配置为这些资源添加缓存:

location ~* \.(css|js|png|jpg|jpeg|gif|ico)$ {
    expires 30d;
    add_header Cache-Control "public, no-transform";
}

这个配置会将静态资源的过期时间设置为30天,并且添加了缓存控制头。这将告诉浏览器在30天内缓存这些资源并从缓存中加载。

3. 示例配置1

下面是一个示例的Nginx配置:

user nginx;
worker_processes auto;
pid /run/nginx.pid;

events {
    worker_connections 1024;
}

http {
    include /etc/nginx/mime.types;
    default_type application/octet-stream;

    sendfile on;

    gzip on;
    gzip_types text/plain text/xml application/xml application/json;

    server {
        listen 80;
        server_name example.com www.example.com;

        return 301 https://$server_name$request_uri;
    }

    server {
        listen 443 ssl http2;
        server_name example.com www.example.com;

        ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
        ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;

        location / {
            proxy_pass http://127.0.0.1:8000;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
        }

        location /static/ {
            alias /var/www/example/static/;
            expires 30d;
            add_header Cache-Control "public, no-transform";
        }
    }
}

这个配置文件包含了一个监听80端口的HTTP服务,以及一个监听443端口的HTTPS服务。HTTP服务会将请求重定向到HTTPS服务。HTTPS服务会将所有动态请求通过反向代理转发到8000端口,并将所有以/static/开头的请求直接映射到本地文件系统中的静态资源,其中静态资源的缓存时间为30天。

4. 示例配置2

下面是另一个示例的Nginx配置:

user nginx;
worker_processes auto;
pid /run/nginx.pid;

events {
    worker_connections 1024;
}

http {
    include /etc/nginx/mime.types;
    default_type application/octet-stream;

    sendfile on;

    gzip on;
    gzip_types text/plain text/xml application/xml application/json;

    server {
        listen 80;
        server_name example.com www.example.com;

        return 301 https://$server_name$request_uri;
    }

    server {
        listen 443 ssl http2;
        server_name example.com www.example.com;

        ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
        ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;

        location /api/ {
            proxy_pass http://127.0.0.1:8000;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
        }

        location / {
            root /var/www/example;
            index index.html;
        }
    }
}

这个配置文件包含了一个监听80端口的HTTP服务,以及一个监听443端口的HTTPS服务。HTTP服务会将请求重定向到HTTPS服务。HTTPS服务会将所有以/api/开头的请求通过反向代理转发到8000端口,并将所有其他请求映射到本地文件系统中的根目录中,并使用index.html作为默认的访问文件。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Nginx的一些常用配置汇总 - Python技术站

(0)
上一篇 2023年5月16日
下一篇 2023年5月16日

相关文章

  • nginx转发php文件到php-fpm服务器提示502错误

    实验将php文件转发给另一个php-fpm服务器处理的时候,出现了502错误: 检查了nginx错误日志,提示:   2019/08/25 17:54:56 [error] 4742#0: *35 recv() failed (104: Connection reset by peer) while reading response header from …

    Nginx 2023年4月11日
    00
  • Nginx+uWSGI部署Python Web应用

    web开发的过程中一定会遇到 cgi、wsgi 之类的名词,然后看着他们十分相似的解释估计还没开始写代码就晕了,这都什么鬼? 今天我就聊聊这些容易搞混的名称。 CGI(Common Gateway Inteface)   字面的意思就是通用网关接口,它是外部应用程序与Web服务器之间的接口标准,规定一个程序该如何与web服务器之间通信。当然,CGI只是一个很…

    Nginx 2023年4月11日
    00
  • 一文弄懂Nginx的location匹配的实现

    一、Nginx的location匹配简介 Nginx中的location指令是用来匹配请求URI的。主要有三种匹配方式: 精确匹配:location = /uri 普通匹配:location /uri 或 location ^~ /uri 正则表达式匹配:location ~ regex 或 location ~* regex 精确匹配只有当请求URI与 l…

    Nginx 2023年5月16日
    00
  • Nginx配置文件nginx.conf详细说明

    下面是关于Nginx配置文件nginx.conf的详细说明。 1. Nginx配置文件的概述 Nginx配置文件是位于Nginx安装目录下的一个文本文件,它是服务器启动时读取的配置文件,可以通过编辑nginx.conf文件来进行服务器的配置。 在Nginx配置文件中,我们可以设置Nginx的全局配置和服务器配置,包括监听端口、代理服务器、虚拟主机、缓存等等。…

    Nginx 2023年5月16日
    00
  • 如何利用nginx做代理缓存浅析

    下面我将详细讲解如何利用nginx做代理缓存浅析,包括以下内容: 一、什么是代理缓存? 代理缓存是指代理服务器将之前已经访问过的网页内容缓存下来,当有用户再次访问该网页时,直接从缓存中获取,而不是重新请求原始服务器。这样可以降低对原始服务器的访问压力,提高网页的访问速度。 二、利用nginx做代理缓存的基本流程 安装nginx:使用apt-get安装命令即可…

    Nginx 2023年5月16日
    00
  • Nginx Linux详细安装部署教程

    1.下载安装 1.官网下载 官网:http://nginx.org/en/download.html 2.将下载好的 nginx-1.16.1.tar.gz 上传到linux或ubuntu指定的文件下 3.nginx安装 tar -zxvf nginx-1.16.1.tar.gz // 解压 cd nginx-1.16.1 // 切换目录 ./configu…

    Nginx 2023年4月13日
    00
  • VMware虚拟机的CentOS7安装Nginx后本机用CentOS的IP地址无法访问

    因为CentOS7的默认防火墙改成了Firewall,不再使用iptables为默认防火墙了 所以需要使用以下命令添加80端口 firewall-cmd –zone=public –add-port=80/tcp –permanent firewall-cmd –permanent –zone=public –add-port=3306/tcp …

    Nginx 2023年4月13日
    00
  • nginx注册为服务

    #!/bin/sh # # nginx – this script starts and stops the nginx daemon # # chkconfig: – 85 15 # description: Nginx is an HTTP(S) server, HTTP(S) reverse \ # proxy and IMAP/POP3 proxy …

    Nginx 2023年4月11日
    00
合作推广
合作推广
分享本页
返回顶部