【学习】使用Nginx进行多站点配置(初级)
Nginx ("engine x") 是一个高性能的 HTTP 和 反向代理 服务器,也是一个 IMAP/POP3/SMTP 代理服务器。
需求:一台主机,IP为221.XXX.XXX.XXX,为了资源利用最大化,将两个域名,即两个站点在这台主机上布署。
具体配置如下:
www.aaa.com 放在端口为8080的tomcat上。
www.bbb.com 放在端口为8088的tomcat上。
先是将两个域名解析到此IP上(去域名服务商那边可以设置),检验是否成功可以ping下域名。
nginx下载:http://nginx.org/en/download.html
本文用的版本:1.5.6
---------------------------------
下载来后,是一个压缩包,目录如下:
nginx的核心配置是cong文件夹下的nginx.conf
相应的日志,放在Logs目录下(可通过配置)
平时我们可以用简单命令来操作nginx;
命令模式,在nginx的目录下,输入:
目录略\nginx-1.5.6>start nginx
在浏览器中输入:http://127.0.0.1/,就会看到Welcome to nginx!字样,说明nginx启动成功。(看进程也是可以的)。
此外简单的命令还有:
nginx -s stop // 停止nginx
nginx -s reload // 重新加载配置文件
nginx -s quit // 退出nginx
---------------------------------
下面重点配置nginx.conf文件:
#使用的用户组#user nobody;#指定工作衍生进程数(一般等于CPU的总核数或总核数的两倍)worker_processes 1;#指定错误日志存放的路径,错误日志记录级别可选项为[debug|info|notice|warn|error|crit]error_log logs/error.log;#error_log logs/error.log notice;#error_log logs/error.log info;#指定pic存放的路径pid logs/nginx.pid;#指定文件描述符数量worker_rlimit_nofile 65535;events { #使用的网络I/O模型,Linux系统推荐采用epoll模型,FreeBSD系统推荐采用kqueue模型#use epoll;#允许的链接数 worker_connections 65535;}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 logs/access.log main;server_names_hash_bucket_size 128;client_header_buffer_size 32k;large_client_header_buffers 4 32K;#设置客户端能够上传的文件大小 client_max_body_size 9000m; sendfile on; tcp_nopush on;keepalive_timeout 65;tcp_nodelay on;server_tokens off;client_body_buffer_size 512k;proxy_connect_timeout 5;proxy_read_timeout 60;proxy_send_timeout 5;proxy_buffer_size 16k;proxy_buffers 2 256k;proxy_busy_buffers_size 256k;proxy_temp_file_write_size 256k;proxy_set_header Host $host;proxy_set_header X-Real-IP $remote_addr; #获取真实IP #gzip on;gzip on; gzip_min_length 1k; gzip_buffers 4 16k; gzip_http_version 1.1; gzip_comp_level 2; gzip_types text/plain application/x-javascript text/css application/xml; gzip_vary on;server{ server_name _; return 404; } server { listen 80; server_name www.aaa.cn;access_log logs/www.aaa.cn.access.log main;server_name_in_redirect off;charset utf-8; location / { proxy_pass http://localhost:8080; } }server { listen 80; server_name www.bbb.com;access_log logs/www.bbb.com.access.log main;server_name_in_redirect off;charset utf-8; location / {proxy_pass http://localhost:8088; } }}