Nginx编译安装
1、编译前准备
通过yum安装编译需要的工具。
如:gcc、gcc-c++、make等。
如下为了安装全面。
[root@ysz ~]# yum install -y gcc patch libffi-devel python-devel zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel openssl openssl-devel
执行完毕如图:
2、编译安装的基本流程
1.1 、解压缩,预编译
解压文件压缩包后会在解压后的目录中存在一个名为configure的脚本,编译安装的第一步就是执行这个脚本。如下图:
[root@ysz ~]# tar -zxvf nginx-1.16.1.tar.gz #解压源码包。
1.2、常用的./configure常用参数如下
./configure常用参数解释:
-help #显示帮助信息并退出
-prefix=/dir #指定安装位置,如果不指定则默认安装,默认路径为/usr/local等
-build #就是你正在使用的机器,查看本机使用的可以在configure目录下执行./config.guess
-host #就是编译好要运行应用的主机
-target #编译好的程序可以处理其他的平台
如下预编译nginx-1.16.1源码。
[root@ysz nginx-1.16.1]# ./configure --prefix=/usr/local/nginx --with-http_ssl_module --with-http_stub_status_module
执行后如图:
1.3、make && make install
上面预编译成功后,执行make命令,将软件源代码编译为计算机可直接识别的机器语言。
make install命令来进行最后的安装,make会依据Makefile这个文件里面关于install的选项,将之前所编译完成的数据安装到默认的目录中,就完成了安装。
[root@ysz nginx-1.16.1]# make && make install
3、安装完成启动Nginx
3.1、进入安装的目录
进入sbin下启动Nginx
[root@ysz nginx-1.16.1]# cd /usr/local/nginx/
[root@ysz nginx]# ls
conf html logs sbin
[root@ysz nginx]# cd sbin/
[root@ysz sbin]# ls
nginx
[root@ysz sbin]# ./nginx #启动Nginx
[root@ysz sbin]# ss -ntl | grep 80 #查看80端口是否启动
LISTEN 0 128 *:80 *:*
[root@ysz sbin]#
#nginx常用参数
[root@ysz sbin]#./nginx -s stop #关闭
[root@ysz sbin]#./nginx -s reload #重新加载
[root@ysz sbin]#./nginx -t #检测nginx.conf语法是否正确
浏览器访问效果图:
*注:访问不了检查firewwalld,selinux,iptables
4、定义Nginx主机
Nginx安装完成之后会有一个主机,配置文件文件存在于:/usr/local/nginx/conf/nginx.conf下。
如下:
[root@ysz ~]# vim /usr/local/nginx/conf/nginx.conf
worker_processes 1;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
server { #每个server代表一个网站
listen 80; #监听的端口
server_name localhost;#提供的域名,如www.baidu.com
location / { #控制网站访问路径
root html; #存放网页代码的路径
index index.html index.htm; #默认访问页面
}
error_page 500 502 503 504 /50x.html; #指定错误页面
location = /50x.html {
root html;
}
}
}
include /usr/nginx/conf.d/*.conf; #包含/usr/nginx/conf.d/目录下所有以.conf结尾的文件,可在里面定义虚拟主机
4.1、Nginx虚拟主机配置
如果每台linux服务器只运行了一个网站,造成了硬件资源浪费。虚拟主机就是将一台服务器分割成多个“虚拟服务器”,每个站点使用各自的硬盘空间,由于省资源,省钱,众多网站都使用虚拟主机来部署网站。
-
虚拟主机的概念就是在web服务里的一个独立的网站站点,这个站点对应独立的域名(IP),具有独立的程序和资源目录,可以独立的对外提供服务。
-
这个独立的站点配置是在nginx.conf中或/usr/nginx/conf.d/*.conf;使用server{}代码块标签来表示一个虚拟主机。
-
Nginx支持多个server{}标签,即支持多个虚拟主机站点。(为了方便管理,我们将虚拟主机定义至/usr/nginx/conf.d/下)
例如定义一个虚拟主机,监听8000端口。
[root@ysz nginx]# echo "include /usr/nginx/conf.d/*.conf" >>/usr/local/nginx/conf/nginx.conf #追加一条incl配置文件中
,监听8000端口。
[root@ysz nginx]# echo "include /usr/nginx/conf.d/*.conf" >>/usr/local/nginx/conf/nginx.conf #追加一条incl配置文件中