- 基础配置
user root;
worker_processes 8;
# 固定CPU使用位置,禁止自动切换浪费性能
worker_cpu_affinity 00000001 00000010 00000100 00001000 00010000 00100000 01000000 10000000;
error_log /data/log/nginx/error.log;
pid /data/log/nginx/nginx.pid;
events {
worker_connections 1024;
use epoll;
}
http {
include mime.types;
default_type application/octet-stream;
log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"';
access_log /data/log/nginx/access.log main;
sendfile on;
tcp_nopush on;
# 请求超时时间,单位:秒
keepalive_timeout 65;
# 请求体大小限制,最大可上传文件大小
client_max_body_size 100m;
# 启用gzip压缩
gzip on;
gzip_min_length 5k;
gzip_buffers 4 16k;
gzip_http_version 1.0;
gzip_comp_level 3;
gzip_types text/plain application/x-javascript text/css application/xml text/javascript application/x-httpd-php image/jpeg image/gif image/png;
gzip_vary on;
# 禁止直接用ip访问
server {
listen 80 default;
server_name _;
return 404;
}
# 每个项目使用自己的配置文件,加载/etc/nginx/目录下的所有.conf文件,.conf文件中只包含2↓或3↓的内容即可
include /etc/nginx/*.conf;
}
- 反向代理配置
server {
listen 80;
server_name yourdomain;
# 监控nginx运行状态
location /nginx_status {
stub_status on;
access_log off;
}
location / {
proxy_pass http://tomcatServer/;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
# 这里使用root配置 如果访问 192.168.1.1/test/a.html 则对应的路径为:/usr/local/test/a.html
location /test/ {
root /usr/local/ ;
}
# 这里使用alias配置 如果访问 192.168.1.1/test/a.html 则对应的路径为:/usr/local/a.html
location /test/ {
alias /usr/local/ ;
}
}
upstream tomcatServer{
server 127.0.0.1:8082;
server backup-ip:8082 backup;
}
- 静态资源配置
server {
listen 80;
server_name yourdomain;
#配置Nginx动静分离,静态资源直接从静态资源目录获取
location ~ .*\.(html|htm|gif|jpg|jpeg|bmp|png|ico|txt|js|css)$ {
root /data/static-resource/;
#expires定义用户浏览器缓存的时间为7天
expires 7d;
}
# 这里使用root配置,如果访问 192.168.1.1/test/a.html 则对应的路径为:/data/images/images/a.html
location /images/ {
root /data/images/ ;
}
# 这里使用alias配置,如果访问 192.168.1.1/test/a.html 则对应的路径为:/data/images/a.html,相对来说这种更好
location /images/ {
alias /data/images/ ;
}
}