当前位置: 首页 > news >正文

nginx[新手用][模块化][高效]配置

零.安装与下载

略过

一. 项目结构

主站的话,我是放一个静态网页,方便过域名审核之类的。自己用的其他业务使用二级域名或者在顶级域名下通过路由``反向代理
创建目录www,并在该目录下根据每个域名创建对应的文件夹存放。
例如,顶级域名对应的网站目录为


/www
└── at├── cert│   ├── at.key│   └── at.pem├── index.html└── static├── bgi.gif├── favicon.ico└── nya.gif

二. 配置

2.1 主配置

首先是默认的配置,几乎不需要修改,小网站也不需要改多高的并发。
创建了一个叫mini的日志记录格式,主要就看一个IP请求方式即可

# user nginx;
worker_processes auto;
error_log /var/log/nginx/error.log;
pid /run/nginx.pid;include /usr/share/nginx/modules/*.conf;events {worker_connections 1024;
}

然后在http里创建我们日志的格式,并且导入我们的自己的配置。
即在/etc/nginx/下创建MyCfg文件夹,将每一个域名写入成一个配置,方便模块化管理与备份。

http {include mime.types;default_type  application/octet-stream;log_format mini '[$remote_addr] [$time_local] [$status] [$request_time] $request';include /etc/nginx/MyCfg/*.conf;
}

2.2 单个网页配置

我这个网页的配置里,一共有两个server:一个跳转http,一个https访问。

2.2.1 强制SSL

创建一个server并且强制将其定向为https

server {listen 80;listen [::]:80;server_name domain.com;return 301 https://$host$request_uri;
}

2.2.2 SSL配置

这是server里关于ssl的配置

    listen 443 ssl;listen [::]:443 ssl;server_name domain.com;ssl_certificate         /www/at/cert/at.pem;       ssl_certificate_key     /www/at/cert/at.key;

2.2.3 常规项与优化项配置

其中主要为:字符集的选择log的位置一些优化项gzip设置。具体含义不懂的话可以自行百度

    charset utf-8;access_log /var/log/nginx/index_access.log mini;sendfile                on;tcp_nodelay             on;keepalive_timeout       15;gzip                    on;gzip_buffers            4 8K;gzip_comp_level         6;gzip_min_length         1k;gzip_types  text/plain application/javascript application/x-javascript text/css text/javascript image/gif image/png;gzip_vary               on;

2.2.4 4X和5X的返回

放了一些错误页面的返回内容

    error_page  400 403 404         /miss.html;error_page  500 502 503 504     /err.html;location = /miss.html {internal;default_type text/html;add_header Content-Type 'text/html;charset=utf-8';return 404 '看不到的就没有返回喵(`⌒´メ)';}location = /err.html {internal;default_type text/html;add_header Content-Type 'text/html;charset=utf-8';return 502 '服务器坏掉了喵(〃>_<;〃)';}

2.2.5 主站

主站就一个静态html,然后所有的资源请求从静态目录获取,并设置过期时间。网页的logo可以过期得更长一些。

    location / {root /www/at/;index index.html;}location /static/ {alias /www/at/static/;expires     30d;}location = /favicon.ico {root /www/at/static/;expires     180d;}

2.2.6 其他应用

反向代理即可

    location /app/ {proxy_pass http://localhost:8080/;proxy_set_header Host $http_host;proxy_set_header Upgrade $http_upgrade;proxy_set_header Connection upgrade;proxy_set_header Accept-Encoding gzip;}

三. 预览

/etc/nginx/nginx.conf:

# user nginx;
worker_processes auto;
error_log /var/log/nginx/error.log;
pid /run/nginx.pid;include /usr/share/nginx/modules/*.conf;events {worker_connections 1024;
}http {include mime.types;default_type  application/octet-stream;log_format mini '[$remote_addr] [$time_local] [$status] [$request_time] $request';include /etc/nginx/MyCfg/*.conf;
}

/etc/nginx/MyCfg/at.conf:

server {listen 443 ssl;listen [::]:443 ssl;server_name domain.com;charset utf-8;access_log /var/log/nginx/index_access.log mini;sendfile                on;tcp_nodelay             on;keepalive_timeout       15;gzip                    on;gzip_buffers            4 8K;gzip_comp_level         6;gzip_min_length         1k;gzip_types  text/plain application/javascript application/x-javascript text/css text/javascript image/gif image/png;gzip_vary               on;ssl_certificate         /www/at/cert/at.pem;       ssl_certificate_key     /www/at/cert/at.key;error_page  400 403 404         /miss.html;error_page  500 502 503 504     /err.html;location = /miss.html {internal;default_type text/html;add_header Content-Type 'text/html;charset=utf-8';return 404 '看不到的就没有返回喵(`⌒´メ)';}location = /err.html {internal;default_type text/html;add_header Content-Type 'text/html;charset=utf-8';return 502 '服务器坏掉了喵(〃>_<;〃)';}location / {root /www/at/;index index.html;}location /static/ {alias /www/at/static/;expires     30d;}location = /favicon.ico {root /www/at/static/;expires     180d;}location /vscode/ {proxy_pass http://localhost:8080/;proxy_set_header Host $http_host;proxy_set_header Upgrade $http_upgrade;proxy_set_header Connection upgrade;proxy_set_header Accept-Encoding gzip;}
}server {listen 80;listen [::]:80;server_name domain.com;return 301 https://$host$request_uri;
}

http://www.mrgr.cn/news/61758.html

相关文章:

  • int main(int argc,char* argv[])详解
  • 计算机毕业设计——ssm基于HTML5的互动游戏新闻网站的设计与实现录像演示2021
  • javaweb----VS code
  • Git 常用命令与开发流程总结
  • MySQL史上最全总结
  • python代码实现了一个基于知识图谱和文档向量检索的问答系统,并通过Gradio构建了一个简单的Web交互界面
  • 使用命令行上传 ipa 到 App Store(iTMSTransporter 3.3)
  • [JAVAEE] 面试题(二) - CAS 和 原子类
  • 计算机组成原理之高级语言程序与机器级代码之间的对应、高级语言和机器级代码的具体示例
  • 优化云成本,打造卓越体验,他们有话说
  • 微信小程序 - 获取汉字拼音首字母(汉字英文首字母)根据汉字查拼音,实现汉字拼音首字母获取,在小程序上实现汉字的拼音提取首字母!
  • [专有网络VPC]管理VPC配额
  • 智慧园区 | 数智引领,让智慧触手可及
  • String的长度有限,而我对你的思念却无限延伸
  • IDEA 打包首个java项目为jar包
  • 开箱即用!智能文档处理“百宝箱”
  • Faces in Things数据集: 由麻省理工学院、微软等联合发布,探索人类视觉错觉的新里程碑
  • Ollama运行本地LLM大模型简单教程:大显存很重要
  • 【Golang】Golang的数组和slice切片的区别
  • 数据集(Dataset)是指为特定目的而收集、整理、存储的数据集合
  • 雷池社区版配置同步试用
  • 最长公共子串问题
  • 【Linux系统编程】第三十九弹---探索信号处理的奥秘:阻塞信号与sigset_t的深入剖析及实战
  • BUUCTF靶场Misc练习
  • yarn 下载安装、下载依赖、通过 vscode 运行服务(Windows11)
  • 企业如何提高外呼电话接通率?申请来电名片需要什么材料?