nigix入门与实战
一 源代码下载&安装
1.安装、启动
a.yum install nigix
b.编译安装
1 1.下载源码包
2 wget -c https://nginx.org/download/nginx-1.12.0.tar.gz
3 2.解压缩源码
4 tar -zxvf nginx-1.12.0.tar.gz
5 3.配置,编译安装
6 ./configure --prefix=/opt/nginx1-12/ --with-http_ssl_module --with-http_stub_status_module
7 make && make install
8 4.启动nginx,进入sbin目录,找到nginx启动命令
9 cd sbin
10 ./nginx #启动
11 ./nginx -s stop #关闭
12 ./nginx -s reload #重新加载
2.启动后检测
netstat -tunlp |grep 80
curl -I 127.0.0.1
#如果访问不了,检查selinux,iptables
二 部署一个WEB站点
nginx默认站点是Nginx目录下的html文件夹,这里可以从nginx.conf中查到
location /{
root html; #这里是默认的站点html文件夹,也就是 /opt/nginx1-12/html/文件夹下的内容
index index.html index.htm; #站点首页文件名是index.html
}
如果要部署网站业务数据,只需要把开发好的程序全放到html目录下即可
[root@oldboy_python /tmp 11:34:52]#ls /opt/nginx1-12/html/
index.html jssts.jpeg lhy.mp4 man.jpg wget-log
因此只需要通过域名/资源,即可访问
mytb.com
三 nigix的目录结构
[root@oldboy_python /opt/nginx1-12 11:44:02]#ls
client_body_temp conf fastcgi_temp html logs proxy_temp sbin scgi_temp static uwsgi_temp
- conf 存放nginx所有配置文件的目录,主要nginx.conf
- html 存放nginx默认站点的目录,如index.html、error.html等
- logs 存放nginx默认日志的目录,如error.log access.log
- sbin 存放nginx主命令的目录,sbin/nginx
四 基于域名的nigix虚拟主机实战
如果每台linux服务器只运行了一个小网站,那么人气低,流量小的草根站长需要承担高额的服务器租赁费,也造成了硬件资源浪费。
虚拟主机就是将一台服务器分割成多个“虚拟服务器”,每个站点使用各自的硬盘空间,由于省资源,省钱,众多网站都使用虚拟主机来部署网站。
虚拟主机的概念就是在web服务里的一个独立的网站站点,这个站点对应独立的域名(IP),具有独立的程序和资源目录,可以独立的对外提供服务。
这个独立的站点配置是在nginx.conf中使用server{}代码块标签来表示一个虚拟主机。
Nginx支持多个server{}标签,即支持多个虚拟主机站点。
虚拟主机类型
基于域名的虚拟主机 通过不同的域名区分不同的虚拟主机,是企业应用最广的虚拟主机。
基于端口的虚拟主机
通过不同的端口来区分不同的虚拟主机,一般用作企业内部网站,不对外直接提供服务的后台,例如www.pythonav.cn:9000
基于IP的虚拟主机
通过不同的IP区分不同的虚拟主机,此类比较少见,一般业务需要多IP的常见都会在负载均衡中绑定VIP
nginx可以自动识别用户请求的域名,根据不同的域名请求服务器传输不同的内容,只需要保证服务器上有一个可用的ip地址,配置好dns解析服务。
/etc/hosts是linux系统中本地dns解析的配置文件,同样可以达到域名访问效果
1.先部署一个域名为mytb.com的网站
a.先在本地搞一个测试域名,就是编辑 hosts文件
hosts文件在C:\Windows\System32\drivers\etc\hosts,打开hosts文件,在页末写下如下对应关系:
10.0.0.10 mytb.com
b.然后在nginx.conf里面修改配置,如下
server {
listen 80;
server_name mytb.com;
2.首先打开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"';
3.网站文件根路径配置
location / {
root html;
index index.html index.htm;
}
4.拒绝访问一个功能
location / {
root html;
index index.html index.htm;
deny 你要拒绝的ip;
}
5.错误页面的配置
这个40x.html是放在 html文件夹下的 /opt/nginx1-12/html/网站根路径
error_page 404 /40x.html;
6.配置文件设置好了之后,检测你的nginx.conf语法是否正确,使用-t参数检测语法是否正确
[root@s13linux /opt/nginx112 22:31:08]$./sbin/nginx -t
nginx: the configuration file /opt/nginx112//conf/nginx.conf syntax is ok
nginx: configuration file /opt/nginx112//conf/nginx.conf test is successful
7.还得启动nginx,修了nginx.conf需要重新启动或者热加载
sbin/nginx 直接敲命令是启动
sbin/nginx -t 检测语法
sbin/nginx -s reload 热加载
sbin/nginx -s stop 关闭nginx
tail -f logs/access.log 查看日志
注:每次更改配置文件后都须重新热加载nginx
***nginx多域名虚拟主机实现***
1.在上述实现mytb.com网站的基础上配置另一个域名为myjd.com的网站
a.在C:\Windows\System32\drivers\etc\hosts,打开hosts文件,在页末写下如下对应关系:
10.0.0.10 myjd.com
b.在nginx.conf里面添加一个server{} 标签段,填入以下内容(注意!!!写在另一个server{}标签以外,且在http{}标签以内)
server {
listen 80;
server_name myjd.com;
location / {
root html/jd/; #html模板文件的路径,在jd文件夹内新建index.html文件,用于展示myjd.com页面
index index.html;
}
}
2.重新加载nginx
3.测试mytb.com myjd.db网页