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下配置Https证书详细过程

    下面是Nginx下配置Https证书的详细过程: 1. 申请证书 首先需要到证书颁发机构(CA)进行申请,一般都需要提供域名的验证和身份的验证。申请成功后,会收到一个包含证书和私钥的压缩文件,其中包含以下文件: domain.crt:证书文件,用于配置Nginx的ssl_certificate参数; domain_nopwd.key:私钥文件,用于配置Ngi…

    Nginx 2023年5月16日
    00
  • centos7 nginx安装及自启动

    本文章为转载:https://blog.csdn.net/lisheninasiainfo/article/details/53576038   下载 nginx的rpm包 wget  http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.…

    Nginx 2023年4月13日
    00
  • 基于Centos7+Flask+Nginx+uWSGI+Python3的服务器网页搭建教程

    之前完成了贴吧签到系统的搭建,笔者想将这个功能分享给更多人使用,所以尝试搭建了一个网页,一路遇到了很多问题,最终解决了,记录下过程分享给大家 首先安装 uWSGI ,和 Nginx 配套使用,具体用途自行查阅(已配置Python3环境) yum install python3-devel.x86_64pip3 install uwsgi 新建一个 uWSGI…

    Nginx 2023年4月10日
    00
  • NGINX心跳检测

    NGINX心跳检测 upstream springboot { server 10.3.73.223:8080 max_fails=2 fail_timeout=30s; server 10.3.73.223:8090 max_fails=2 fail_timeout=30s; } server { listen 80; server_name localh…

    Nginx 2023年4月10日
    00
  • 【windows】【php】【nginx】windows 开机自启动nginx php 及nginx php配置

    #启动php-nginx   start-php-nginx.bat   @ECHO OFFECHO Starting PHP FastCGI…RunHiddenConsole.exe php-cgi.exe -b 127.0.0.1:9000cd C:\Users\ci15363\nginx-1.14.0RunHiddenConsole.exe ngi…

    Nginx 2023年4月12日
    00
  • Docker(三)——应用部署(MySQL部署,Nginx部署,Redis部署)

    一、MySQL部署 1.拉取mysql5.7镜像 docker pull mysql:5.7 2.创建容器,启动mysql5.7 (建议别用最新版本的mysql) docker run -id –name=mysql1 -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql:5.7 -p  代表端口映射,格式为  …

    Nginx 2023年4月12日
    00
  • nginx 配置后网站图片加载出来一半或者不出来

    项目进行nginx反向代理后发现图片和js、css等加载很慢,甚至加载不出来。 然后查看nginx的log,发现错误如下:   [html] view plain copy   2016/06/30 15:31:12 [crit] 29465#0: *10 open() “/usr/local/nginx/proxy_temp/1/00/0000000001…

    Nginx 2023年4月10日
    00
  • 如何配置Nginx的FastCGI缓存的响应体?

    配置Nginx的FastCGI缓存来缓存响应体需要遵循以下步骤: 步骤一:安装Nginx首先需要安装Nginx。具体安装过程这里不再赘述。 步骤二:配置FastCGI缓存以下是一个配置示例: http { # 定义FastCGI缓存路径 fastcgi_cache_path /path/to/cache levels=1:2 keys_zone=my_cac…

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