微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Web基础入门

Web基础入门

Nginx概述

Nginx一个开源且高性能、可靠的http web服务、代理服务。
开源 :直接获取代码性能支持海量并发
可靠 :服务稳定

Nginx应用场景

Nginx快速安装

# rpm安装(yum安装)
     - epel仓库
     - 官方仓库
# 源码安装

使用官方源

Nginx官方网站 nginx 官网

1.添加Nginx官方源

[root@web01 ~]# vim /etc/yum.repos.d/Nginx.repo 

[Nginx-stable]
name=Nginx stable repo
baseurl=http://Nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://Nginx.org/keys/Nginx_signing.key
module_hotfixes=true

2.安装Nginx

[root@web01 ~]# yum -y install Nginx

3.启动Nginx

[root@web01 ~]# systemctl start Nginx
[root@web01 ~]# systemctl enable Nginx

4.查看Nginx版本号

[root@web01 ~]# Nginx -v
Nginx version: Nginx/1.22.0

5.查看Nginx的版本和源码安装生成步骤的参数有哪些

[root@web01 ~]# Nginx -V
Nginx version: Nginx/1.22.0
built by gcc 4.8.5 20150623 (Red Hat 4.8.5-44) (GCC) 
built with OpenSSL 1.0.2k-fips  26 Jan 2017
TLS SNI support enabled
configure arguments: --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 --http-client-body-temp-path=/var/cache/Nginx/client_temp --http-proxy-temp-path=/var/cache/Nginx/proxy_temp --http-fastcgi-temp-path=/var/cache/Nginx/fastcgi_temp --http-uwsgi-temp-path=/var/cache/Nginx/uwsgi_temp --http-scgi-temp-path=/var/cache/Nginx/scgi_temp --user=Nginx --group=Nginx --with-compat --with-file-aio --with-threads --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 --with-cc-opt='-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -m64 -mtune=generic -fPIC' --with-ld-opt='-Wl,-z,relro -Wl,-z,Now -pie'

Nginx的启停

1.启动

[root@web01 ~]# systemctl start Nginx
[root@web01 ~]# Nginx
[root@web01 ~]#/usr/sbin/Nginx

2.停止

[root@web01 ~]# systemctl stop Nginx
[root@web01 ~]# Nginx -s stop
[root@web01 ~]#/usr/sbin/Nginx -s stop

3.重新加载

[root@web01 ~]#systemctl reload Nginx
[root@web01 ~]#Nginx -s reload
[root@web01 ~]#/usr/sbin/Nginx -s reload

Nginx启动脚本sysctemd管理

[root@web01 ~]# vim /usr/lib/systemd/system/Nginx.service 
[Unit]
Description=Nginx - high performance web server
Documentation=http://Nginx.org/en/docs/
After=network-online.target remote-fs.target nss-lookup.target
Wants=network-online.target

[Service]
Type=forking
PIDFile=/var/run/Nginx.pid
ExecStart=/usr/sbin/Nginx -c /etc/Nginx/Nginx.conf
ExecReload=/bin/sh -c "/bin/kill -s HUP $(/bin/cat /var/run/Nginx.pid)"
ExecStop=/bin/sh -c "/bin/kill -s TERM $(/bin/cat /var/run/Nginx.pid)"

[Install]
WantedBy=multi-user.target

源码安装,使用fpm打包,脚本内容

[root@web01 ~]# vim post_install_Nginx.sh
ln -s /application/Nginx-1.20.2 /opt/Nginx
echo 'PATH="/usr/local/Nginx/sbin:$PATH"' > /etc/profile.d/Nginx.sh
cat >> /usr/lib/systemd/system/Nginx.service <<EOF
[Unit]
Description=Nginx - high performance web server
Documentation=http://Nginx.org/en/docs/
After=network-online.target remote-fs.target nss-lookup.target
Wants=network-online.target

[Service]
Type=forking
PIDFile=/application/Nginx/Nginx.pid
ExecStart=/application/Nginx/sbin/Nginx -c /application/Nginx/conf/Nginx.conf
ExecReload=/bin/sh -c "/bin/kill -s HUP $(/bin/cat /application/Nginx/Nginx.pid)"
ExecStop=/bin/sh -c "/bin/kill -s TERM $(/bin/cat /application/Nginx/Nginx.pid)"

[Install]
WantedBy=multi-user.target
EOF

Nginx配置文件

1.Nginx配置文件

路径 类型 作用
/etc/Nginx/Nginx.conf 配置文件 Nginx配置文件
/etc/Nginx/conf.d/default.conf 配置文件 Nginx网站示例配置文件

2.Nginx代理相关参数文件

路径 类型 作用
/etc/Nginx/fastcgi_params 配置文件 Fastcgi代理配置文件
/etc/Nginx/scgi_params 配置文件 scgi代理配置文件
/etc/Nginx/uwsgi_params 配置文件 uwsgi代理配置文件

