一、源码安装
第一步:解压nginx源码包到/opt目录下,自定义配置然后编译安装
[root@server opt]# tar xzfv nginx-1.12.2.tar.gz
[root@server opt]# cd nginx-1.12.2/
[root@server nginx-1.12.2]#./configure \
--prefix=/usr/local/nginx \ <-----指定安装目录
--user=nginx \ <-----指定管理用户名
--group=nginx \ <-----指定管理组名
--with-http_stub_status_module <---流量统计一定要加上这个模块
[root@server nginx-1.12.2]#make && make install
第二步:为nginx程序添加一个nginx用户,把nginx命令软链接到系统环境变量下便于使用和管理
[root@server nginx-1.12.2]# useradd -M -s /sbin/nologin nginx
[root@server nginx-1.12.2]#
[root@server nginx-1.12.2]#
[root@server nginx-1.12.2]# ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/
第三步:编写systemctl启动脚本
[root@server conf]# vim /lib/systemd/system/nginx.service
[Unit]
Description=nginx
After=network.target
[Service]
Type=forking
PIDFile =/usr/local/nginx/logs/nginx.pid
ExecStart=/usr/local/nginx/sbin/nginx
ExecReload=/usr/bin/kill -S HUP $MAINPID
ExecStop=/usr/bin/kill -S QUIT $MAINPID
PrivateTmp=true
[Install]
WantedBy=multi-user.target
第四步:修改权限,别人不能启动
[root@server conf]# chmod 754 /lib/systemd/system/nginx.service
第五步:yum安装elink软件包,该软件包可以直接在linux上测试nginx网页
[root@server nginx-1.12.2]# yum -y install elinks
已加载插件:fastestmirror
Loading mirror speeds from cached hostfile
* base: mirrors.aliyun.com
* extras: mirrors.aliyun.com
* updates: mirrors.aliyun.com
正在解决依赖关系
--> 正在检查事务
---> 软件包 elinks.x86_64.0.0.12-0.37.pre6.el7.0.1 将被 安装
二、流量统计
第一步:修改nginx配置文件,在server配置块里加入流量统计模块的配置
vim /usr/local/nginx/conf/nginx.conf
server {
listen 192.168.245.120:80;
server_name www.cloud.com:80;
charset utf-8;
access_log logs/www.cloud.com.access.log;
location / {
root /var/www/html/cloud;
index index.html index.htm;
}
location ~/status {
stub_status on; <----开启流量统计
access_log off; <----关闭日志
}
第二步:重启nginx服务
[root@server conf]# systemctl restart nginx.service
第三步:客户机上验证
访问地址后面要加上/status:http://192.168.245.120/status
三、虚拟主机
1、基于不同域名
第一步:在nginx配置文件中,新添加一个server配置块
[root@server conf]# vim /usr/local/nginx/conf/nginx.conf
server {
listen 80;
server_name www.yjs.com; <---指定域名
charset utf-8;
access_log logs/www.yjs.com.access.log; <---指定访问该域名时的访问日志
location / {
root /var/www/html/yjs; <---指定主页站点
index index.html index.htm;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
server {
listen 80;
server_name www.cloud.com; <---指定域名
charset utf-8;
access_log logs/www.cloud.com.access.log; <---指定访问该域名时的访问日志
location / {
root /var/www/html/cloud; <---指定主页站点
index index.html index.htm;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
第二步:创建两个域名各自的主页站点,并创建各自的主页
[root@server conf]# mkdir -p /var/www/html/yjs
[root@server conf]# mkdir -p /var/www/html/cloud
[root@server conf]#
[root@server conf]#
[root@server conf]# echo "this is yjs" > /var/www/html/yjs/index.html
[root@server conf]# echo "this is cloud" > /var/www/html/cloud/index.html
第三步:修改DNS的区域配置文件
[root@server conf]# vim /etc/named.rfc1912.zones
zone "cloud.com" IN { <---指定域名
type master;
file "cloud.com.zone"; <---指定区域数据文件
allow-update { none; };
};
zone "yjs.com" IN { <---指定域名
type master;
file "yjs.com.zone"; <---指定区域数据文件
allow-update { none; };
};
第四步:配置区域数据文件,两个域名都指向192.168.245.120这个地址
[root@server conf]# cd /var/named
[root@server named]# ls
cloud.com.zone data dynamic named.ca named.empty named.localhost named.loopback slaves
[root@server named]# cp -p cloud.com.zone yjs.com.zone
[root@server conf]# vim /var/named/cloud.com.zone
$TTL 1D
@ IN SOA @ rname.invalid. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS @
A 127.0.0.1
www IN A 192.168.245.120
第五步:重启域名服务
[root@server named]# systemctl restart named
第六步:检查nginx配置文件语法并启动nginx
[root@server conf]# nginx -t
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
[root@server conf]#
[root@server conf]#
[root@server conf]# systemctl restart nginx.service
第七步:客户机上访问不同域名,出现不同页面
2、基于不同端口
第一步:修改nginx配置文件,修改server配置块
[root@server conf]# vim /usr/local/nginx/conf/nginx.conf
server {
listen 192.168.245.120:80;
server_name www.cloud.com;
charset utf-8;
access_log logs/www.cloud.com.access.log;
location / {
root /var/www/html/cloud;
index index.html index.htm;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
server {
listen 192.168.245.120:8080; <---监听地址一样,端口设置8080
server_name www.cloud.com:8080; <---访问的域名也要加上8080
charset utf-8;
access_log logs/www.cloud8080.com.access.log; <---指定访问日志
location / {
root /var/www/html/cloud8080; <---指定站点
index index.html index.htm;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
第二步:创建访问8080端口的网页站点和网页内容
[root@server conf]# mkdir -p /var/www/html/cloud8080
[root@server conf]#
[root@server conf]#
[root@server conf]# echo "this is cloud 8080" > /var/www/html/cloud8080/index.html
第三步:检查nginx语法并重启服务
[root@server conf]# nginx -t
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
[root@server conf]#
[root@server conf]# systemctl restart nginx.service
第四步:客户机上验证访问8080口时是另外一个页面
3、基于不同ip不同域名
即不同ip指向不同的域名指向不同的网页。
虚拟机新加一块网卡ens36:ip为192.168.245.130
第一步:新建一个区域数据文件,该域名的ip为192.168.245.130
[root@server ~]# vim /var/named/yjs.com.zone
$TTL 1D
@ IN SOA @ rname.invalid. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS @
A 127.0.0.1
www IN A 192.168.245.130
第二步:重启DNS服务
[root@server ~]# systemctl restart named
第三步:客户机上解析成功
第四步:修改nginx配置文件
[root@server ~]# vim /usr/local/nginx/conf/nginx.conf
server {
listen 192.168.245.130:80; <---指定ip
server_name www.yjs.com:80; <---指定域名
charset utf-8;
access_log logs/www.yjs.com.access.log; <---指定访问日志
location / {
root /var/www/html/yjs; <---指定站点目录
index index.html index.htm;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
server {
listen 192.168.245.120:80; <---指定ip
server_name www.cloud.com:80; <---指定域名
charset utf-8;
access_log logs/www.cloud.com.access.log; <---指定访问日志
location / {
root /var/www/html/cloud; <---指定站点目录
index index.html index.htm;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
第五步:进入各自站点编写各自的主页内容
[root@server conf]# vim /var/www/html/yjs/index.html
[root@server conf]# echo "this is yjs web" > /var/www/html/yjs/index.html
[root@server conf]#
[root@server conf]#
[root@server conf]# vim /var/www/html/cloud/index.html
[root@server conf]# echo "this is cloud web" > /var/www/html/cloud/index.html
第六步:检查nginx语法并重启服务
[root@server ~]# cd /usr/local/nginx/conf/
[root@server conf]# nginx -t
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
[root@server ~]# systemctl restart nginx.service
第七步:客户机上访问验证