Nginx安装及配置虚拟主机

时间:2022-09-10 13:09:10

    nginx安装部分

依赖环境

yum -y install gcc zlib openssl-devel zlib-devel

1. 下载好下面两个包:
nginx-1.8.1.tar.gz
pcre-8.36.tar.gz
2. 为了支持rewrite功能,我们需要安装pcre

http://ftp.exim.llorien.org/pcre/pcre-8.36.tar.gz

tar xf pcre-8.36.tar.gz -C /usr/src/
./configure --prefix=/usr/local/pcre --enable-utf8 --enable-jit
make && make install
configure: error: You need a C++ compiler for C++ support.
yum install gcc-c++

3.安装openssl

需要ssl的支持,如果不需要ssl支持,请跳过这一步

yum -y install openssl*

4. 安装nginx

#下载地址http://nginx.org/download/nginx-1.8.1.tar.gz
#tar xf nginx-1.8..tar.gz
# cd nginx-1.8.
# ./configure --prefix=/usr/local/nginx --error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log --pid-path=/var/run/nginx/nginx.pid --lock-path=/var/run/nginx/nginx.lock --user=daemon --group=daemon --with-pcre=/usr/src/pcre-8.36 --with-threads
#make && make install
##################注意:--with-pcre后面跟的是pcre的解压路径,赌*
--prefix=/usr/local/nginx                  #指定nginx 的安装路径
--error-log-path=/var/log/nginx/error.log         #指定nginx错误日志的路径
--http-log-path=/var/log/nginx/access.log         #指定用户访问http时信息保存路径
--pid-path=/var/run/nginx/nginx.pid             #指定nginx的PID我i只
--lock-path=/var/run/nginx/nginx.lock           
--user=daemon --group=daemon                #指定nginx的用户和组
--with-pcre=/usr/src/pcre-8.36 --with-threads      #为了支持rewrite重写功能,指定pcre解压路径
###########################附加常用选项--------------------------------
--with-http_stub_status_module:支持nginx状态查询
--with-http_ssl_module:支持https
--with-http_spdy_module:支持google的spdy,想了解请百度spdy,这个必须有ssl的支持

-------------------------------------------------------------------

对nginx主配置文件进行修改

# cd /usr/local/nginx/
client_body_temp fastcgi_temp logs sbin uwsgi_temp
conf html proxy_temp scgi_temp
#conf:存放了nginx的配置文件
#html:网页存放目录
#sbin:nginx服务启动目录

