Web服务器nginx虚拟主机与反向代理
更新时间:2024-06-25 13:02:01 阅读量: 综合文库 文档下载
Web服务器nginx虚拟主机与反向代理 web 服务器 - nginx
web服务器简介:
apache,web服务器:访问网页,查找、浏览信息。 蜘蛛程序-网络爬虫
常见的web服务器: apache lighttpd nginx tomcat IIS
介绍nginx:
高性能的http服务器和反向代理服务器(web加速),运行在类unix和windows上
为什么选择nginx?
处理速度快,占用的资源少
apache里的模块是动、静结合;在nginx里面,都是静态的。 支持热部署
可以 7x24 不间断运行
书写的代码质量很高,也很规范
问题:俄国人写的,一些官方资料,文档比较少。
============================================= 安装之前: 1、准备工作:
1)apache是停止的,释放80端口
2)添加一个普通用户,出于安全的目的使用这个普通用户去运行nginx # useradd -M -s /sbin/nologin www
默认使用的是 nobody 这个用户。
2、开始安装
[root@localhost lnmp]# ls nginx--x.tar.gz nginx--x.tar.gz
[root@localhost lnmp]# tar zxvf nginx--x.tar.gz -C /usr/local/src/
安装nginx所需的软件包: pcre-8.10.tar.gz nginx-0.8.46.tar.gz
(1)PCRE:Perl库, Perl Compatible Regular Expressions 支持正则表达式
[root@localhost nginx]# tar zxvf pcre-8.10.tar.gz
[root@localhost nginx]# cd pcre-8.10 [root@localhost pcre-8.10]# ls
[root@localhost pcre-8.10]# ./configure [root@localhost pcre-8.10]# make
[root@localhost pcre-8.10]# make install
(2)安装 nginx
[root@localhost nginx]# ls nginx-0.8.46.tar.gz nginx-0.8.46.tar.gz
[root@localhost nginx]# tar zxvf nginx-0.8.46.tar.gz
[root@localhost nginx-0.8.46]# ./configure --user=www --group=www --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --user --group --prefix --with-http_stub_status_module 状态模块 --with-http_ssl_module 支持 https yum install -y openssl-devel
[root@localhost nginx-0.8.46]# make
[root@localhost nginx-0.8.46]# make install
[root@localhost nginx-0.8.46]# cd /usr/local/nginx/ [root@localhost nginx]# ls conf html logs sbin
启动服务:
[root@localhost nginx]# ./sbin/nginx -c conf/nginx.conf
[root@localhost nginx]# netstat -antp | grep 80
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 19449/nginx.conf
访问:http://192.168.7.253/ Welcome to nginx! OK
解读配置文件:
[root@localhost conf]# pwd /usr/local/nginx/conf
[root@localhost conf]# vim nginx.conf 1
2 user www;
3 worker_processes 1; #开启的进程数,与 CPU的核数一致,
查看CPU的信息:
[root@localhost html]# cat /proc/cpuinfo
5 #error_log logs/error.log; 错误日志 6 #error_log logs/error.log notice; 7 #error_log logs/error.log info;
redhat 5 man 5 syslog.conf redhat 6 man 5 rsyslog.conf ?
9 #pid logs/nginx.pid;**
12 events {
13 use epoll; #指定nginx使用高效的工作模式
14 worker_connections 1024; # 每个进程能够处理的最大连接数 15 } 能够处理的最大连接数=worker_processes x worker_connections use epoll; 指定nginx的工作模式 默认使用的是 select 和 poll epoll 2.6内核之后,某些发行版,比如 SUSE、redhat 支持 epoll模型
# uname -r 2.6.18-194.el5
linux 和 redhat 和 windows 有没有可比性? 其他的发行版,要想使用高效模式:kqueue BSD系列MacOS 等
# cat /etc/issue
Red Hat Enterprise Linux Server release 5.5 (Tikanga)
18 http {
19 include mime.types; #文件的扩展名和文件类型
20 default_type application/octet-stream; #文件的类型默认是二进制
22-26 访问日志
28 sendfile on; #开启高效的文件传输模式 29 #tcp_nopush on; #防止网络阻塞
31 #keepalive_timeout 0; #长连接的超时时间,秒 32 keepalive_timeout 65;
34 #gzip on; #开启gzip压缩传输数据
36 server {
37 listen 80;
38 server_name localhost; 39
40 #charset koi8-r; #字符集 41
42 #access_log logs/host.access.log main; 43
44 location / {
45 root html; == documentroot 46 index index.html index.htm; 47 } } }
页面文件的名字
虚拟主机: 基于域名的虚拟主机。 FQDN Documentroot ww1.nginx.com /htdocs/ww1 ww2.nginx.com /htdocs/ww2 default /htdocs/default
日志 迁移: 从 /usr/local/nginx/logs --> /logs(raid0)
# mkdir -p /htdocs/{ww1,ww2,default} -v 注意权限: www 进去 x
[root@localhost conf]# cd /htdocs/ww1
[root@localhost ww1]# echo \
[root@localhost ww1]# cd ../ww2
[root@localhost ww2]# echo \[root@localhost ww2]# cd ../default/
[root@localhost default]# echo \
测试配置文件是否正确:
[root@localhost nginx]# ./sbin/nginx -t
the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok configuration file /usr/local/nginx/conf/nginx.conf test is successful
重启: 用 kill 命令 给 nginx 的pid 传递一个信号,让它重新读取配置文件。
[root@localhost nginx]# cat logs/nginx.pid 19449
nginx的平滑重启:
[root@localhost nginx]# kill -HUP 19449
客户端测试: vim /etc/hosts 添加
192.168.7.253 ww1.nginx.com 192.168.7.253 ww2.nginx.com
打开浏览器: http://ww1.nginx.com/ ww1.nginx.com http://ww2.nginx.com/ ww2.nginx.com http://192.168.7.253/ default.nginx.com
----------------
nginx的日志管理 ----------------
错误日志:nginx出问题,查看错误日志,排错 访问日志:查看有哪些客户端来访问自己
log_format ww1 '$remote_addr - $remote_user [$time_local] \ '$status $body_bytes_sent \ '\
access_log logs/ww1.log ww1;
1. log_format 指定日志的格式 log_format name format
$remote_addr和$http_x_forwarded_for:记录ip地址* $remote_user:记录客户端的用户名称 $time_local:记录访问时间和时区* $request:记录请求的URL和HTTP协议 $status :记录请求状态
$body_bytes_sent :记录发送给客户端的文件的主体内容的大小 $http_referer:记录从哪个页面链接过来的 $http_user_agent:记录客户端浏览器的信息
2. access_log 指定日志的存放路径
问题: 日志轮替
写一个日志轮替的脚本,结合计划任务。1周替换一个新的日志文件? --------------
农场和斗地主: --------------
斗地主:
server ip : 192.168.7.221
[root@localhost s1]# yum install -y httpd mysql-server php php-mysql
[root@localhost html]# pwd /var/www/html
[root@localhost html]# ls ddz
[root@localhost html]# chmod -R 777 ddz/
[root@localhost html]# /etc/init.d/mysqld start
mysql> create database ddz;
mysql> grant all on ddz.* to ddzuser@\
mysql> flush privileges;
[root@localhost html]# vim +391 /etc/httpd/conf/httpd.conf DirectoryIndex index.php index.html index.html.var
[root@localhost html]# /etc/init.d/httpd restart
网页安装:http://192.168.7.221/ddz/install.php 服务器:localhost 数据库:ddz DB帐号:ddzuser DB密码:123456
QQ农场:
server ip : 192.168.7.221
[root@localhost s1]# yum install -y httpd mysql-server php php-mysql
[root@localhost Desktop]# ls
flash-plugin-10.1.102.65-release.i386.rpm qq农场.zip
[root@localhost Desktop]# unzip qq农场.zip -d /var/www/html/
[root@localhost html]# pwd /var/www/html
[root@localhost html]# mv upload/ qq [root@localhost html]# ls ddz qq
[root@localhost html]# chmod -R 777 qq
[root@localhost html]# /etc/init.d/mysqld start
mysql> create database qq;
mysql> grant all on qq.* to qquser@\
mysql> flush privileges;
[root@localhost html]# vim +391 /etc/httpd/conf/httpd.conf DirectoryIndex index.php index.html index.html.var
[root@localhost html]# /etc/init.d/httpd restart
[root@localhost qq]# pwd /var/www/html/qq
[root@localhost qq]# mysql qq < qqfarm.sql
使用的架构: LAMP:linux apache mysql php LNMP:linux nginx mysql php
====================== 验证: ====== apache: authname authtype authuserfile required user
nginx:加在虚拟主机里面
auth_basic \
auth_basic_user_file /usr/local/nginx/conf/.htpasswd;
创建这个 文件:/usr/local/nginx/conf/.htpasswd htpasswd
[root@localhost conf]# which htpasswd /usr/bin/htpasswd
[root@localhost conf]# rpm -qf `which htpasswd` httpd-2.2.3-43.el5
[root@localhost conf]# htpasswd -c /usr/local/nginx/conf/.htpasswd n1 New password:
Re-type new password: Adding password for user n1
[root@localhost conf]# htpasswd /usr/local/nginx/conf/.htpasswd n2 New password:
Re-type new password: Adding password for user n2
[root@localhost conf]# cat .htpasswd n1:xA0Jx3dx/8.oE n2:FlQ41ysXnHIPM
重启nginx: kill -HUP pid
打开浏览器,访问页面,如果出现验证的提示,就OK了。
=================== Rewrite ----------
URL 的 Rewrite,就是 URL 重写。 index.html index.jsp asp?asdhka903249871fsda 伪静态化 重定向 --> 静态页面 index.html /htdocs/ww1/index.html
location ~ /index\\.html
写在虚拟主机里:
location ~ /index\\.html { deny all; }
写完了别忘了重启服务。
location ~ /index\\.html { return 404; }
location ~ /.*\\.html$ { return 404; }
[root@localhost ww1]# pwd /htdocs/ww1
[root@localhost ww1]# ls index.html
[root@localhost ww1]# echo 123 > 123.html [root@localhost ww1]# echo 456 > 456.html
location ~ /123\\.html {
rewrite ^/123\\.html$ http://ww1.nginx.com/456.html; }
index.jsp asp?asdhka903249871fsda index.jsp\\?.*
================================ 反向代理+负载均衡
软件 7层 负载均衡:nginx L7SW( layer 7 )
配置nginx:
http { ......
upstream uplook { #定义一个 server_pool,里面有一组服务器 server 192.168.7.202; #这是3个apache的ip server 192.168.7.203; server 192.168.7.204; } server {
listen 80; location / {
proxy_pass http://uplook;
proxy_next_upstream http_500 http_502 http_503 invalid_header;
include /usr/local/nginx/conf/proxy.conf; } ...
[root@localhost conf]# vim proxy.conf proxy_redirect off;
error timeout
proxy_set_header Host $host; #设置由后端服务器获取用户的主机名
proxy_set_header X-Real_IP $remote_addr; #设置后端服务器获取用户的真实ip地址 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; #设置有后端服务器获取代理者的真实ip
client_body_buffer_size 128k; #用于指定客户端请求主体缓冲区大小 proxy_connect_timeout 90; #后端服务器连接的超时时间 proxy_send_timeout 90; #后端服务器的数据传回时间 proxy_read_timeout 90; #nginx从代理的后端服务器获取信息的时间 proxy_buffer_size 4k; #缓冲区的大小 proxy_buffers 4 32k; #缓冲区的数量和大小
proxy_busy_buffers_size 64k; #系统繁忙的时候,能够使用的缓冲区大小 proxy_temp_file_write_size 64k; #指定代理缓存文件的大小
[root@localhost nginx]# ./sbin/nginx -t
这种反向代理的方式是 轮询:
upstream uplook { #定义一个 server_pool,里面有一组服务器 server 192.168.7.202; #这是3个apache的ip server 192.168.7.203; server 192.168.7.204; }
这种反向代理的方式是 设置权重值,默认是1,权重值越高分配的请求越多 upstream uplook {
server 192.168.7.202 weight=1; server 192.168.7.203 weight=2; server 192.168.7.204 weight=3; }
这种反向代理的方式是 ip_hash; upstream uplook { ip_hash;
server 192.168.7.202; server 192.168.7.203; server 192.168.7.204; } 1
这种反向代理的方式是 轮询:
upstream uplook { #定义一个 server_pool,里面有一组服务器 server 192.168.7.202; #这是3个apache的ip server 192.168.7.203; server 192.168.7.204; }
这种反向代理的方式是 设置权重值,默认是1,权重值越高分配的请求越多 upstream uplook {
server 192.168.7.202 weight=1; server 192.168.7.203 weight=2; server 192.168.7.204 weight=3; }
这种反向代理的方式是 ip_hash; upstream uplook { ip_hash;
server 192.168.7.202; server 192.168.7.203; server 192.168.7.204; } 1
正在阅读:
Web服务器nginx虚拟主机与反向代理06-25
中国历史地名对照表02-28
四阶段法的应用实例 - 图文03-20
茸茸动物日记11-21
应用写作模拟试题参考答案(一)111-05
杰克&183;韦尔奇领导秘诀105-15
工程经济学第一次作业 -11-26
市政工程施工图识读05-23
党政一把手的“较量”:县长最易被书记架空09-19
解方程易错题03-10
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 反向
- 虚拟主机
- 服务器
- 代理
- nginx
- Web
- 苏教版七上第一节《我们周围的生物》word教案 - 图文
- 基于单片机的烟雾报警器设计
- 初级会计实务题库(6)
- 1979-2013普利茨克奖获得者 11级1班石厚波 - 图文
- 中医经典竞赛题库(黄帝内经、伤寒论)参考 答案
- 现代民营医院管理集团总经理最新最全面的工作资料
- 培智学生动作康复教案
- 2012中招语文分类汇编8
- WT2000金相检验软件系统说明2010 - 图文
- 试析我国宪法对私有财产权的保护
- 模板方案 - 图文
- 热力发电厂试卷习题及答案
- 三苏祠 导游词
- 家长会主持人发言稿 (共五篇)
- 甘洛县马达二级电站 - 图文
- 应用不等式解决方案设计型问题
- 第二章 相互作用 - 图文
- 血防总结
- 2019版高考地理大一轮复习第一部分第二单元从地球圈层看地理环境
- 傣族竹楼的文化内涵