java面试题网站:www.javaoffers.com
nginx配置文件结构
main
events(...)
http{
server {
location {...}
}
}
从上面的描述分为5个模块: main,events,http,server,location.
模块 | 描述 |
---|---|
main | 配置nginx的子进程数,子进程优先级,以及子进程所属用户/组, 错误日志位置与级别,进程能够打开’文件描述符数量’ 和配置pid 位置等 |
events | 配置nginx处理链接的方式 |
http | nginx处理http请求的主要配置快 |
server | nginx的服务主机配置块,可以配置多个 |
location | server中对应目录级别的配置,可以配置多个 |
user www-data;
worker_processes auto;
pid /run/nginx.pid;
include /etc/nginx/modules-enabled/*.conf;
events {
worker_connections 768;
}
http {
#基础配置
include /etc/nginx/mime.types;
sendfile on;
tcp_nopush on;
tcp_nodelay on;
keepalive_timeout 65;
types_hash_max_size 2048;
default_type application/octet-stream;
#ssl配置
ssl_protocols TLSv1 TLSv1.1 TLSv1.2; # Dropping SSLv3, ref: POODLE
ssl_prefer_server_ciphers on;
#配置日志
access_log /var/log/nginx/access.log;
error_log /var/log/nginx/error.log;
gzip on;
include /etc/nginx/conf.d/*.conf;
include /etc/nginx/sites-enabled/*;
###
upstream web2_proxy{
server 127.0.0.1:8080;
}
server {
listen 80; #监听端口
server_name localhost www.javaoffers.com; #转发域名,根据该域名规则进行转发,多个用空格隔开
index index.html index.htm index.jsp; #启动页,多个用空格隔开
#rewrite ^(.*)$ https://$host$1 permanent; #http 请求自动转换为https,就这样写
#目录自动加“/” ,这个功能一般浏览器自动完成
if (-d $request_filename){
rewrite ^/(.*)([^/])$ http://$host/$1$2/ permanent;
}
# 动态页面,交给tomcat处理
location / {
root html;
index index.html index.htm;
#设置主机头和客户端真实地址,以便服务器获取客户端真实IP
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
#禁用缓存
proxy_buffering off;
#反向代理的地址
proxy_pass http://web2_proxy; #映射对应的 upstream
}
}
}
主要参数描述
worker_processes | 配置nginx的进程数,一般设置为cpu总核数或总核数的两倍 |
worker_connections | 配置nginx允许单个进程并发链接的最大请求数 |
include | 引入配置文件 |
default_type | 设置默认配置文件 |
sendfile | 默认值为on,表示开启高效文件传输模式 |
keepalive_timeout | 设置长链接超时时间,单位秒 |
listen | j坚挺端口,默认监听80端口 |
server_name | 设置服务主机域名 |
root | 设置主机根目录地址 |
index | 指定默认索引文件 |
error_page | 自定义错误页面 |
proxy_pass | 设置代理地址 |
upstream | upstream(指定一个地址)通常和proxy_pass 配合使用 |