55-Ubuntu-NGINX 编译安装

在这里插入图片描述

apt install iproute2 ntpdate tcpdump telnet traceroute nfs-kernel-server nfs-common lrzsz tree openssl libssl-dev libpcre3 libpcre3-dev zlib1g-dev ntpdate tcpdump telnet traceroute gcc openssh-server iotop unzip zip make -y

nginx官方下载地址


nginx/1.16.1 云盘下载(请优先支持官方下载)

在这里插入图片描述

实验步骤:

[root@U8 ~]# cd /usr/local/src/
[root@U8 src]# ll
total 1024
drwxr-xr-x  3 root root    4096 Dec 30 20:33 ./
drwxr-xr-x 10 root root    4096 Dec 27 08:43 ../
-rw-r--r--  1 root root 1032630 Dec 30 18:49 nginx-1.16.1.tar.gz

#解压下载好的nginx包
[root@U8 src]# tar xf nginx-1.16.1
[root@U8 src]# cd nginx-1.16.1/

#编译安装,并添加自定义模块
[root@U8 src]# ./configure --prefix=/apps/nginx --user=nginx --group=nginx --with-http_ssl_module --with-http_v2_module --with-http_realip_module --with-http_stub_status_module  --with-http_gzip_static_module --with-pcre --with-stream --with-stream_ssl_module --with-stream_realip_module

[root@U8 src]# make -j 4 && make install

#创建nginx用户
[root@U8 src]# useradd  -u 66 -r -s /sbin/nologin nginx

#查看编译安装后生成的目录
[root@U8 src]# tree -d  /apps/
/apps/
└── nginx
    ├── client_body_temp
    ├── conf
    ├── fastcgi_temp
    ├── html
    ├── logs
    ├── proxy_temp
    ├── sbin
    ├── scgi_temp
    └── uwsgi_temp

10 directories

#修改目录属主属组为nginx
[root@U8 src]# chown -R nginx:nginx /apps/nginx/

查看nginx版本:

[root@U8 src]# /apps/nginx/sbin/nginx  -V

创建nginx⾃启动脚本:

[root@U8 src]# vim /lib/systemd/system/nginx.service

[Unit]
Description=The nginx HTTP and reverse proxy server
After=network.target remote-fs.target nss-lookup.target

[Service]
Type=forking
PIDFile=/apps/nginx/logs/nginx.pid
ExecStartPre=/bin/rm -f /apps/nginx/logs/nginx.pid
ExecStartPre=/apps/nginx/sbin/nginx -t
ExecStart=/apps/nginx/sbin/nginx
ExecReload=/bin/kill -s HUP $MAINPID
KillSignal=SIGQUIT
TimeoutStopSec=5
KillMode=process
PrivateTmp=true

[Install]
WantedBy=multi-user.target

[root@U8 src]# vim /apps/nginx/conf/nginx.conf
#取消该行的 # 注释
pid        logs/nginx.pid; 

启动nginx⾃启动脚本:

[root@U8 src]# systemctl daemon-reload
[root@U8 src]# systemctl restart nginx

设置开机自启

[root@U8 src]# systemctl enable --now nginx
[root@U8 src]# systemctl status nginx
● nginx.service - The nginx HTTP and reverse proxy server
   Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
   Active: active (running) since Mon 2019-12-30 21:54:46 CST; 1min 10s ago
 Main PID: 9911 (nginx)
    Tasks: 2 (limit: 1685)
   CGroup: /system.slice/nginx.service
           ├─9911 nginx: master process /apps/nginx/sbin/nginx
           └─9913 nginx: worker process
………………………………………………………………………

浏览器访问nginx默认界面

在这里插入图片描述


添加PATH变量

[root@U8: ~]# vim /etc/profile.d/nginx.sh 
PATH="/apps/nginx/sbin:$PATH"
[root@U8: ~]# source /etc/profile

生成的nginx主配置文件路径:

/apps/nginx/conf/nginx.conf


[root@U8 src]# grep -v "#" /apps/nginx/conf/nginx.conf | grep -v "^$" 

