Nginx服务器的搭建

<--目录-->

1)Nginx理论

2)Nginx搭建

【Nginx理论】

Nginx技能要点

Nginx安装与配置

Nginx虚拟主机

Nginx反向代理

一、nginx简介(能够提供网站服务 和 代理服务 开源软件)

Nginx是俄罗斯人编写的十分轻量级的HTTP服务器

是一个高性能的HTTP和反向代理服务器,同时也是一个

IMAP/POP3/SMTP代理服务器

网站服务器类型

Apache Nginx tomcat(java语言编写)

nginx 默认地址重写(修改用户访问的url)

conf配置文件   nginx.conf 主配置文件

html 网页目录

logs 日志文件

sbin 服务启动脚本

绝对路径启动服务

/usr/local/nginx/sbin/naginx  //直接启动服务,不做任何配置

相对路径启动服务

./nginx //直接启动服务,不做任何配置

启动服务

./nginx [选项]

例 ./nginx -t

-t  //测试主配置文件有没有错误

-v  //查看nginx软件的版本

-V  //查看安装时候的配置信息

-c  //启动服务时使用哪一个配置文件   [nginx.conf nginx2.conf]

-h  //查看帮助信息

-s  //关闭服务   #./nginx -s stop

sbin/nginx -c conf/nginx2.conf  //-c后面加上要启动的配置文件名,不加-c默认启动nginx.conf

nginx.conf  nginx2.conf

停止nginx服务 (信号不区分大小写)

格式  :  pkill/kill    -信号    进程名/pid号

例子  :  pkill     -int     nginx

信号

TERM,  INT    快速关闭

QUIT 从容关闭,关闭主进程顺便关闭工作子进程

HUP 重载配置用新的配置开始新工作进程从容关闭旧的工作进程

USR1 重新打开日志文件

USR2 平滑升级可执行程序

WINCH 从容关闭工作进程,不会立即关闭子进程

配置说明

安装目录/conf/nginx.conf

全局配置:写在容器外,对所有容器生效

局部配置:写在容器内,只对当前容器有效

全局配置和局部配置同时配置时,局部配置生效

Nginx反向代理服务方式

1、轮询(默认的)每个按请求按时间顺序逐一分配到不同的后端服务器 如果后断服务器down掉能自动剔除

2、Weight 指定轮询几率 权重和访问比率成正比 通常用于后断服务器性能不同的情况默认值为1

Weight=3 weight=2

3、ip_hash 每个请求,按访问ip地址的hash结果分配 这样可以让每个访客固定访问一个后端服务器,可

以解决session的问题

4、Fair 按后端服务器的响应时间来分配请求 响应时间短的优先分配(装第三方软件才可以使用)

后端服务器组主机设置详细信息

down 表示当前的server暂时不参与负载

backup 其他所有的非backup机器down或者忙的时候 请求会发给backup机器,

所以这台机器压力会最轻

max_fails 允许请求失败的次数 默认为1 当超过最大次数时 返回proxy_next_upstream模块

定义的错误

fail_timeout  max_fails次失败后 暂停提供服务的时间

修改主配置文件

vi /usr/lcoal/nginx/conf/nginx.conf

http {

upstream 服务器组名{

server 真正提供服务的服务器的ip地址:端口号;

server 真正提供服务的服务器的ip地址:端口号;

}

server{

...

location / {

...

proxy_pass http://服务器组名; //允许整个组被轮询访问

proxy_pass http://ip:80; //设置单独一个IP被访问

}

}

}

配置主配置文件,默认轮询方式

#cd /usr/lcoal/nginx/conf

vi nginx.conf

http {

upstream webgrp {

server 192.168.1.10:80;

server  192.168.1.100:80;

}

server{

...

location / {

...

proxy_pass http://webgrp;    //允许整个组被轮询访问

#proxy_pass http://192.168.1.10:80;   //设置单独一个IP被访问

}

}

}

权重方式配置

#vi nginx.conf

