Nginx:
配置文件路径:
yum安装:/etc/nginx/nginx.conf
源码包安装: /usr/local/nginx/conf/nginx.conf
源码安装
安装编译依赖环境
yum install -y gcc gcc-c++ pcre pcre-devel zlib zlib-devel openssl openssl-devel perl-ExtUtils-Embed gd-devel
下载地址
wget http://nginx.org/download/nginx-1.20.1.tar.gz
创建nginx用户与组,以及临时目录
useradd -s /sbin/nologin -M nginx
解压nginx源码包,切换到该目录,开始安装前配置,及编译安装
也可以使用默认配置安装
./configure &&make &&make install
./configure \
--user=nginx \
--group=nginx \
--prefix=/usr/local/nginx \
--conf-path=/etc/nginx/nginx.conf \
--sbin-path=/usr/sbin/nginx \
--error-log-path=/var/log/nginx/nginx_error.log \
--http-log-path=/var/log/nginx/nginx_access.log \
--pid-path=/usr/local/nginx/run/nginx.pid \
--lock-path=/usr/local/nginx/locj/nginx \
--with-http_image_filter_module \
--with-pcre
&&make &&make install
安装配置解析
./configure \
--user=nginx \
指定启动用户
--group=nginx \
指定启动用户组
--prefix=/usr/local/nginx \
指定安装目录
--conf-path=/etc/nginx/nginx.conf \
指定配置文件路径
--sbin-path=/usr/sbin/nginx \
指定nginx的sbin目录
--error-log-path=/var/log/nginx/nginx_error.log \
指定nginx错误日志存放路径
--http-log-path=/var/log/nginx/nginx_access.log \
指定nginx访问日志存放路径
--pid-path=/usr/local/nginx/run/nginx.pid \
指定nginx运行的pid存放路径
--lock-path=/usr/local/nginx/locj/nginx \
--with-http_image_filter_module \
下面的都是模块
--with pcre
--http-client-body-temp-path=/var/tmp/nginx/client/ \
--http-proxy-temp-path=/var/tmp/nginx/proxy \
--http-fastcgi-temp-path=/var/tmp/nginx/fcgi \
--http-uwsgi-temp-path=/var/tmp/nginx/uwsgi \
--http-scgi-temp-path=/var/tmp/nginx/scgi\
&&make &&make install
配置文件解析
配置文件中的变量:
日志格式,以下具体介绍变量
$remote_addr与$http_x_forwarded for #用以记录客户端的ip地址:
$remote_user #用来记录客户端用户名称:
$time_local #用来记录访问时间与时区:
$ request #用来记录请求的 url 与 http 协议:
$status #用来记录请求状态:成功是200;
$body_bytess ent #记录发送给客户端文件主体内容大小:
$http referer #用来记录从那个页面链接访问过来的:
配置文件:
user nginx; #设置nginx服务的系统使用用户
worker_processes auto; #工作进程数,一般和cpu数保持一致
error_log /var/log/nginx/error.log; #错误日志
pid /run/nginx.pid; #存放nginx服务启动时的pid
events { # 如1个worker能同时允许多少连接
use epoll;
epoll 是多路复用IO(I/O Multiplexing)中的-一种方式,但是仅用于linux2 .6以上内核,可以大大提高nginx 的性能
worker_connections 1024; #这是指 一个子进程最大允许连1024个连接
}
server {
listen 80; #监听端口
listen [::]:80; #IPV6监听端口
server_name test.com; #域名
root /usr/share/nginx/html; #网站根目录
index index.php index.thml index.htm #指定首页名称 用于支持php 或其他页面
# Load configuration files for the default server block.
include /etc/nginx/default.d/*.conf; #这一句表示会把其他配置文件引进来
error_page 404 /404.html; #发生404错误时跳转到某个页面
location = /404.html {
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
}
Nginx配置PHP参数
用于隐藏PHP后缀
location / {
try_files $uri $uri/ $uri.php?$args;
}
}
#用于支持PHP页面,调用php-fpm
location ~ .php$ {
#root /var/www/card/public;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
#PHP测试页面
<html>
<body>
<?php
echo "helllo word"
?>
</body>
</html>
反向代理
server {
listen 80;
server_name test.com
location / {
proxy_pass 10.0.0.1 #这里可以直接写IP地址,如果需要配置负载均衡,可以使用http://test和upstream名称一致
proxy_redirect off;
proxy_set_header Host $host;#指定请求的服务器的域名和端口号
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;#后端的Web服务器可以通过X-Forward获取用户真实IP
client_max_body_size 10M; #允许客户端请求的最大单文件字节数
client_body_buffer_size 128K; #缓冲区代理,用户端请求的最大字节数
proxy_connect_timeout 300; #nginx跟后端服务器连接超时时间(代理连接超时)
proxy_send_timeout 300; #后端服务器数据回传时间(代理发送超时)
proxy_read_timeout 300; #连接成功后,后端服务器响应时间(代理接受超时)
}
}
允许及拒绝IP访问
在虚拟主机添加配置,该配置为拒绝10.0.0.1访问,并允许其他所有的访问
deny 10.0.0.1; #拒绝该IP访问
allow all; #允许所有访问
暂无评论内容