Nginx网站服务配置

网友投稿 242 2022-11-03

Nginx网站服务配置

​​Nginx​​网站服务

​一款高性能、轻量级Web服务软件稳定性高系统资源消耗低对HTTP并发连接的处理能力高单台物理服务器可支持30000~50000个并发请求

一、编译安装Nginx服务

1、关闭防火墙将nginx所需软件包到/opt目录下

systemctl stop firewalldsystemctl disable firewalldsetenforce 0nginx-1.12.0.tar.gz

2、安装依赖包

yum -y install pcre-devel zlib-devel gcc gcc-c++ make

3、创建运行用户、组

​(Nginx 服务程序默认以 nobody 身份运行,建议为其创建专门的用户账号,以便更准确地控制其访问权限)​

useradd -M -s /sbin/nologin nginx

4、编译安装Nginx

cd /opttar zxvf nginx-1.12.0.tar.gz -C /opt/cd nginx-1.12.0/./configure \--prefix=/usr/local/nginx \ #指定nginx的安装路径--user=nginx \ #指定用户名--group=nginx \ #指定组名--with- #启用 模块以支持状态统计make && make installln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/ #让系统识别nginx的操作命令

5、检查、启动、重启、停止 nginx服务

nginx -t #检查配置文件是否配置正确nginx #启动 cat /usr/local/nginx/logs/nginx.pid #先查看nginx的PID号kill -3 kill -s QUIT #停止killall -3 nginxkillall -s QUIT nginxkill -1 #重载kill -s HUP killall -1 nginxkillall -s HUP nginx#日志分隔,重新打开日志文件kill -USR1 #平滑升级kill -USR2

6、添加 Nginx 系统服务

​方法一:

vim /etc/init.d/nginx#!/bin/bash#chkconfig: - 99 20#description:Nginx Service Control ScriptCOM="/usr/local/nginx/sbin/nginx"PID="/usr/local/nginx/logs/nginx.pid"case "$1" instart) $COM;;stop) kill -s QUIT $(cat $PID);;restart) $0 stop $0 start;;reload) kill -s HUP $(cat $PID);;*)echo "Usage: $0 {start|stop|restart|reload}"exit 1esacexit 0chmod +x /etc/init.d/nginxchkconfig --add nginx #添加为系统服务systemctl stop nginxsystemctl start nginx

​方法二:

vim /lib/systemd/system/nginx.service[Unit]Description=nginxAfter=network.target[Service]Type=forkingPIDFile=/usr/local/nginx/logs/nginx.pidExecStart=/usr/local/nginx/sbin/nginxExecrReload=/bin/kill -s HUP $MAINPIDExecrStop=/bin/kill -s QUIT $MAINPIDPrivateTmp=true[Install]WantedBy=multi-user.targetchmod 754 /lib/systemd/system/nginx.servicesystemctl start nginx.servicesystemctl enable nginx.service

二、认识Nginx服务的主配置文件 nginx.conf

vim /usr/local/nginx/conf/nginx.conf

1、全局配置

#user nobody; #运行用户,若编译时未指定则默认为 nobodyworker_processes 1; #工作进程数量,可配置成服务器内核数 * 2#error_log logs/error.log; #错误日志文件的位置#pid logs/nginx.pid; #PID 文件的位置

2、I/O 事件配置