http{

upstream webgrp {

server 192.168.1.10:80 weight=2; //5次访问2次

server 192.168.1.100:80 weight=3; //5次访问3次

}

...

}

ip_hash方式配置

http{

upstream webgrp{

ip_hash; //每个访问客固定访问一个后端服务器

server 192.168.1.10;

server 192.168.1.100;

...

}

}

上述三种配置方式需分开使用

#cd ..;cd sbin

#pkill -hup nginx

公网客户端测试

#elinks --dump http://1.1.1.254

后端服务器组设置

http{

upstream webgrp {

server 192.168.1.1:80 weight=2;

server 192.168.1.10:80 down;  //设置为down状态,服务器请求不会发到这台主机

server 192.168.1.100:80 max_fails=2 fail_timeout=30; //请示最大失败次数2次,30秒内不再提供服务

server 192.168.1.101:80 backup; //这台机器性能低,当其他机器不能提供服务的时候,就用使用备份这台服务器

}

...

}

网页根目录

location  / { ... }

用来匹配用户访问web服务器时的URL

可以使用正则表达式匹配用户URL

http://www.baidu.com/music/3.mp3

.html

.php

.css

~   区分字母大小写匹配

~*  不区分字母大小写匹配

!~   区分字母大小写不匹配

!~* 不区分字母大小写不匹配

防盗链:

别的网站盗用了我网站的图片,客户端能通过访问别的公司的网站,点击链接却跳到了我公司的页面

消耗我公司的资源和带宽,因此需要做防盗链,防止别人盗我公司的图片链接

不区分大小写匹配   以这些做后辍名

location ~*  \.(gif|jpg|png|swf|flv)$ {

valid_referers none blocked   www.wsyht.com     *.nginx.com;

来源   没来源   防火墙来的  域 名来的

无效    引擎

if($invalid_referer){    #上面后辍名以上面的那些来源访问的的就可以访问,不匹配就返回下面的错误页面

#rewrite ^/  http://192.168.1.254/error.html    #返回错误页面

return 404;     #或错误返回404

}

}

nginx可以用本地模块做防盗链

也可以用第三方模块做防盗链

第三方模块

nginxhttpaccessmodules

【Nginx搭建】

一、搭建Nginx服务器(Redhat5.9)

用地址192.168.2.1的服务器做网站服务器

准备工作:

#netstat -tulnp | grep :80

#service httpd stop

#chkconfig --level 35 httpd off

#yum -y groupinstall "开发工具" "开发库"

#yum -y install gcc gcc-c++ make

#yum -y install pcre-devel

安装(源码Nginx包)

#cd

#useradd -M -s /sbin/nologin nginx

#tar -zxvf nginx-0.8.55.tar.gz

#cd nginx-0.8.55

#./configure \

> --prefix=/usr/local/nginx \

> --user=nginx \

> --group=nginx \

> --with-http_stub_status_module \       #提供nginx状态查看功能

> --with-http_ssl_module     #(依赖于openssl openssl-devel)     后期可以通过https访问web服务器

#make && make install

启动服务

#./nainx

访问本机网页

#elinks --dump http://localhost

二、平滑升级(在不停止服务的情况下升级软件版本)

#cd

#tar -zxvf nginx-1.0.5.tar.gz

#cd nginx-1.0.5

#./configure \

> --prefix=/usr/local/nginx \

> --user=nginx \

> --group=nginx \

> --with-http_stub_status_module \

> --with-http_ssl_module \

> --with-http_gzip_static_module

#make

#cd objs

#mv /usr/local/nginx/sbin/nginx nginx.old

#cp nginx /usr/local/nginx/sbin/

#cd ..

#make upgrade

#/usr/local/naginx/sbin/nginx -v

#elink --dump http://localhost

三、配置Nginx虚拟主机(修改/usr/local/nginx/conf/)

实验1:

配置基于域名的虚拟主机(通过主机名区分用户的访问)

修改主配置文件

#cd /usr/local/nginx/conf

#vi nginx.conf

