目录
1、源码安装nginx,并提供服务脚本。
2、配置基于ip地址的虚拟主机
3、配置基于端口的虚拟主机
4、配置基于域名的虚拟主机
1、源码安装nginx,并提供服务脚本。
1、源码安装会有一些软件依赖
(1)检查并安装 Nginx 基础依赖包 pcre-devel openssl-devel
# rpm -qa | egrep 'pcre-devel | openssl-devel'
(2)安装 Nginx 所需的 pcre 库 正则支持
pcre 的全称为 perl compatible regular expressions,中文译为 “ perl 兼容正则表达式”,官方站点为 http://www.pcre.org/, 安装 pere 库是为了使 Nginx 支持具备 URI 重写功能的 rewrite 模块,如果不安装 pere 库,则 Nginx 无法使用 rewrite 模块功能,Nginx的 rewrite 模块功能几乎是企业应用必须的。
yum install -y pcre-devel
(3) 安装 openssl-devel 加密支持
Nginx 在使用 HTTPS 服务的时候要用到此模块,如果不安装 openssl 相关包,安装Nginx 的过程中会报错。
yum install -y openssl-devel
(4)安装编译软件
yum install gcc gcc-c++ make -y
2、 nginx获取
RPM包获取:Index of /packages/
源码包获取:Index of /download/
(1)这里我选择的版本为nginx-1.22.0,通过wget安装
wget http://nginx.org/download/nginx-1.22.0.tar.gz
(2)解压nginx-1.22.0到指定文件夹
[root@node3 ~]# tar xf nginx-1.22.0.tar.gz -C /usr/local/src/
[root@node3 ~]# cd /usr/local/src/nginx-1.22.0/
(3)创建用户nginx 此处只设置便于不登录即可
useradd nginx -u 996 -r -g 1000 -s /sbin/nologin -c "nginx user"
(4)开始安装 Nginx
[root@localhost nginx-1.22.0]# ./configure --prefix=/etc/nginx --sbin-path=/usr/sbin/nginx --modules-path=/usr/lib64/nginx/modules --conf-path=/etc/nginx/nginx.conf --error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log --pid-path=/var/run/nginx.pid --lock-path=/var/run/nginx.lock --user=nginx --group=nginx --with-http_addition_module --with-http_auth_request_module --with-http_dav_module --with-http_flv_module --with-http_gunzip_module --with-http_gzip_static_module --with-http_mp4_module --with-http_random_index_module --with-http_realip_module --with-http_secure_link_module --with-http_slice_module --with-http_ssl_module --with-http_stub_status_module --with-http_sub_module --with-http_v2_module --with-mail --with-mail_ssl_module --with-stream --with-stream_realip_module --with-stream_ssl_module --with-stream_ssl_preread_module
(5)编译安装
make && make install
(6) 为nginx提供SysV init脚本
[root@node3 nginx-1.22.0]# vim /usr/lib/systemd/system/nginx.service
[Unit]
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/nginx/logs/nginx.pid
ExecStartPre=/usr/local/nginx/sbin/nginx -t -c /usr/local/nginx/conf/nginx.conf
ExecStart=/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s QUIT $MAINPID
PrivateTmp=true
[Install]
WantedBy=multi-user.target
重新加载启动脚本并启动服务
测验通过本机测试
显示此网页访问成功
2、配置基于ip地址的虚拟主机
1)需要先准备环境,创建站点目录
mkdir /usr/share/nginx/html/{bbs,blog}
2)创建主页文件
echo bbs test page > /usr/share/nginx/html/bbs/index.html
echo blog test page > /usr/share/nginx/html/blog/index.html
3)为网卡添加一个新的IP地址
nmcli connection modify ens32 +ipv4.addresses 192.168.80.151/24 ipv4.method manual autoconnect yes
nmcli connection up ens32
3)去默认的配置文件配置基于ip地址的配置文件
vim /etc/nginx/conf.d/vhost.conf
server {
listen 192.168.80.130:80;
server_name localhost;
access_log /var/log/nginx/bbs_access.log main;
error_log /var/log/nginx/bbs_error.log;
location / {
root /usr/share/nginx/html/bbs;
index index.html index.htm;
}
}
server {
listen 192.168.80.151:80;
server_name localhost;
access_log /var/log/nginx/blog_access.log main;
error_log /var/log/nginx/blog_error.log;
location / {
root /usr/share/nginx/html/blog;
index index.html index.htm;
}
}
检查语法
nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
重启nginx并测试
3、配置基于端口的虚拟主机
vim /etc/nginx/conf.d/vhost.conf
server {
listen 81;
server_name localhost;
access_log /var/log/nginx/bbs_access.log main;
error_log /var/log/nginx/bbs_error.log;
location / {
root /usr/share/nginx/html/bbs;
index index.html index.htm;
}
}
server {
listen 82;
server_name localhost;
access_log /var/log/nginx/blog_access.log main;
error_log /var/log/nginx/blog_error.log;
location / {
root /usr/share/nginx/html/blog;
index index.html index.htm;
}
}
重启服务并浏览器访问
4、配置基于域名的虚拟主机
vim /etc/nginx/conf.d/vhost.conf
server {
listen 80;
server_name bbs.openlab.cn;
access_log /var/log/nginx/bbs_access.log main;
error_log /var/log/nginx/bbs_error.log;
location / {
root /usr/share/nginx/html/bbs;
index index.html index.htm;
}
}
server {
listen 80;
server_name blog.openlab.cn;
access_log /var/log/nginx/blog_access.log main;
error_log /var/log/nginx/blog_error.log;
location / {
root /usr/share/nginx/html/blog;
index index.html index.htm;
}
}
为本地dns服务器做解析
vim /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.80.130 bbs.openlab.cn blog.openlab.cn