#cd conf/
#vim nginx.conf #nginx的主配置文件
user daemon;
#主模块指令,指定 Nginx Worker 进程运行用户以及用户组,默认由 nobody 账号运行。
worker_processes ;
#主模块指令,指定了 Nginx 要开启的进程数。每个 Nginx 进程平均耗费 10M~12M 内存。根据经验,一般指定一个进程足够了,如果是多核 CPU,建议指定和 CPU 的数量一样的进程数即可,可以用/proc/cpuinfo |grep process查看系统cpu数
error_log logs/error.log warn;
#主模块指令,用来定义全局错误日志文件。日志输出级别有debug、info、notice、warn、error、crit 可供选择,其中,debug 输出日志最为最详细,而 crit 输出日志最少。
pid /var/run/nginx/nginx.pid;
#主模块指令,用来指定进程 id 的存储文件位置。
events {
#设定 Nginx 的工作模式及连接数上限
worker_connections ;
#worker_connections 也是个事件模块指令,用于定义 Nginx 每个进程的最大连接数,默认是 .最大客户端连接数由 worker_processes 和worker_connections 决定,即Max_client=worker_processes*worker_connections,在作为反向代理时,max_clients 变为:max_clients = worker_processes * worker_connections/4进程的最大连接数受 Linux 系统进程的最大打开文件数限制,在执行操作系统命令“ulimit -n ”后 worker_connections 的设置才能生效。
}
#下面这段内容是 Nginx 对 HTTP 服务器相关属性的配置
http {
include mime.types;
#主模块指令,实现对配置文件所包含的文件的设定,可以减少主配置文件的复杂度。类似于 Apache 中的 include 方法。
default_type application/octet-stream;
#属于 HTTP 核心模块指令,这里设定默认类型为二进制流,也就是当文件类型未定义时使用这种方式,例如在没有配置 PHP 环境时,Nginx 是不予解析的,此时,用浏览器访问 PHP 文件就会出现下载窗口。
#log_format 是 Nginx 的 HttpLog 模块指令,用于指定 Nginx 日志的输出格式。main 为此日志输出格式的名称,可以在下面的 access_log 指令中引用。
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;
#client_max_body_size 20m; 用来设置允许客户端请求的最大的单个文件字节数。
#client_header_buffer_size 32K; 用于指定来自客户端请求头的 headerbuffer 大小。对于大多数请求,1K 的缓冲区大小已经足够,如果自定义了消息头或有更大的 Cookie,可以增加缓冲区大小。这里设置为 32K。
#large_client_header_buffers 32k; 用来指定客户端请求中较大的消息头的缓存最大数量和大小,“”为个数,“32K”为大小,最大缓存量为 个 32K。
sendfile on; #用于开启高效文件传输模式。 tcp_nopush 和 tcp_nodelay 两个指令设置为将on 用于防止网络阻塞。
tcp_nopush on;
keepalive_timeout ;
#设置客户端连接保持活动的超时时间。在超过这个时间之后,服务器会关闭该连接。
#下面配置 Nginx 的 HttpGzip 模块。这个模块支持在线实时压缩输出数据流
gzip on; #用于设置开启或者关闭 gzip 模块,“gzip on”表示开启 GZIP 压缩,实时压缩输出数据流。
gzip_min_length 2k; #设置允许压缩的页面最小字节数,页面字节数从 header 头的Content-Length 中获取。默认值是 ,不管页面多大都进行压缩。建议设置成大于 1K 的字节数,小于 1K 可能会越压越大。
gzip_buffers 8k; #表示申请 个单位为 8K 的内存作为压缩结果流缓存,默认值是申请与原始数据大小相同的内存空间来存储 gzip 压缩结果。
gzip_http_version 1.1; #用于设置识别 HTTP 协议版本,默认是 1.1,目前大部分浏览器已经支持 GZIP 解压,使用默认即可。
gzip_comp_level ; #用来指定 GZIP 压缩比, 压缩比最小,1处理速度最快; 压缩比最大,9传输速度快,但处理最慢,也比较消耗 cpu 资源。
gzip_types test/plain application/x-javascript test/css application/xmli application/xml+rss test/javascript image/jpg image/gif image/png; #用来指定压缩的类型,无论是否指定,“text/html”类型总是会被压缩的 #下面介绍对虚拟主机的配置。建议将对虚拟主机进行配置的内容写进另外一个文件,然后通过include 指令包含进来,这样更便于维护和管理。 server { #server 标志定义虚拟主机开始
listen ; #listen 用于指定虚拟主机的服务端口
server_name www.sxkj.com; #用来指定 IP 地址或者域名,多个域名之间用空格分开
charset utf-; #设置网页的默认编码格式。 #access_log logs/host.access.log main; #用来指定此虚拟主机的访问日志存放路径,最后的 main 用于指定访问日志的输出格式。
location / { #指定虚拟主机的根目录
root /web/;
index index.html index.htm;
}
#error_page /.html; # redirect server error pages to the static page /50x.html
#
#error_page /50x.html;
error_page /.html; location = /.html {
root /web/error;
}

Nginx主配置文件部分解释

-------------------------------------------------------------------
# cat /proc/cpuinfo |grep process //查看系统
processor : 0

-------------------------------------------------------------------
# /usr/local/nginx/sbin/nginx \\启动nginx
# /usr/local/nginx/sbin/nginx -s stop \\停止nginx
# /usr/local/nginx/sbin/nginx -s reload \\重载配置文件

安装Nginx就到这里止步了,,以下是配置虚拟主机部分,若是需要就继续,不需要就跳转把...


       配置部分

nginx配置虚拟主机

1)、nginx配置多个虚拟主机,也就是我们通常说的配置域名.接下来我们配置两个域名a.losbyday.com,b.losbyday.com。

我们站点统一放到/www下,每个站点根目录名称都和域名相同,并且建立日志文件具体如下。