...

http{

server{

listen 80;

server_name www.wsyht.com;

location / {

root /www;

index index.html;

}

}

server{

listen 80;

server_name bbs.wsyht.com;

location / {

root /bbs;

index index.html;

}

}

}

...

创建网页目录和网页文件

#mkdir /www;echo www.wsyht.com > /www/index.html

#mkdir /bbs;echo bbs.wsyht.com > /bbs/index.html

检测服务

#/usr/local/nginx/sbin/nginx -t

关闭重启服务

#/usr/loca/nginx/sbin/nginx -s stop

#/usr/local/nginx/sbin/nginx

修改host文件(域名解析)

#vi /etc/hosts

...

192.168.2.1 www.wsyht.com www

192.168.2.1 bbs.wsyht.com bbs

测试

#elinks --dump http//www.wsyht.com

#elinks --dump http//bbs.wsyht.com

实验二:

配置基于端口的虚拟主机

修改主配置文件

#cd /usr/local/nginx/conf/

#vi nginx.conf

...

http{

server{

listen 8080;

server_name dns.baidu.com;

location / {

root  /dns;

index index.html;

}

}

server{

listen 8090;

server_name blog.baidu.com;

location / {

root  /blog;

index index.html;

}

}

...

创建网页目录和网页文件

#mkdir /dns;echo "www.baidu.com" > /dns/index.html

#mkdir /blog;echo "bbs.baidu.com" > /blog/index.html

服务测试重启

#/usr/local/nginx/sbin/nginx -t

#pkill -hup nginx

修改host文件(域名解析)

#vi /etc/hosts

...

192.168.2.1 www.baidu.com www

192.168.2.1 bbs.baidu.com bbs

测试

elinks --dump http://www.baidu.com:8080

elinks --dump http://bbs.baidu.com:8090

实验三

配置基于ip的虚拟主机

修改主配置文件

#cd /usr/local/nginx/conf/

#vim nginx.conf

...

http{

server{

listen 192.168.2.2:80;

server_name mail.baidu.com;

location / {

root  /mail;

index index.html;

}

}

server{

listen 192.168.2.3:80;

server_name fack.baidu.com;

location / {

root  /fack

index index.html;

}

}

...

创建网页目录和网页文件

#mkdir /mail;echo "mail.baidu.com" > /mail/index.html

#mkdir /fack;echo "fack.baidu.com" > /fack/index.html

服务测试重启

#/usr/local/nginx/sbin/nginx -t

#pkill -hup nginx

修改host文件(域名解析)

#vi /etc/hosts

...

192.168.2.2 mail.baidu.com mail

192.168.2.3 fack.baidu.com fack

添加临时虚拟网卡端口

#ifconfig eth0:0 192.168.2.2

#ifconfig eth0:0 192.168.2.3

测试

#elinks --dump http://192.168.2.2

#elinks --dump http://192.168.2.3

四、客户端访问控制

...

http{

server{

listen www.baidu.com:80;

server_name www.baidu.com;

location / {

allow 192.168.2.2     //允许2.2访问

deny all       //拒绝所有

root  /www;

index index.html;

}

}

server{

listen www.baidu.com:80;

server_name www.baidu.com;

location / {

deny 192.168.2.2 //拒绝2.2访问

allow all //允许所有

root  /www;

index index.html;

}

}

}

...

五、用户访问控制

#cd /usr/local/nginx/conf

#vi nginx.conf

...

http{

server{

listen www.baidu.com:80;

server_name www.baidu.com;

location / {

auth_basic "auth-domain" //指定认证域的名字,名字随便取

auth_basic_user_file  /usr/local/nginx/conf/authuser.txt //保存用户名的文件,最后面文件名随便取

root  /www;

index index.html;

}

}

...

#htpasswd -c /usr/local/nginx/conf/authuser.txt admin //创建文件authuser.txt和访问用户名admin,密码随便填

#htpasswd  /usr/local/nginx/conf/authuser.txt jack //创建用户名jack,密码随便填

六、Nginx反向代理

拓扑图:

公网客户端

1.1.1.1          http://1.1.1.254

|  1.1.1.254

|

| nginx |  反向代理服务器

|

192.158.1.254    | |

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

|              |

web_A        web_B

192.168.1.10   192.168.1.100

1、配置内网的2台网站服务器 并编写首页文件

详细过程请参考最上面实验,过程略...

2、开启nginx服务器

详细过程请参考最上面实验,过程略...

3、配置nginx反向代理

配置主配置文件,默认轮询方式

#cd /usr/lcoal/nginx/conf

vi nginx.conf

http {

upstream webgrp {

server 192.168.1.10:80;

server  192.168.1.100:80;

}

server{

...

location / {

...

proxy_pass http://webgrp;    //允许整个组被轮询访问

}

}

}

重启服务

#cd ..;cd sbin

#pkill -hup nginx

公网客户端测试

#elinks --dump http://1.1.1.254

防盗料

拓扑图:

192.168.1.10------------192.168.1.100------------------192.168.1.254

客户端                  盗链网站 nginx网站服务器(配置图片防盗链)

盗链网站配置

启动服务

#servcie httpd start

编写网页文件

#cat /var/www/html/test.html

<html>

<body>

<a href="http://192.168.1.254/one.png">show image</a>

</body>

</html>

重启服务

#service httpd restart

Nginx网站服务器配置

在主配置文件配置防盗链

vi /usr/local/nginx/conf/nginx.conf

http{

server{

...

location ~* \.(gif|jpg|png|swf|flv)$ {

valid_referers none blocked www.wsyht.com  *.nginx.com;

if ($invalid_referer) {

rewrite ^/  http://192.168.1.254/error.html

#return 404;

}

}

...

}

配置错误文件

#echo "Error Page" > /usr/local/nginx/html/error.html

编写网页文件

#cat /var/www/html/test.html

<html>

<body>

<a href="http://192.168.1.254/one.png">show image</a>

</body>

</html>

重启服务

#pkill -hup nginx

客户端配置

安装图形界面

#yum groupinstall -y "图形"   //支持图形页面浏览

修改host文件

#vi /etc/hosts

...

192.168.1.254 www.wsyht.com www

浏览器访问测试

#http://192.168.1.100/test.html

#http://www.wsyht.com/test.html

时间: 2024-10-12 02:27:52

Nginx服务器的搭建的相关文章

在阿里云服务器(ECS)上从零开始搭建nginx服务器

本文介绍了如何在阿里云服务器上从零开始搭建nginx服务器.阿里云服务器(ECS)相信大家都不陌生,感兴趣的同学可以到http://www.aliyun.com/product/ecs去购买,或到体验馆去体验(半个月有效期).至于如何注册.管理ECS这里就不详细介绍了.因为官方文档已经写的很清楚了.如果还不清楚,打咨询电话询问. 现在假设你已经拥有了阿里云服务器,ip是139.128.33.11(假的,读者需要换成自己的ip地址).并且没有选择任何安装包.现在ECS是完全空的,除了必须的Linu

170116、centos6.4下nginx和ftp搭建图片服务器

一.需要的组件 图片服务器两个服务: Nginx(图片访问): 1.http服务:可以使用nginx做静态资源服务器.也可以使用apache.推荐使用nginx,效率更高. 2.反向代理 实现 负载均衡 ftp服务(图片上传): 使用Linux做服务器,在linux中有个ftp组件vsftpd. 二.Nginx服务器搭建 1.安装Nginx 要求安装vmware虚拟机. Linux:CentOS6.4(32) Nginx:1.8.0 Vsftpd:需要在线安装. 虚拟机以及Linux安装很简单此

Linux:Ubuntu_14.04.2 搭建nginx服务器

Ubuntu_14.04.2 搭建nginx服务器 系统环境:Ubuntu_14.04.2_i386(32位) 一.安装C++编译器 直接在ubuntu下安装g++即可 <span style="font-size:14px;">apt-get install g++ </span> 二.下载安装文件 1.下载以下4个文件(可以下最新版,去百度你就找到了)并解压(解压位置随意) nginx-1.8.0.tar.gz pcre-8.32.tar.gz zlib-1

Nginx 独立图片服务器的搭建

为什么需要独立图片服务器? 如果你留心的话,可以发现,现在主流的网站都是有单独的图片服务器的,例如,人人网的为rrimg,淘宝的为taobaocdn,下面还有很多的二级域名. 独立的图片服务器有诸多好处,其中一个就是客户端浏览器对一个主机下的连接数量限制,具体的连接数目忘记了,但基本都在10以下.也就是说,浏览器会控 制一个站点下的并发请求数量在10以下,如果对于网站有很多样式文件.脚本文件和图片需要加载的话,请求的过程会被阻塞,影响网站的打开速度. 建立图片服务器,将图片资源放在另外一个域名下

CentOS7 搭建 Nginx 服务器

一:Nginx 的搭建 Nginx 在服务器的应用主要是用于实现反向代理,负载均衡的功能. 这里简单的搭建 Nginx 服务器实现 nginx 对于两个 tomcat 的反向代理的功能. 在安装 Nginx 之前, 需要安装四个依赖, 安装nginx的依赖:gcc 安装nginx需要先将官网下载的源码进行编译,编译依赖gcc环境,如果没有gcc环境,需要安装gcc: yum install gcc-c++ yum install -y gcc PCRE PCRE(Perl Compatible

搭建nginx服务器和直播流媒体服务器

1.nginx简单说明 ①  Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,并在一个BSD-like 协议下发行.其特点是占有内存少,并发能力强. ②  Nginx作为Http服务器,有以下几项基本特征: b.1 处理静态文件,索引文件以及自动索引,打开文件描述符缓冲. b.2 无缓存的反向代理加速,简单的负载均衡和容错 b.3 模块化的结构,包括gzipping,byte ranges,chunked responses以及SSI-filte

Linux中用Nginx和FTP搭建WS幸运飞艇平台搭建图片服务器

一.需要的组件WS幸运飞艇平台搭建论坛:haozbbs.com Q1446595067 图片服务器两个服务:Nginx(图片访问): 1.http服务:可以使用nginx做静态资源服务器.也可以使用apache.推荐使用nginx,效率更高. 2.反向代理 实现 负载均衡ftp服务(图片上传): 使用linux做服务器,在linux中有个ftp组件vsftpd.二.Nginx服务器搭建1.安装Nginx 要求安装vmware虚拟机. Linux:CentOS6.4(32) Nginx:1.8.0

社交网站部署——Nginx服务器+PHP服务器搭建+MySQL主从集群

案例概述 某公司的社交网站采用PHP语言开发,为了管理PHP程序员开发的代码,上级领导要求搭建SVN服务器进行版本控制.社交网站的第一个版本部署在LNMP平台之上,前端为Nginx服务器,通过fastcgi协议访问后端的PHP服务器.为了保证数据安全,要求搭建MySQL数据库主从集群. 社交网站项目包含用户的相册功能,允许用户上传照片,上传照片需要使用共享存储来存放.针对共享存储可用的开源方案有很多,如MFS.FastDFS 等.公司决定使用MFS分布式文件系统来实现,并将MFS挂载在PHP服务

python服务器环境搭建Flask,uwsgi和nginx

python服务器环境搭建Flask,uwsgi和nginx 环境配置 服务器配置 [部署系统环境Ubuntu] 使用python的Flask框架搭建好网页后台后,便要开始将网站部署到服务器平台了.为了部署python服务器,我选择使用uwsgi和nginx. 使用Nginx和uWSGI来运行Python应用 Nginx Nginx是高效的Web服务器和反向代理服务器,同时并发高,部署简单,内存消耗小,最重要的是,支持uWSGI的uwsgi协议,可以直接使用,一个简单的uwsgi_pass就可以