1、源码安装nginx,并提供服务脚本
源码包的获取:http://nginx.org/download/
实验环境:和企业环境类似,关闭防火墙,禁用selinux,使用静态IP地址
环境准备:
步骤一:关闭防火墙和selinux
# 设置为开机不启动
[root@node01 ~]# systemctl disable firewalld.service
# 临时停止防火墙
[root@node01 ~]# systemctl stop firewalld.service
# 手动停止selinux,可以不用重启动虚拟机
[root@node01 ~]# setenforce 0
[root@node01 ~]# vim /etc/selinux/config
[root@node01 ~]# sestatus
SELinux status: disabled
# 检查状态
[root@node01 ~]# systemctl is-active firewalld.service
unknown
[root@node01 ~]# getenforce
Disabled
步骤二:配置静态IP地址
# 修改为静态地址,注意子网掩码
[root@node01 ~]# nmcli connection modify ens32 ipv4.method manual ipv4.addresses 192.168.11.110 ipv4.gateway 192.168.11.2 ipv4.dns 8.8.8.8 connection.autoconnect yes
# 启动网卡
[root@node01 ~]# nmcli connection up ens32
步骤三:安装常用软件
[root@node01 ~]# yum install -y bash-completion tree lrzsz vim net-tools.x86_64 unzip net-tools lsof wget
安装Nginx步骤:
步骤一:安装Nginx所需的pcre库
[root@node01 ~]# yum install pcre-devel -y
步骤二:安装依赖包
[root@node01 ~]# yum -y install gc gcc gcc-c++ zlib-devel openssl-devel
步骤三:创建用户和用户组
[root@node01 ~]# groupadd nginx
[root@node01 ~]# useradd -s /sbin/nologin -g nginx -M nginx
步骤四:上传文件并解压到指定目录
Tengine是由淘宝网发起的Web服务器项目。它在Nginx的基础上,针对大访问量网站的需求,添加了
很多高级功能和特性。Tengine的性能和稳定性已经在大型的网站如淘宝网,天猫商城等得到了很好的
检验。它的最终目标是打造一个高效、稳定、安全、易用的Web平台
[root@node01 ~]# wget http://tengine.taobao.org/download/tengine-2.2.0.tar.gz
[root@node01 ~]# tar xf tengine-2.2.0.tar.gz -C /usr/local/src/
[root@node01 ~]# cd /usr/local/src/tengine-2.2.0/
[root@node01 tengine-2.2.0]#
[root@node01 tengine-2.2.0]# ls
AUTHORS.te CHANGES.cn conf docs man README tests
auto CHANGES.ru configure html modules README.markdown THANKS.te
CHANGES CHANGES.te contrib LICENSE packages src
步骤五:编译安装
./configure --user=nginx --group=nginx \
--prefix=/usr/local/src/nginx \
--with-http_stub_status_module \
--with-http_ssl_module \
--with-http_gzip_static_module
步骤六:make && make install
[root@node01 tengine-2.2.0]# make && make install
步骤七:修改目录权限
[root@node01 tengine-2.2.0]# chown -R nginx.nginx /src/tengine-2.2.0/
服务脚本:
[root@node01 ~]# cat /usr/lib/systemd/system/nginx.service
t]
Description=nginx - high performance web server
Documentation=http://nginx.org/en/docs/
After=network.target remote-fs.target nss-lookup.target
[Service]
Type=forking
PIDFile=/usr/local/src/nginx/logs/nginx.pid
ExecStartPre=/usr/local/src/nginx/sbin/nginx -t -c /usr/local/src/nginx/conf/nginx.conf
ExecStart=/usr/local/src/nginx/sbin/nginx -c /usr/local/src/nginx/conf/nginx.conf
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s QUIT $MAINPID
PrivateTmp=true
[Install]
WantedBy=multi-user.target
修改了PID文件
# 重新创建了一个PID文件
touch /usr/local/src/nginx/logs/nginx.pid
脚本测试:
[root@node01 ~]# systemctl daemon-reload
[root@node01 ~]# systemctl restart nginx.service
[root@node01 ~]#
[root@node01 ~]#
[root@node01 ~]# ss -lntup | grep 80
tcp LISTEN 0 128 *:80 *:* users:(("nginx",pid=13454,fd=6),("nginx",pid=13452,fd=6))
tcp LISTEN 0 80 [::]:3306 [::]:* users:(("mysqld",pid=1202,fd=28))
[root@node01 ~]#
[root@node01 ~]#
[root@node01 ~]# systemctl stop nginx.service
[root@node01 ~]#
[root@node01 ~]#
[root@node01 ~]# ss -lntup | grep 80
tcp LISTEN 0 80 [::]:3306 [::]:* users:(("mysqld",pid=1202,fd=28))
2、配置基于域名的虚拟主机
步骤一:进入默认主页路径
Nginx的默认路径和Apache的不一样/usr/local/src/nginx/html/
[root@node01 ~]# cd /usr/local/src/nginx/html/
[root@node01 html]# ll
total 8
-rw-r--r-- 1 root root 539 Apr 16 18:07 50x.html
-rw-r--r-- 1 root root 555 Apr 16 18:07 index.html
步骤二:备份原来默认主页并提供方一个测试页
[root@node01 html]# cp index.html{,.bak}
[root@node01 html]# vim index.html
<head>
"utf-8">