events { use epoll; #使用 epoll 模型,2.6及以上版本的系统内核,建议使用epoll模型以提高性能 worker_connections 4096; #每个进程处理 4096 个连接}#如提高每个进程的连接数还需执行“ulimit -n 65535”命令临时修改本地每个进程可以同时打开的最大文件数。#在Linux平台上,在进行高并发TCP连接处理时,最高的并发数量都要受到系统对用户单一进程同时可打开文件数量的限制(这是因为系统为每个TCP连接都要创建一个socket句柄,每个socket句柄同时也是一个文件句柄)。#可使用ulimit -a命令查看系统允许当前用户进程打开的文件数限制.

3、HTTP 配置

{ ##文件扩展名与文件类型映射表 include mime.types; ##默认文件类型 default_type application/octet-stream; ##日志格式设定 #log_format main '$remote_addr - $remote_user [$time_local] "$request" ' # '$status $body_bytes_sent "$' # '"$"$ ##访问日志位置 #access_log logs/access.log main; ##支持文件发送(下载) sendfile on; ##此选项允许或禁止使用socke的TCP_CORK的选项(发送数据包前先缓存数据),此选项仅在使用sendfile的时候使用 #tcp_nopush on; ##连接保持超时时间,单位是秒 #keepalive_timeout 0; keepalive_timeout 65; ##gzip模块设置,设置是否开启gzip压缩输出 #gzip on;##Web 服务的监听配置server { ##监听地址及端口 listen 80; ##站点域名,可以有多个,用空格隔开 server_name lic.com; ##网页的默认字符集 charset utf-8; ##根目录配置 location / { ##网站根目录的位置/usr/local/nginx/html root html; ##默认首页文件名 index index.html index.htm; } ##内部错误的反馈页面 error_page 500 502 503 504 /50x.html; ##错误页面配置 location = /50x.html { root html; }}}

​使用火狐浏览器进行访问​

4、日志格式设定:

$remote_addr与$用来记录访问时间与时区;$request: 用来记录请求的url与用来记录请求状态;成功是200,$body_bytes_sent :记录发送给客户端文件主体内容大小;$-V 查看已安装的 Nginx 是否包含 HTTP_STUB_STATUS 模块

2、修改 nginx.conf 配置文件,指定访问位置并添加 stub_status 配置

cd /usr/local/nginx/confcp nginx.conf nginx.conf.bakvim /usr/local/nginx/conf/nginx.conf......{...... server { listen 80; server_name lic.com; charset utf-8; location / { root html; index index.html index.php; } ##添加 stub_status 配置## location /status { #访问位置为/status stub_status on; #打开状态统计功能 access_log off; #关闭此位置的日志记录 } }}

3、重启服务,访问测试

systemctl restart nginx

浏览器访问 connections :表示当前的活动连接数;

server accepts handled requests :表示已经处理的连接信息,三个数字依次表示已处理的连接数、成功的TCP握手次数、 已处理的请求数。

四、基于授权的访问控制

1、生成用户密码认证文件

yum install -y -c /usr/local/nginx/passwd.db zhangsanchown nginx /usr/local/nginx/passwd.dbchmod 400 /usr/local/nginx/passwd.db

2、修改主配置文件相对应目录,添加认证配置项

vim /usr/local/nginx/conf/nginx.conf...... server { location / { ...... ##添加认证配置## auth_basic "secret"; auth_basic_user_file /usr/local/nginx/passwd.db; } }

3、重启服务,访问测试

nginx -tsystemctl restart nginx浏览器访问 IP/IP 段:拒绝某个 IP 或 IP 段的客户端访问。allow IP/IP 段:允许某个 IP 或 IP 段的客户端访问。规则从上往下执行,如匹配则停止,不再往下匹配。

vim /usr/local/nginx/conf/nginx.conf...... server { location / { ...... ##添加控制规则## deny 192.168.184.31; #拒绝访问的客户端 IP allow all; #允许其它IP客户端访问 } }systemctl restart nginx

六、基于域名的 Nginx 虚拟主机

1、为虚拟主机提供域名解析

echo "192.168.184.10 lic.com accp.com" >> /etc/hosts

2、为虚拟主机准备网页文档

mkdir -p /var/-p /var/"

lic.com

" > /var/"

accp.com

" > /var//usr/local/nginx/conf/nginx.conf......{...... server { listen 80; server_name lic.com; #设置域名lic.com charset utf-8; access_log logs/lic.access.log; location / { root /var/ #设置lic.com 的工作目录 index index.html index.php; } error_page 500 502 503 504 /50x.html; location = 50x.html{ root html; } } server { listen 80; server_name accp.com; #设置域名accp.com charset utf-8; access_log logs/accp.access.log; location / { root /var/ index index.html index.php; } error_page 500 502 503 504 /50x.html; location = 50x.html{ root html; } } }

4、重启服务,访问测试

systemctl restart nginx

浏览器访问的 Nginx 虚拟主机

ifconfig ens33:0 192.168.184.31 netmask 255.255.255.0 vim /usr/local/nginx/conf/nginx.conf......{......server { listen 192.168.184.30:80; #设置监听地址 server_name lic.com; charset utf-8; access_log logs/lic.access.log; location / { root /var/ index index.html index.php; } error_page 500 502 503 504 /50x.html; location = 50x.html{ root html; } }server { listen 192.168.184.31:80; #设置监听地址 server_name accp.com; charset utf-8; access_log logs/accp.access.log; location / { root /var/ index index.html index.php; } error_page 500 502 503 504 /50x.html; location = 50x.html{ root html; }} }systemctl restart nginx

​浏览器访问

​Nginx 虚拟主机

vim /usr/local/nginx/conf/nginx.conf......{...... server { listen 192.168.184.30:8080; #设置监听 8080 端口 server_name lic.com; charset utf-8; access_log logs/lic.access.log; location / { root /var/ index index.html index.php; } error_page 500 502 503 504 /50x.html; location = 50x.html{ root html; } }server { listen 192.168.184.30:8888; #设置监听 8888 端口 server_name accp.com; charset utf-8; access_log logs/accp.access.log; location / { root /var/ index index.html index.php; } error_page 500 502 503 504 /50x.html; location = 50x.html{ root html; }}

systemctl restart nginx

浏览器访问

​http://192.168.184.30:8080​

http://192.168.184.30:8888

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Shell脚本一键部署——源码编译安装LNMP加discuz论坛!
下一篇:基于FPGA异步串行通信接口模块设计与实现
相关文章

 发表评论

暂时没有评论,来抢沙发吧~