nginx多站点配置
Posted 彼扬
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了nginx多站点配置相关的知识,希望对你有一定的参考价值。
主配置文件 nginx.conf:
user www; worker_processes 2; error_log /var/log/nginx/error.log; pid /var/run/nginx.pid; # Load dynamic modules. See /usr/share/nginx/README.dynamic. include /usr/share/nginx/modules/*.conf; events { worker_connections 102400; } http { 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 /var/log/nginx/access.log main; sendfile on; tcp_nopush on; tcp_nodelay on; keepalive_timeout 65; types_hash_max_size 2048; include /etc/nginx/mime.types; default_type application/octet-stream; # Load modular configuration files from the /etc/nginx/conf.d directory. # See http://nginx.org/en/docs/ngx_core_module.html#include # for more information. include /etc/nginx/conf.d/*.conf; }
站点1配置文件:one.conf
server { listen 80; server_name www.xx.cn; #charset koi8-r; access_log /data/logs/wwwxx.access.log main; location / { root /data/wwwxx; index index.html index.htm index.php; } error_page 404 /404.html; location = /404.html { root /usr/share/nginx/html; } # redirect server error pages to the static page /50x.html # error_page 500 502 503 504 /50x.html; location = /50x.html { root /usr/share/nginx/html; } # proxy the PHP scripts to Apache listening on 127.0.0.1:80 # #location ~ \.php$ { # proxy_pass http://127.0.0.1; #} # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000 # if (!-e $request_filename) { #rewrite ^/(.*) /index.php?$1 last; rewrite ^(?!/favicon)(?!/data)(?!/static)(?!/MP)(.*)$ /index.php?$1 last; break; } location ~ \.php$ { root /data/wwwxx; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } # deny access to .htaccess files, if Apache‘s document root # concurs with nginx‘s one # #location ~ /\.ht { # deny all; #} }
https-ssl带证书配置站点 web.conf
server { listen 443; server_name www.xx.cn ; if ($host = ‘xx.cn‘){ rewrite ^/(.*)$ https://www.xx.cn/$1 permanent; } ssl on; ssl_certificate /data/ssl/xx.cn.crt; ssl_certificate_key /data/ssl/xx.cn.key; #charset koi8-r; access_log /data/logs/wwwxx.access.log main; root /data/wweb; index index.html index.htm index.php; error_page 404 /404.html; location = /404.html { root /usr/share/nginx/html; } # redirect server error pages to the static page /50x.html # error_page 500 502 503 504 /50x.html; location = /50x.html { root /usr/share/nginx/html; } # proxy the PHP scripts to Apache listening on 127.0.0.1:80 # #location ~ \.php$ { # proxy_pass http://127.0.0.1; #} # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000 # location / { if (!-e $request_filename) { #rewrite ^/(.*) /index.php?$1 last; rewrite ^(?!/pc)(?!/static)(?!/robots)(.*)$ /index.php?$1 last; break; } } location ~ \.php$ { root /data/wweb; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } # deny access to .htaccess files, if Apache‘s document root # concurs with nginx‘s one # #location ~ /\.ht { # deny all; #} }
反向代理站点配置 two.conf
upstream two_web{ server 127.0.0.1:8088 weight=1; server 127.0.0.1:8081 weight=2; } server { listen 80; server_name www.xx.com; #charset koi8-r; access_log /data/logs/xx.access.log main; # Load configuration files for the default server block. include /etc/nginx/default.d/*.conf; location / { index index.htm index.html; proxy_pass http://two_web; #在这里设置一个代理,和upstream的名字一样 #以下是一些反向代理的配置可删除 proxy_redirect off; #后端的Web服务器可以通过X-Forwarded-For获取用户真实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; client_max_body_size 10m; #允许客户端请求的最大单文件字节数 client_body_buffer_size 128k; #缓冲区代理缓冲用户端请求的最大字节数 proxy_connect_timeout 300; #nginx跟后端服务器连接超时时间(代理连接超时) proxy_send_timeout 300; #后端服务器数据回传时间(代理发送超时) proxy_read_timeout 300; #连接成功后,后端服务器响应时间(代理接收超时) proxy_buffer_size 4k; #设置代理服务器(nginx)保存用户头信息的缓冲区大小 proxy_buffers 4 32k; #proxy_buffers缓冲区,网页平均在32k以下的话,这样设置 proxy_busy_buffers_size 64k; #高负荷下缓冲大小(proxy_buffers*2) proxy_temp_file_write_size 64k; } error_page 404 /404.html; location = /404.html { root /usr/share/nginx/html; } # redirect server error pages to the static page /50x.html # error_page 500 502 503 504 /50x.html; location = /50x.html { root /usr/share/nginx/html; } }
静态资源访问配置 image.conf
server { listen 80; server_name img002.xx.com; #charset koi8-r; #access_log logs/host.access.log main; location / { root /data/www/resource/; index index.html index.htm; } error_page 404 /404.html; location = /404.html { root /usr/share/nginx/html; } # redirect server error pages to the static page /50x.html # error_page 500 502 503 504 /50x.html; location = /50x.html { root /usr/share/nginx/html; } }
以上是关于nginx多站点配置的主要内容,如果未能解决你的问题,请参考以下文章