#新建a.ttlsa.com的站点根目录
mkdir -p /www/a.losbyday.com
#新建a站的首页index.html
echo "this is a.losbyday.com" >>/www/a.losbyday.com/index.html
#新建b.ttlsa.com站点根目录
mkdir -p /www/b.losbyday.com
#新建b站首页index.html,内容如this is b.losbyday.com!
echo "this is b.losbyday.com" >>/www/b.losbyday.com/index.html
#新建日志文件目录
mkdir -p /usr/local/nginx/logs/nginx

2)、配置nginx主配置文件nginx.conf

先配置nginx日志格式,在nginx.conf找到如下内容,并且将#注释标志去掉
#log_format main '$remote_addr - $remote_user [$time_local] "$request" '
# '$status $body_bytes_sent "$http_referer" '
# '"$http_user_agent" "$http_x_forwarded_for"';
#虚拟主机a.losbyday.com配置

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;     sendfile        on;
    keepalive_timeout  65;
  server{
  server_name a.losbyday.com;
  listen 80;
  root /www/a.losbyday.com;  # 站点根目录(程序目录)
  index  index.html index.htm; # 索引文件
  access_log  logs/a.losbyday.com.access.log main;
  location / {
        }
  }
  # 开始配置一个域名,一个server配置段一般对应一个域名
  #虚拟主机b.losbyday.com配置
  server{
  server_name b.losbyday.com;  # 域名
  listen 80;
  root /www/b.losbyday.com;  # 站点根目录(程序目录)
  index  index.html index.htm; # 索引文件
  access_log logs/b.losbyday.com.access.log main;
  location / {
        }
  }
}

配置讲解
server{}:配置虚拟主机必须有这个段。
server_name:虚拟主机的域名,可以写多个域名,类似于别名,比如说你可以配置成
server_name b.losbyday.com c.losbyday.com d.losbyday.com,这样的话,访问任何一个域名,内容都是一样的
listen 80,监听ip和端口,这边仅仅只有端口,表示当前服务器所有ip的80端口,如果只想监听127.0.0.1的80,写法如下:
listen 127.0.0.1:80
root /www/b.losbyday.com:站点根目录,你网站文件存放的地方。注:站点目录和域名尽量一样,养成一个好习惯
access_log logs/b.losbyday.com-access.log main:访问日志
location /{} 默认URLnginx location配置(URL)

------------------------------------------------
nginx -t 检查nginx配置是否ok,命令如下:
  如果看到以上两行ok和successful就表示配置问题,那接下来我们启动nginx
启动nginx (或者 nginx -s reload)
访问a.losbyday.com、b.losbyday.com(我这边DNS已经解析到了192.168.1.5,在测试的情况下,我们可以通过版本hosts即可),绑定host方法如下:
讲如下内容增加到C:\Windows\System32\Drivers\etc\hosts
192.168.1.5 a.losbyday.com
192.168.1.5 b.losbyday.com
192.168.1.5 a.losbyday.com
192.168.1.5 b.losbyday.com
以上是windows绑定hosts方式,如下是linux方式

echo "192.168.1.5 a.losbyday.com
192.168.1.5 b.losbyday.com" >> /etc/hosts

--------------------------------------
使用浏览器访问这两个站点。我这边使用curl来访问。
[root@dep5 conf]# curl http://a.losbyday.com
this is a.losbyday.com! //a站点内容
[root@dep5 conf]# curl http://b.losbyday.com
this is b.losbyday.com! //b站点内容

