nginx 配置文件
Day44:
2.Nginx3大主要功能
1)网页服务:自身是静态Web服务,
apache,lighttpd,IIS
还支持动态Web服务
PHP(fastcgi_pass)
JAVA(proxy_pass)
Python(uwsgi_pass)
==================================
memcache(memcache_pass)
......
2)负载均衡\反向代理
haproxy,lvs,F5,netscaler
只支持http,现在tcp/udp。
3)缓存服务器
squid,varnish
1)yum install nginx -y(rpm包,自动解决所有依赖软件)
简单,没法定制。
2)rpm -ivh rpm包(自己解决所有依赖软件)
简单,没法定制,没法自动解决所有依赖软件
3)编译安装(c语言)
可以定制,编译过程复杂,时间长。
./configure 配置
make 编译
make install 安装
4)利用源码制作符合企业需求的rpm软件包,放到yum仓库里,最后yum安装。
简单,可以随意定制。
rpm包定制
http://blog.oldboyedu.com/autodeploy-rpm/
yum仓库搭建
http://blog.oldboyedu.com/autodeploy-yum/
8.Nginx安装
两种安装方法:
yum安装:
epel源:版本低。
nginx官方源:版本高。
编译安装:1、编译讲的多。2、练习编译过程
8.1 配置官方源yum安装
[root@web ~]# vim /etc/yum.repos.d/nginx.repo
[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/7/$basearch/
gpgcheck=0
enabled=1
[root@web01 ~]# rpm -qa nginx
nginx-1.16.0-1.el7.ngx.x86_64
[root@web01 ~]# systemctl start nginx
[root@web01 ~]# systemctl enable nginx
[root@web01 ~]# systemctl status nginx
[root@web01 ~]# netstat -lntup|grep nginx
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 8509/nginx: master
8.2 编译安装(和8.1二选一)
useradd nginx -u 1112 -s /sbin/nologin -M
下载:
mkdir -p /server/tools
cd /server/tools
wget http://nginx.org/download/nginx-1.16.0.tar.gz
#安装依赖。
yum install pcre pcre-devel -y
yum install openssl openssl-devel -y #https加密用他。
#编译安装步骤
tar xf nginx-1.16.0.tar.gz
cd nginx-1.16.0/
./configure --user=nginx --group=nginx --prefix=/application/nginx-1.16.0/ --with-http_stub_status_module --with-http_ssl_module --with-pcre ##初始化
make ##编译
make install ##编译安装
ln -s /application/nginx-1.16.0/ /application/nginx ##创建软连接
echo 'export PATH=/application/nginx/sbin:$PATH' >>/etc/profile ##定义启动变量
. /etc/profile ##刷新变量文件
nginx ##启动服务(nginx -t 检查语法 nginx -s stop|reload|restart)
注意:
1)每一步结尾直接echo $?验证是否正确。返回0代表步骤正确
优化nginx配置文件:
mkdir extra
sed -n '10,17p' nginx.conf
server {
listen 80;
server_name www.etiantian.org;
location / {
root html/www;
index index.html index.htm;
}
}
sed -n '10,17p' nginx.conf >extra/01_www.conf
sed -n '18,25p' nginx.conf
server {
listen 80;
server_name bbs.etiantian.org;
location / {
root html/bbs;
index index.html index.htm;
}
}
sed -n '18,25p' nginx.conf >extra/02_bbs.conf
sed -n '26,33p' nginx.conf
server {
listen 80;
server_name blog.etiantian.org;
location / {
root html/blog;
index index.html index.htm;
}
}
sed -n '26,33p' nginx.conf >extra/03_blog.conf
cd extra/
cat 01_www.conf
server {
listen 80;
server_name www.etiantian.org;
location / {
root html/www;
index index.html index.htm;
}
}
cat 02_bbs.conf
server {
listen 80;
server_name bbs.etiantian.org;
location / {
root html/bbs;
index index.html index.htm;
}
}
cat 03_blog.conf
server {
listen 80;
server_name blog.etiantian.org;
location / {
root html/blog;
index index.html index.htm;
}
}
[root@web02 /application/nginx/conf]# sed -i '10,33d' nginx.conf
[root@web02 /application/nginx/conf]# sed -i '10 i include extra/01_www.conf;\ninclude extra/02_bbs.conf;\ninclude extra/03_blog.conf;' nginx.conf
nginx目录下文件的作用
├── conf
│ ├── fastcgi.conf #和动态服务的接口配置参数,配合php
│ ├── fastcgi.conf.default
│ ├── fastcgi_params
│ ├── fastcgi_params.default
│ ├── koi-utf
│ ├── koi-win
│ ├── mime.types #媒体类型
│ ├── mime.types.default
│ ├── nginx.conf #主配置文件
│ ├── nginx.conf.default
│ ├── scgi_params
│ ├── scgi_params.default #和动态服务的接口配置参数
│ ├── uwsgi_params
│ ├── uwsgi_params.default #和动态服务的接口配置参数,配合Python
│ └── win-utf
├── fastcgi_temp
├── html #默认站点目录。
│ ├── 50x.html
│ └── index.html #默认的首页,10.0.0.8不指定文件,默认加载index.html首页。
├── logs
│ ├── access.log #访问日志
│ ├── error.log #Nginx错误日志。
│ └── nginx.pid #进程号对应文件。
├── sbin
│ └── nginx #启动命令。
#configure参数的作用
--prefix=PATH 路径
--user=USER 用户
--group=GROUP 组
--with-pcre 伪静态
--with-http_stub_status_module 状态
--with-http_ssl_module 加密 443
1)浏览器输入www.etiantian.org
2)找LDNS-授权DNS获取到IP。
3)请求服务器发起三次握手。
4)建立http请求。
(10.0.0.8 80)
5)发起HTTP请求报文。
(4)先匹配请求的端口。
(5)然后匹配Server标签域名
(6)把对应域名下面站点目录
下的首页文件发给客户端。
(7)如果没有匹配的域名,
就把第一个虚拟机
主机发给客户端
一:什么是恶意域名解析
一般情况下,要使域名能访问到网站需要两步,第一步,将域名解析到网站所在的主机,第二步,在web服务器中将域名与相应的网站绑定。但是,如果通过主机IP能直接访问某网站,那么把域名解析到这个IP也将能访问到该网站,而无需在主机上绑定,也就是说任何人将任何域名解析到这个IP就能访问到这个网站。
二:恶意域名解析的危害
可能您并不介意通过别人的域名访问到您的网站,但是如果这个域名是未备案域名呢?
假如那域名是不友善的域名,比如曾经指向非法网站,容易引发搜索引擎惩罚,连带IP受到牵连。即使域名没什么问题,但流量也会被劫持到别的域名,从而遭到广告联盟的封杀。
1、JAVA Web环境(企业更多)
[tomcat(jvm)]、resin、jboss、Weblogic
配合nginx proxy_pass代理功能
2、Python Web环境
配合nginx uwsgi_pass代理功能
3、PHP Web环境(也会用,二三四五线)
配合nginx fastcgi_pass代理功能
4、GO 语言环境
数据库产品:
MySQL(mariadb)、Oracle、SQL SERVER、PGSQL
单机安装LNMP