3.Nginx编码相关配置文件

路径 类型 作用
/etc/Nginx/win-utf 配置文件 Nginx编码转换映射文件
/etc/Nginx/koi-utf 配置文件 Nginx编码转换映射文件
/etc/Nginx/koi-win 配置文件 Nginx编码转换映射文件
/etc/Nginx/mime.types 配置文件 Content-Type与扩展名

4.Nginx管理相关命令

路径 类型 作用
/usr/sbin/Nginx 命令 Nginx命令行管理终端命令
/usr/sbin/Nginx-debug 命令 Nginx命令行与终端调试工具

5.Nginx日志相关目录与文件

路径 类型 作用
/var/log/Nginx 目录 Mginx认存放日志目录
/etc/logrotate.d/Nginx 配置文件 Nginx认的日志切割

Nginx配置文件详解

Nginx配置文件

[root@web01 ~]# vim /etc/Nginx/Nginx.conf 
# 注意:Nginx配置文件每一行都以';'结尾
# 核心层(核心模块)、全局配置
# Nginx启动用户配置
user  Nginx;
# Nginx工作线程数量(cpu亲和)
worker_processes  auto;
# 错误日志   日志路径                日志级别
error_log  /var/log/Nginx/error.log notice;
# 程序启动进程号(pid号)存放路径
pid        /var/run/Nginx.pid;

# 事件层(事件模块)
events {
	# 一个worker进程最大连接数
    worker_connections  1024;
}

# http层,http模块,网站配置
http {
	# 浏览器中,认可以解析的格式(不需要下载的格式)
    include       /etc/Nginx/mime.types;
    # 浏览器中,以下格式,点击后直接下载不解析(安装软件的格式)
    default_type  application/octet-stream;
	# 日志格式  格式名字  日志格式
    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';
	# 访问日志   日志路径				  调用日志格式名字
    access_log  /var/log/Nginx/access.log  main;
	# 文件传输的优化配置
    sendfile        on;                                      
    #tcp_nopush     on;                                
                                                           # 长连接超时时间(65s)  
    keepalive_timeout  65;                                   
    # 传输过程中使用gzip压缩
    #gzip  on;                                               
                                                           # 包含 Nginx其他子配置文件(网站虚拟主机配置文件server)
    include /etc/Nginx/conf.d/*.conf;                        
}                                                      

日志格式

$remote_addr  :远端的IP (上一个节点的IP)
- $remote_user :等路的用户
[$time_local]  :时间
"$request" :  请求方式、请求uri、HTTp协议版本号
$status  : 状态码
$body_bytes_sent :流量
"$http_referer"  :跳转地址
"$http_user_agent" :客户端信息
"$http_x_forwarded_for"  :记录透传IP地址 (获取用户的真实IP)

虚拟主机配置文件

server {
	# 该网站的监听端口
	 listen       80;
	# 该网站的IP或域名
	 server_name  localhost;
     #  该网站的日志路径及日志格式
     #access_log  /var/log/Nginx/host.access.log  main;
     # uri跳转
     location / {
     	# 站点目录
         root   /usr/share/Nginx/html;
        # 首页,索引页面
         index  index.html index.htm;
     }       
 }
 
 
 # server层是网站配置层,包含在http层中
http{
	server{
		location /{
			location /xxx{}
		}
		location /api{}
		location /zls{}
	}
	server{
	}
	...
}

多虚拟主机(多web网站配置)

在企业中,是不肯用一个Nginx对应一套业务,多个网站都在一个Nginx中配置

基于IP的多虚拟主机

# 添加虚拟网卡
[root@web01 ~]# ifconfig  eth0:0 10.0.0.10
[root@web01 ~]# vim /etc/Nginx/conf.d/zh.conf 
server{
        listen 80;
        server_name 10.0.0.10;

        location /{
        root /game/h5_games;
        index index.html;
}
}

[root@web01 ~]# vim /etc/Nginx/conf.d/zh.conf
server{
        listen 80;
        server_name 10.0.0.7;

        location /{
        root /game/zh2;
        index index.html;
}
}



基于多端口的虚拟机

[root@web01 ~]# vim /etc/Nginx/conf.d/zh.conf 
server{
        listen 8080;
        server_name 10.0.0.7;

        location /{
                root /game/h5_games;
                index index.html;
        }
}


[root@web01 ~]# vim /etc/Nginx/conf.d/zh2.conf 
server{
        listen 8081;
        server_name 10.0.0.7;

        location /{
                root /game/zh2;
                index index.html;
        }
}

基于多域名的虚拟机

[root@web01 ~]# vim /etc/Nginx/conf.d/zh.conf 
server{
        listen 80;
        server_name www.zh.com;

        location /{
                root /game/h5_games;
                index index.html;
        }
}

1.win+r打开运行 输入 :drivers

2.进入etc目录

3.使用notepad++打开hosts文件

4.添加域名解析

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