Nginx安装及配置虚拟主机的更多相关文章

  1. Nginx安装、配置虚拟主机、反向代理、负载均衡

    1.   nginx安装 下载nginx: 官方网站: http://nginx.org/ 使用的版本是1.8.0版本. Nginx提供的源码. 1.1. 要求的安装环境 1.需要安装gcc的环境.y ...

  2. 快速掌握Nginx(一) —— 安装Nginx和简单配置虚拟主机

    Nginx安装和简单配置虚拟主机 1 Nginx简介 Nginx是近几年最火热的http.反向代理服务器,百度阿里等互联网公司也都在使用Nginx,它也可以用作邮件代理服务器.TCP/UDP代理服务器 ...

  3. Nginx模块及配置虚拟主机

    1.Nginx的2组主要的模块 (1)core modules (必需,核心模块) 包括:Main.Events (2)Standard HTTP modules(虽然不是必需,但是缺省都会安装,不建 ...

  4. Nginx安装、默认虚拟主机、Nginx用户认证和域名重定向

    6月7日任务 12.6 Nginx安装12.7 默认虚拟主机12.8 Nginx用户认证12.9 Nginx域名重定向 扩展nginx.conf 配置详解 http://www.ha97.com/51 ...

  5. Linux centosVMware Nginx安装、 默认虚拟主机、Nginx用户认证、Nginx域名重定向

    一. Nginx安装 cd /usr/local/src wget http://nginx.org/download/nginx-1.12.1.tar.gz 版本在http://nginx.org/ ...

  6. nginx配置虚拟主机之不同端口和不同IP地址

    配置nginx虚拟主机不同端口和不同ip地址,和上编nginx基于域名配置虚拟主机博文类似,请先参考. zxl.com域名不同端口,配置文件内容如下: 1 2 3 4 5 6 7 8 9 10 11 ...

  7. centos下Nginx安装和配置多个域名的虚拟主机

    nginx安装步骤,源码编译安装(源码编译,可以自定制更多功能) openssl #user nobody; worker_processes ; #error_log logs/error.log; ...

  8. nginx 配置虚拟主机

    文章转载自:http://www.ttlsa.com/html/1571.html 上篇说道我们的nginx是安装在/usr/local/nginx/ cd conf 我们现在把所有的虚拟主机放在一个 ...

  9. centos5.5用phpstudy一键安装配置虚拟主机后,yum配置代理服务器squid

    最近因为工作需要,开发站点需要在lamp环境下跑网站,于是在win7上跑虚拟机装了一个centos5.5的linux 并用集成环境配置了一个lamp环境,这里用的是phpstudy的一键安装包,并配置 ...

随机推荐

  1. 图片_ _ Bitmap_Drawable_Image?

    ===== 2 ==== 1 b.读取res/drawable目录下的 png或者bmp Resources r = this.getContext().getResources(); //以数据流的 ...

  2. ServiceStack.Redis客户端访问库几项事项

    1)RedisClient的SetValue(string key, byte[]val)方法,如果val的长度为0,则redis服务器库中设置该key值失败. 2)PoolRedisClientMa ...

  3. 浅谈C#随机数发生器

    我们在做能自动生成试卷的考试系统时,常常需要随机生成一组不重复的题目,在.net Framework中提供了一个专门用来产生随机数的类System.Random. 对于随机数,大家都知道,计算机不 可 ...

  4. log4go的精确定时程序(带自动延迟补偿)

    程序设计目标是在程序启动10秒后执行某个任务,例如日志转储(rotate),以后每隔15秒执行一次. 初次的设计 package main import ( "time" &quo ...

  5. 中文转unicode,中文转bytes,unicode转bytes java实现

    utf-8 utf-8格式的中文由三位字节组成. UTF-8的编码规则很简单,只有二条: 1)对于单字节的符号,字节的第一位设为0,后面7位为这个符号的unicode码.因此对于英语字母,UTF-8编 ...

  6. Android进程间通信

    http://www.cnblogs.com/manuosex/p/3588634.html 一.Linux系统进程间通信有哪些方式? 1.socket: 2.name pipe命名管道: 3.mes ...

  7. 坚持自己的追求,迎来 “中国系统开发网” (CSDN)的专访

    坚持自己的追求,迎来 "中国系统开发网" (CSDN)的专访: 专访马根峰:海量数据处理与分析大师的中国本土程序员" http://www.csdn.net/articl ...

  8. My Apple Developer Library Catalog

    Objective-C & Memory Management:Programming with Objective-CConcepts in Objective-C ProgrammingM ...

  9. Python 将一个列表里面的元素拼接成一个字符串

    item1 = ["lowman", "isbusy"] item2 = ",".join(item1) # 根据实际需要使用相应的分隔符连 ...

  10. 【monkey】mokey常用命令<一>

    monkey测试的相关的原理 monkey测试的原理就是利用socket通讯的方式来模拟用户的按键输入,触摸屏输入,手势输入等,看设备多长时间会出异常.当Monkey程序在模拟器或设备运行的时候,如果 ...