[root@VM-12-15-centos nginx]# cat nginx.conf
# nginx用户及组:用户、组。window下不指定
# 语法:user username [groupname]
# 默认:user nobody nobody
# 按照你服务器名字赋值[root@VM-12-15-centos nginx]
user root;
# 工作进程:数目。根据硬件调整,一般不改变,设置为1
# 通常等于服务器CPU数量。
worker_processes 1;
# 一个进程能打开的文件描述符最大值,理论上该值因该是最多能打开的文件数除以进程数。
# 但是由于nginx负载并不是完全均衡的,所以这个值最好等于最多能打开的文件数。
# LINUX系统可以执行 sysctl -a | grep fs.file 可以看到linux文件描述符。
# 根据fs.file-max的值设置
worker_rlimit_nofile 199007;
events {
# nginx采用最新的epoll和kqueue网络IO模型,而Apache使用的是select模式。
# 目前Linux下能承受高并发访问的squid、Memcached 都采用的是epoll网络IO模型。
# 使用epoll的I/O 模型。linux建议epoll,FreeBSD建议采用kqueue,window下不指定。
use epoll;
# 单个进程最大连接数(默认1024)
# 根据你服务器cpu、worker_processes对应去配置
# linux下输入ulimit -n查看你的最大连接数
# worker_processes是1,worker_connections最大为10,000
worker_connections 1024;
# 可以不设置
# 客户端请求头部的缓冲区大小。这个可以根据你的系统分页大小来设置,
# 一般一个请求头的大小不会超过1k,不过由于一般系统分页都要大于1k,所以这里设置为分页大小。
# client_header_buffer_size 4k;
}
http {
# 设定mime类型,类型由mime.type文件定义
include mime.types;
default_type application/octet-stream;
# 服务器名字的hash表大小
server_names_hash_bucket_size 128;
# 客户端请求头缓冲大小。
# nginx默认会用client_header_buffer_size这个buffer来读取header值,
# 如果header过大,它会使用large_client_header_buffers来读取。
# 如果设置过小HTTP头/Cookie过大 会报400 错误 nginx 400 bad request
# 如果超过buffer,就会报HTTP 414错误(URI Too Long)
# nginx接受最长的HTTP头部大小必须比其中一个buffer大
# 否则就会报400的HTTP错误(Bad Request)
# client_header_buffer_size 32k;
# large_client_header_buffers 4 32k;
# 隐藏ngnix版本号
# server_tokens off;
# 忽略不合法的请求头
# ignore_invalid_headers on;
# 让nginx在处理自己内部重定向时不默认使用server_name设置中的第一个域名
# server_name_in_redirect off;
# 客户端请求体的大小
# client_body_buffer_size 8m;
# 开启文件传输,一般应用都应设置为on;
# 若是有下载的应用,则可以设置成off来平衡网络I/O和磁盘的I/O来降低系统负载
sendfile on;
# 告诉nginx在一个数据包里发送所有头文件,而不一个接一个的发送。
# tcp_nopush on;
# tcp_nodelay off 会增加通信的延时,但是会提高带宽利用率。在高延时、数据量大的通信场景中应该会有不错的效果
# tcp_nodelay on,会增加小包的数量,但是可以提高响应速度。在及时性高的通信场景中应该会有不错的效果
tcp_nodelay on;
# 长连接超时时间,单位是秒
keepalive_timeout 65;
# server块记得listen的端口去开放防火墙
# http转发到https
# 如果用户输入www.xxx.com会自动转到https://www.xxx.com
server {
listen 80;
server_name www.xxx.com;
return 301 https://$server_name$request_uri;
}
# nuxt ssr渲染项目,需要使用Dockerfile
# 配置docker并在服务器yarn start此项目
# 这里只是让nginx代理转发
server {
# 监听端口并切有证书的带ssl,没有的就不填
listen 443 ssl;
# 填写绑定证书的域名
server_name www.xxx.com;
# 配置ssl证书
# 证书文件名称 此为docker映射目录
ssl_certificate /etc/nginx/cert/xxx_bundle.crt;
# 私钥文件名称 此为docker映射目录
ssl_certificate_key /etc/nginx/cert/xxx.key;
ssl_session_timeout 5m;
#请按照以下套件配置,配置加密套件,写法遵循openssl标准
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
# 表示使用的TLS协议的类型
ssl_protocols TLSv1.2 TLSv1.3;
ssl_prefer_server_ciphers on;
# 网站主页路径
# 因为这里是ssr渲染,blog为docker容器名
location / {
proxy_pass http://blog:3000;
proxy_set_header Host $host;
proxy_set_header X-Forward-For $remote_addr;
}
# 配置反向代理,解决请求后端接口跨域问题
# 访问:https://xxx/api/xxxxxx
location /api/ {
# 待转发后端接口地址
proxy_pass http://xxx:7020/;
# 重定义发往后端服务器的请求头,常见配置使用
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
# 配置status为405时,转200状态码并重定向
error_page 405 =200 $request_uri;
}
# 配置动静分离
# 访问静态数据:https://xxx/img/xxxxxx.jpg
location /img/ {
# docker映射的目录路径
root /usr/share/static;
index index.html index.htm;
}
}
# vue项目,直接yarn build打包后放入服务器并docker映射
server{
listen 8886 ssl;
# 填写绑定证书的域名
server_name www.xxx.com;
# 配置ssl证书
# 证书文件名称 此为docker映射目录
ssl_certificate /etc/nginx/cert/xxx_bundle.crt;
# 私钥文件名称 此为docker映射目录
ssl_certificate_key /etc/nginx/cert/xxx.key;
ssl_session_timeout 5m;
#请按照以下套件配置,配置加密套件,写法遵循openssl标准
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
# 表示使用的TLS协议的类型
ssl_protocols TLSv1.2 TLSv1.3;
ssl_prefer_server_ciphers on;
# 网站主页路径
location / {
try_files $uri $uri/index.html /index.html;
# docker容器下的地址
root /usr/share/nginx/html/ange-blog-administration/dist;
index index.html index.htm;
error_page 405 =200 $request_uri;
}
# 配置反向代理,解决请求后端接口跨域问题
# 访问:https://xxx/api/xxxxxx
location /api/ {
# 待转发后端接口地址
proxy_pass http://xxx:7020/;
# 重定义发往后端服务器的请求头,常见配置使用
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
# 配置status为405时,转200状态码并重定向
error_page 405 =200 $request_uri;
}
# 配置动静分离
# 访问静态数据:https://xxx/img/xxxxxx.jpg
location /img-log/ {
# docker映射的目录路径
root /usr/share/nginx/html/spring-boot;
index index.html index.htm;
}
}
}
nginx.conf总体配置讲解
最新推荐文章于 2023-08-28 21:49:17 发布