美文网首页
nginx 学习日志

nginx 学习日志

作者: coderhu | 来源:发表于2016-12-10 00:32 被阅读0次

1 安装

参考:https://www.nginx.com/resources/wiki/start/topics/tutorials/install/

2 配置文件说明

user      www www;  ## Default: nobody  nginx 管理账号

worker_processes  5#auto;  ## Default: 1 nginx 的 worker 进程数

error_log  logs/error.log;  ## 出错日志# [ debug | info | notice | warn | error | crit ]

pid        logs/nginx.pid;      ## 运行的进程ID

worker_rlimit_nofile 8192;    ## worker 进程可以打开的最大文件数(部分linux 系统最大为1024)

events {    ## 事件驱动模型

worker_connections  4096;  ## Default: 1024 worker进程运行的最大连接数

# use [ kqueue | rtsig | epoll | /dev/poll | select | poll ] ;

##use epoll

}

http {   ##http服务

include    conf/mime.types;

include    /etc/nginx/proxy.conf;

include    /etc/nginx/fastcgi.conf;

index    index.html index.htm index.php;

default_type application/octet-stream;

log_format  main '$remote_addr - $remote_user [$time_local]  $status '

'"$request" $body_bytes_sent "$http_referer" '

'"$http_user_agent" "$http_x_forwarded_for"';

access_log  logs/access.log  main;

sendfile    on;

tcp_nopush  on;

server_names_hash_bucket_size 128; # this seems to be required for some vhosts

#隐藏服务器版本信息

#server_tokens Off |On

server { # php/fastcgi

listen      80;

server_name  domain1.com www.domain1.com;

access_log  logs/domain1.access.log  main;

root        html;

location ~ \.php$ {

fastcgi_pass  127.0.0.1:1025;

}

}

server { # simple reverse-proxy

listen      80;

server_name  domain2.com www.domain2.com;

access_log  logs/domain2.access.log  main;

# serve static files

location ~ ^/(images|javascript|js|css|flash|media|static)/  {

root    /var/www/virtual/big.server.com/htdocs;

expires 30d;

}

# pass requests for dynamic content to rails/turbogears/zope, et al

location / {

proxy_pass      http://127.0.0.1:8080;

}

}

upstream big_server_com {

server 127.0.0.3:8000 weight=5;

server 127.0.0.3:8001 weight=5;

server 192.168.0.1:8000;

server 192.168.0.1:8001;

}

server { # simple load balancing

listen          80;

server_name    big.server.com;

access_log      logs/big.server.access.log main;

location / {

proxy_pass      http://big_server_com;

}

}

}

不像apache,nginx 通过http模块里面的server模块来配置虚拟主机的:

server {

# Replace this port with the right one for your requirements

listen 80 default_server;  #could also be 1.2.3.4:80

# Multiple hostnames separated by spaces.  Replace these as well.

server_name star.yourdomain.com *.yourdomain.com; # Alternately: _

root /PATH/TO/WEBROOT;

error_page 404 errors/404.html;

access_log logs/star.yourdomain.com.access.log;

index index.php index.html index.htm;

# static file 404's aren't logged and expires header is set to maximum age

location ~* \.(jpg|jpeg|gif|css|png|js|ico|html)$ {

access_log off;

expires max;

}

location  ~  \.php$ {

include fastcgi_params;

fastcgi_intercept_errors on;

# By all means use a different server for the fcgi processes if you need to

fastcgi_pass  127.0.0.1:YOURFCGIPORTHERE;

}

location ~ /\.ht {

deny  all;

}

}

Nginx 通过 FCGI protocol 和php-fpm(php fastcgi process manager)通信的配置:

location  ~  [^/]\.php(/|$) {

fastcgi_split_path_info ^(.+?\.php)(/.*)$;

if  (!-f  $document_root$fastcgi_script_name) {

return 404;

}

# Mitigate https://httpoxy.org/ vulnerabilities

fastcgi_param HTTP_PROXY "";

astcgi_param SCRIPT_FILENAME  $document_root$fastcgi_file_name;

fastcgi_pass  127.0.0.1:9000; ## 如果以unix socket 形式进行通信 fastcgi_passunix:/var/run/php5-fpm.sock;

fastcgi_index  index.php;

include fastcgi_params;

}

相关文章

网友评论

      本文标题:nginx 学习日志

      本文链接:https://www.haomeiwen.com/subject/rypemttx.html