worker_processes  1;                     #启动⼯作进程数数量 
pid        logs/nginx.pid;                   #events设置块
events {
    worker_connections  1024;       #单个nginx⼯作进程可以接受的最⼤并发
}
http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  65;                #⻓连接超时时间,单位是秒
    server {
        listen       80;                                #配置server监听的端⼝ 
        server_name  localhost;
        location / {
            root   html;                               #默认⻚⾯的⽬录名称
            index  index.html index.htm;
        }
        error_page   500 502 503 504  /50x.html;                    #错误⻚⾯的⽂件名称 
        location = /50x.html {
            root   html;                                #默认⻚⾯所在的⽬录
        }
    }
}

不要轻易改动nginx的主配置文件,建立子配置文件进行配置

[root@U8 src]# mkdir /apps/nginx/conf/conf.d
[root@U8 src]# touch /apps/nginx/conf/conf.d/pc.conf
[root@U8 src]# vim /apps/nginx/conf/conf.d/pc.conf 

server {
  listen 80;
  server_name dushansao.com;             #请勿使用特殊字符
  location / {
    root /data/nginx/html/pc;
  }
}  

[root@U8 src]# mkdir -pv /data/nginx/html/pc 
mkdir: created directory '/data/nginx'
mkdir: created directory '/data/nginx/html'
mkdir: created directory '/data/nginx/html/pc'

[root@U8 src]# tree -d /data/
/data/
├── lost+found
├── nginx
│   └── html
│       └── pc
└── scripts

5 directories
[root@U8 src]# echo "dushansao PC web" > /data/nginx/html/pc/index.html

[root@U8 ~]# vim /apps/nginx/conf/nginx.conf
#添加此行至文件尾部(写入http中会影响后续试验)
include /apps/nginx/conf/conf.d/*.conf;

图示
在这里插入图片描述

#重启nginx
[root@U8 src]# systemctl reload nginx

#本机IP地址
[root@U8 pc]# ip a
...
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP g0
    link/ether 00:0c:29:8b:4c:65 brd ff:ff:ff:ff:ff:ff
    inet 192.168.124.30/24 brd 192.168.124.255 scope global eth0
    ...

修改windows hosts文件

hosts文件存放目录: C:\Windows\System32\drivers\etc

修改hosts文件添加此行虚拟机IP :
192.168.124.30 dushansao.com

#该文件默认无法修改,请设置该文件的写权限及取消仅读
在这里插入图片描述


浏览器访问

在这里插入图片描述


在这里插入图片描述


实验失败及报错的原因:

1、配置文件格式或内容编辑错误
2、配置文件或目录对nginx权限不足及属主属组非nginx
3、nginx服务未能启动或启动失败
4、请务必重启虚拟机(重启服务有时并不能生效)!

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
以下是一个简单的Ansible Playbook,用于在目标主机上编译安装Nginx: ``` --- - name: Install Nginx hosts: webserver become: true vars: nginx_version: 1.18.0 tasks: - name: Install prerequisites apt: name: [build-essential, libpcre3-dev, libssl-dev, zlib1g-dev] state: present - name: Download Nginx source get_url: url: "http://nginx.org/download/nginx-{{ nginx_version }}.tar.gz" dest: "/tmp/nginx-{{ nginx_version }}.tar.gz" - name: Extract Nginx source unarchive: src: "/tmp/nginx-{{ nginx_version }}.tar.gz" dest: "/tmp" remote_src: true - name: Configure Nginx shell: "./configure --prefix=/usr/local/nginx --with-http_ssl_module" args: chdir: "/tmp/nginx-{{ nginx_version }}" - name: Build Nginx shell: "make && make install" args: chdir: "/tmp/nginx-{{ nginx_version }}" - name: Start Nginx service: name: nginx state: started ``` 在上面的Playbook中,我们首先定义了一个变量 `nginx_version`,用于指定要安装Nginx版本。然后,我们使用 `apt`模块安装编译Nginx所需的依赖项。 接下来,我们使用 `get_url`模块从Nginx官网下载了源代码,并使用`unarchive`模块将其解压到 `/tmp`目录中。然后,我们使用 `shell`模块配置和编译Nginx,并使用`service`模块启动了Nginx服务。 最后,我们可以在命令行中运行以下命令来执行Playbook: ``` ansible-playbook install-nginx.yml ``` 注意,我们假设已经在Ansible中定义了一个名为 `webserver` 的主机组,其中包含要安装Nginx的目标主机。在实际应用中,您可能需要根据自己的环境进行修改。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值