nginx配置文件详细说明
操作系统: Debian8
软件版本: nginx 1.6.2
配置文件说明:
nginx默认配置文件为/etc/nginx/nginx.conf,可以在运行命令中-c指定配置文件。
# 运行用户
user www-data;
# 启动进程,通常设置成和cpu的数量相等
worker_processes 1;
# 全局错误日志及PID文件
error_log /var/log/nginx/error.log;
pid /var/run/nginx.pid;
# 工作模式及连接数上限
events {
use epoll; # epoll是多路复用IO(I/O Multiplexing)
worker_connections 1024; # 单个后台worker process进程的最大并发链接数
# multi_accept on;
}
# 设定http服务器
http {
# 访问日志
access_log /var/log/nginx/access.log;
error_log /var/log/nginx/error.log;
#开启gzip压缩
gzip on;
gzip_disable "MSIE [1-6]\.(?!.*SV1)";
# server的配置(后边详细介绍)
server {
}
# 从文件导入其他的server配置
# 其中sites-enabled目录下都是指向sites-available目录中的软链接,
# 建议用户自己添加的配置都放在sites-available目录中,然后软链接至sites-enabled目录;
# 需要临时关闭的话,可以删除sites-enabled中的软链接,恢复时重建链接即可。
include /etc/nginx/conf.d/*.conf;
include /etc/nginx/sites-enabled/*;
}
# 设定mail服务器
#mail {
#}
# 设定rtmp 服务器
#rtmp {
# server {
# }
#}
server配置项详细说明: 并不需要所有的条目,无用的条目可以删减去
server {
# 侦听端口:可侦听多个端口,以空格分隔
listen 80 default_server;
# 绑定域名:可以绑定多个域名,以空格式分隔
server_name oroct.com www.oroct.com blog.oroct.com;
# 设定访问日志
access_log logs/oroct.com.access.log main;
# 默认请求
location / {
# 定义服务器的默认网站根目录位置
root /var/www;
# 定义首页索引文件的名称
index index.php index.html index.htm;
# php相关配置
fastcgi_pass unix:/var/run/www/php.sock;
fastcgi_param SCRIPT_FILENAME $document_root/$fastcgi_script_name;
include /etc/nginx/fastcgi_params;
# 重写向不存在的页面
if (!-e $request_filename) {
rewrite ^(.*)$ /index.php last;
}
}
# 定义错误提示页面
# error_page 500 502 503 504 /50x.html;
# location = /50x.html {
# root /var/www/error;
# }
# 静态文件,nginx自己处理
# 静态文件不怎么更新,过期可以设大一点,
# 如果频繁更新,则可以设置得小一点。
location ~ ^/(images|javascript|js|css|flash|media|static)/ {
root /var/www/virtual/htdocs;
expires 30d;
}
# 也可以单独把PHP部分摘出来
#location ~ \.php$ {
#}
# 设定查看nginx状态的地址
location /NginxStatus {
stub_status on;
access_log on;
auth_basic "NginxStatus";
auth_basic_user_file conf/htpasswd;
}
# 禁止访问 .htxxx 文件
location ~ /\.ht {
deny all;
}
}
配置端口转发:
server {
server_name git.doit.pub;
location / {
# 代理地址及端口
proxy_pass http://127.0.0.1:3000;
# 修改转发请求头
proxy_set_header Host $proxy_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
未绑定域名访问: 关键字一个下划线_
server {
listen 80 default_server;
server_name _;
root /var/www/default;
# 通过include简化php配置语句
include /etc/nginx/fastcgi_php;
location / {
index index.php index.html;
}
}
如果不设置的话,一般会指向第一个server的配置,所以这个一定要注意,也可以通过return 404返回错误。
server {
listen 80 default_server;
server_name _;
return 404;
}
配置https服务:
server {
# https监听端口为443
listen 443;
# 指定证书
ssl on;
ssl_certificate /etc/nginx/ca/server.crt;
ssl_certificate_key /etc/nginx/ca/server_nopwd.key;
# 下边的设置基本都差不多了
# ......
}
配置rtmp服务:
# 配置RTMP服务(RTMP章节详细说明)
rtmp {
server {
listen 1935; # 服务端口
chunk_size 4096; # 数据传输块的大小
application vod {
# 视频文件存放位置。
play /opt/video/vod;
}
application vod2 {
play /opt/video/vod2; ;
}
application live{
}
application hls{
}
}
}
https://www.jianshu.com/p/0a6f0b425b7f
配置负载均衡:
http {
.............
#设定负载均衡的服务器列表
upstream mysvr {
# weigth参数表示权值,权值越高被分配到的几率越大
# 开启本机上的Squid的3128端口
server 192.168.8.1:3128 weight=5;
server 192.168.8.2:80 weight=1;
server 192.168.8.3:80 weight=6;
}
}
https://www.cnblogs.com/xiaogangqq123/archive/2011/03/02/1969006.html