首页
Linux常用
docker常用
关于
Search
1
docker安装MDCX
183 阅读
2
UNRAID增加和缩小虚拟机虚拟磁盘大小
49 阅读
3
unraid添加iSCSI 发起程序
39 阅读
4
iStoreOS上使用WireGuard
22 阅读
5
docker安装WireGuard Easy
14 阅读
默认分类
docker
容器安装
Linux
数据库
群辉
软路由
unRAID
PVE
Nginx
wow
杂项
图床
飞牛
转载微信公众号文章
Docker学习
Linux学习
登录
Search
标签搜索
nginx
unraid
PVE
wow服务器
装机硬件
宏
v2ray
直通
电视盒子
相册
黑裙7.0.1
远程穿透
定时
ssh
emby
symlink
软链接
Linux
sftp
防火墙
奥黛丽·逐爱者
累计撰写
100
篇文章
累计收到
10
条评论
首页
栏目
默认分类
docker
容器安装
Linux
数据库
群辉
软路由
unRAID
PVE
Nginx
wow
杂项
图床
飞牛
转载微信公众号文章
Docker学习
Linux学习
页面
Linux常用
docker常用
关于
搜索到
100
篇与
奥黛丽·逐爱者
的结果
2024-04-06
Auto_Symlink自动软链接
Auto_Symlink是一个自动化工具,专门设计用于管理通过 CloudDrive2/Alist 挂载到本地的网盘。它能够创建软链接,使得像 Emby/Jellyfin 这样的媒体服务器能够更容易地刮削和读取内容,同时减少对网盘的频繁访问。 主要特性实时监控: 监控指定目录,自动进行必要的更新和管理。自动化处理: 创建与更新软链接/strm文件,自动复制与更新元数据。清理功能: 清空无效文件夹和软链接,保持本地云端一致性。Web 界面操作: 提供一个简洁易用的Web界面,用于查看日志、编辑配置和监控系统状态。这使得用户能够更方便地管理和调整 Auto_Symlink 的运行。安装和使用直接运行 Python 文件:在首次运行后,config 文件夹中会生成 config.yaml 文件。根据文件中的注释进行配置。配置完成后,使用命令 python auto_symlink.py 运行。在 Windows 系统中,需要以管理员模式运行。Docker 运行: 使用以下命令运行 Docker 容器:docker run -d \ --name auto_symlink \ -e TZ=Asia/Shanghai \ -v /volume1/CloudNAS:/volume1/CloudNAS:rslave \ -v /volume2/Media:/Media \ -v /volume1/docker/auto_symlink/config:/app/config \ -p 8095:8095 \ --restart unless-stopped \ --log-opt max-size=10m \ --log-opt max-file=3 \ shenxianmq/auto_symlink:latest注意:映射网盘路径时必须使用绝对路径。Docker 运行指令详解-v /your/cloud/path:/cloudpath:rslave: 将你的云盘路径( /your/cloud/path )映射到容器内的路径( /your/cloud/path )。 rslave 表示使用相对于宿主机的从属挂载模式。请确保左右路径保持一致,否则生成的软链接不是指向真实路径,导入emby中的时候会导致无法观看。(简单的来说,这里需要填写你映射的云盘路径,且两边都填写一模一样的路径即可。) -v /your/media/path:/media: 将你即将创建软连接的位置映射到容器内的 /media 目录。 -p 8095:8095: 映射8095端口,可方便的查看日志以及管理服务。 -v /path/to/auto_symlink/config:/app/config: 将 auto_symlink 的配置目录映射到容器内的 /app/config 。这样可以使容器中的 auto_symlink 使用外部的配置文件。 --restart unless-stopped: 设置容器在退出时自动重启。 --log-opt max-size=10m: 设置容器日志文件的最大大小为 10MB。 --log-opt max-file=3: 设置容器日志文件的最大文件数为 3。注意:映射云盘路径时必须使用绝对路径(虽然此处是本工具的docker运行说明,但EMBY也应使用同样的绝对路径,否则软连接将指向错误的位置,从而导致无法播放),以确保软连接可以正确指向原始文件或目录。根据你的实际路径和需求调整 -v 选项中的路径。群晖请使用控制台创建docker,因为群晖的Docker GUI界面无法选择rslave模式Web 界面访问和账户信息账号密码默认账号:admin默认密码:password在首次登录时,你可以使用这些凭据进行登录。为了安全起见,建议登录后立即更改密码。Web界面说明 通过映射端口8095,用户可以方便地访问 Auto_Symlink 的Web界面。在任何支持的浏览器中输入 http://[你的服务器地址]:8095 即可访问。常见问题解答 (FAQ)Q: auto_symlink 在什么情况下特别有用? 答: 当你正在使用CloudDrive2/Alist等工具管理媒体,并使用EMBY/Jellyfin等工具来管理这些媒体时,本工具将大大降低媒体刮削时访问网盘的频率。Q: EMBY显示当前没有兼容的流 答: 请确保你EMBY映射的也是绝对路径,需要与 auto_symlink设置的路径保持一致。Q: 虽然我有元数据,但EMBY扫库还是很慢? 答: 因为我们映射了所有影片的软连接,所以可以尝试先禁用EMBY的FFmpeg进程,CloudDrive2可以在设置黑名单添加/bin/ffprobe,扫库完成后,再删除该黑名单即可。Q: 我映射后为什么不能在windows下播放? 答: 映射的软连接仅支持绝对路径,windows下的绝对路径肯定与linux不一致,所以请在EMBY内验证。Q: 为什么运行完毕后,只同步了文件夹? 答: 群晖File Station或部分工具不支持显示软连接,可以尝试用windows或者命令行查看。Q: 群晖创建容器rslave报错 答: 在群晖的任务计划中添加开机任务: mount --make-shared /volume1/ mount --make-shared /volume2/ systemctl daemon-reload 添加后手动运行一次,之后开机会自动运行旧版(无GUI界面)解答 (FAQ)Q:配置文件只给出了一个目录映射,我想映射多个怎么办? 答: 仅需将sync_list:后面的所有内容再复制一遍即可,注意空格,yaml文件格式很注意缩进。 tips:注意不要将sync_list:一起复制进去了,否则会只有一个目录生效Q: 配置文件修改每次都要重启吗? 答: 不需要,本工具支持热重载。Q: 我创建了docker,为什么启动软件后没有生效? 答: 第一次启动仅仅会自动创建config配置文件,还需要进入config目录下编辑config.yaml文件,文件内有详细使用说明。Q:我配置了多个目录,但只有一个目录生效了是怎么回事? 答: 请检查目录配置中是否将sync_list:也一起复制进去了配置文件说明config.yaml: YAML 格式的主配置文件,详细配置可以参考文件中的注释。last_sync.yaml: 保存已同步的目标目录,用于避免重复全同步。{lamp/}注意: emby的配置的两个路径要与Auto_Symlink路径相同。网盘挂载路径→网盘挂载路径容器路径→本地
2024年04月06日
3 阅读
0 评论
0 点赞
2024-04-04
Unraid常用命令
虚拟机查看虚拟机运行:virsh list运行虚拟机:virsh start DS923+DS923+是虚拟机名。docker例如webdav是docker容器名称。启动docker:/usr/bin/docker start webdav停止docker:/usr/bin/docker stop webdav{lamp/}备份USB例如:将a目录文件同步到brsync -av /tmp/a/ /tmp/brsync -av /boot /mnt/user/backup/usb_backup/6.12.10压缩 /boot 目录你可以使用 zip 或 tar 命令来压缩 /boot 目录。以下是两种常见的压缩方式:使用 zip 命令zip -r /mnt/user/backup/usb_backup/6.12.10/boot_backup.zip /boot-r:表示递归压缩目录。/mnt/user/backup/usb_backup/6.12.10/boot_backup.zip:指定压缩文件的路径和名称。/boot:指定要压缩的目录。使用 tar 命令tar -czvf /mnt/user/backup/usb_backup/6.12.10/boot_backup.tar.gz /boot-c:创建一个新的归档文件。-z:使用 gzip 压缩。-v:详细模式,显示压缩过程。-f:指定归档文件的名称。/mnt/user/backup/usb_backup/6.12.10/boot_backup.tar.gz:指定压缩文件的路径和名称。/boot:指定要压缩的目录。使用其它#!/bin/bash # 定义源目录和目标目录 SOURCE_DIR="/boot" BACKUP_DIR="/mnt/user/backup/usb_backup/6.12.10" # 创建目标备份目录,如果它不存在 mkdir -p "$BACKUP_DIR" # 定义备份文件的名称 BACKUP_FILE="$BACKUP_DIR/usb_backup.tar.gz" # 压缩源目录并保存到目标目录 tar -czf "$BACKUP_FILE" "$SOURCE_DIR" # 输出完成消息 echo "Backup of $SOURCE_DIR completed and saved to $BACKUP_FILE"
2024年04月04日
7 阅读
0 评论
0 点赞
2024-04-03
Ngixn 配置文件详解
123456本文基于 Nginx 1.18.0,介绍其配置文件 nginx.conf 的主要配置参数。核心参数详解user nginx nginx; # 指定 Nginx 服务运行的用户和用户组 worker_processes 1; # 定义 Nginx 的 worker 进程数,建议等于 CPU 总核心数 # 全局指定 Nginx 错误日志,定义类型,[ debug | info | notice | warn | error | crit ] # 如果要关闭 error log,需要写成 error_log /dev/null; # 而不是 error_log off; 否则错误日志会写到一个叫做 off 的文件中 error_log /var/log/nginx/error.log warn; pid /var/run/nginx.pid; # 指定 Nginx PID 进程号文件 # 一个 Nginx 进程打开的最多文件描述符数目 # 理论值应该是最多打开文件数(系统的值 ulimit -n)与 Nginx 进程数相除 # 但是 Nginx 分配请求并不均匀,所以建议与 ulimit -n 的值保持一致 worker_rlimit_nofile 65535; # 工作模式与连接数上限 events { # 参考事件模型 # use [ kqueue | rtsig | epoll | /dev/poll | select | poll ] # epoll 模型是 Linux 2.6 以上版本内核中的高性能网络 I/O 模型 # 如果跑在 FreeBSD 上面,就用 kqueue 模型 use epoll; # 单个进程最大连接数(最大连接数=连接数*进程数),默认值为 1024 worker_connections 65535; } # 设定 http 服务器 http { # 文件扩展名与文件类型映射表 # Nginx 会根据 mime.type 定义的对应关系来告诉浏览器如何处理当前返回的文件(打开或下载) include mime.types; # 当 Nginx 无法识别当前访问页面内容时(未定义的扩展名),默认触发下载动作 # 浏览器访问到未定义的扩展名的时候,就默认为下载该文件 # 如果将这个设置改成 default_type text/html; 即把所有未设置的扩展名当 HTML 文件打开 default_type application/octet-stream; charset utf-8; # 默认编码 # 服务器名字的 hash 表大小(看不懂的参数默认即可) server_names_hash_bucket_size 128; # 客户端请求头部的缓冲区大小 client_header_buffer_size 32k; # 客户请求头缓冲大小 # Nginx 默认会用 client_header_buffer_size 这个 buffer 来读取 header 值 # 如果 header 过大,它会使用 large_client_header_buffers 来读取 large_client_header_buffers 4 64k; # 设定通过 Nginx 上传文件的大小 client_max_body_size 8m; # 开启高效文件传输模式 # sendfile 指令指定 Nginx 是否调用 sendfile 函数来输出文件 # 对于普通应用设为 on,如果用来进行下载等应用磁盘 IO 重负载应用,可设置为 off,以平衡磁盘与网络 I/O 处理速度,降低系统的负载 # 注意:如果图片显示不正常把这个改成 off sendfile on; # 开启目录列表访问,适合下载服务器,默认关闭 autoindex on; # 防止网络阻塞:数据包会先累积到最大后一次性传输,可以最大化利用网络资源,但会有一点点延迟(默认开启) tcp_nopush on; # 防止网络阻塞:小的数据包不等待直接传输(与 tcp_nopush 互斥,但两者可同为 on ,Nginx 会平衡这两个功能,默认开启) tcp_nodelay on; keepalive_timeout 65; # 长连接超时时间,单位是秒 # FastCGI 相关参数是为了改善网站的性能:减少资源占用,提高访问速度。 # 参考1:https://blog.csdn.net/luozhonghua2014/article/details/37737823 # 参考2:https://blog.51cto.com/blief/1739655 fastcgi_connect_timeout 300; # 连接到后端 fastcgi 超时时间(秒) fastcgi_send_timeout 300; # 指 Nginx 进程向 fastcgi 进程发送 request 的整个过程的超时时间(秒) fastcgi_read_timeout 300; # 指 fastcgi 进程向 Nginx 进程发送 response 的整个过程的超时时间(秒) fastcgi_buffer_size 64k; # 读取 fastcgi 应答第一部分需要多大缓冲区 fastcgi_buffers 4 64k; # 指定本地需要多少和多大的缓冲区来缓冲 fastcgi 应答请求 fastcgi_busy_buffers_size 128k; # 默认值是 fastcgi_buffer 的 2 倍 fastcgi_temp_file_write_size 128k; # 写入缓存文件使用多大的数据块,默认值是 fastcgi_buffer 的 2 倍 # gzip 模块设置 gzip on; # 开启 gzip 压缩输出 gzip_min_length 1k; # 最小压缩文件大小 gzip_buffers 4 16k; # 压缩缓冲区 gzip_http_version 1.0; # 压缩版本(默认 1.1,前端如果是 squid2.5 请使用 1.0) gzip_comp_level 2; # 压缩等级 # 压缩类型,默认就已经包含 text/html,所以下面就不用再写了,写上去也不会有问题,但是会有一个 warn # 图片压缩:建议不对 gif、jpge 等图片进行压缩,因为其压缩比例极低,反而耗费 CPU,但 bmp 可以压缩,因为 bmp 压缩比例较大 # 字体压缩:只需要为 ttf、otf 和 svg 字体启用 gzip,对其他字体格式进行 gzip 压缩时效果不明显 # 参考:https://blog.csdn.net/liupeifeng3514/article/details/79018334 gzip_types text/plain application/x-javascript text/css application/xml; gzip_vary on; # 是否在 http header 中添加 Vary: Accept-Encoding,建议开启 # limit_zone crawler $binary_remote_addr 10m; # 开启限制 IP 连接数的时候需要使用 # upstream 的负载均衡,weight 是权重,可以根据机器配置定义权重 # weigth 参数表示权值,权值越高被分配到的几率越大 # Nginx 的 upstream 目前支持 4 种方式的分配,这里演示一种,后面章节会分别演示 upstream www.baidu.com { server 192.168.80.121:80 weight=3; server 192.168.80.122:80 weight=2; server 192.168.80.123:80 weight=3; } # 全局指定 Nginx 访问日志的格式 log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"'; # 全局定义 Nginx 访问日志的位置 access_log logs/access.log main; # 一般上面两个不配置,只设置 access_log off; 然后在需要的 server 下配置日志 # 这么做可以避免日志产生过大(如果 http 和 server 都不配置,默认会写入 logs/access.log) access_log off; # 虚拟主机的配置,一个 server 配置段一般对应一个域名 # 在实际生产中一般会将这部分拆出来形成子配置文件,后面的章节会讲 server { listen 80; # 指定监听端口 server_name www.baidu.com; # 指定当前网站的访问域名 location / { root html; # 指定代码位置 index index.html index.htm; # 指定首页文件 } # 定义 404 错误页面,如果是 404 错误,则把站点根目录下的 404.html 返回给用户 error_page 404 /404.html; # 定义 50x 错误页面,可以配合 location 使用,用 location 调用实际的错误页面 error_page 500 502 503 504 /50x.html; location = /50x.html { root /usr/share/nginx/html; } } }全局日志的关闭为了避免日志产生过大,也是处于模块化的思想,我们一般不在全局中(http 中)指定日志格式和输出位置,而是在子配置文件中(每个 server 中)单独配置。但是如果 http 和 server 都不配置,默认会写入 logs/access.log ,即全局的形式。所以需要关闭全局日志。网上很多博客中展示的都是错误示例,这里演示正确的关闭方式,包括 error_log 和 access_log :# 错误示例,会产生名字为 off/on 的日志文件 error_log off; access_log on; 正确关闭方式 error_log /dev/null; access_log off;日志 log_format 可选项默认格式:log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"';参数释义表:字段说明$remote_addr客户端地址$remote_user客户端用户名称$time_local访问时间和时区$request请求的 URI 和 HTTP 协议$http_host请求地址,即浏览器中你输入的地址(IP 或域名)$statusHTTP 请求状态$upstream_statusupstream 状态$body_bytes_sent发送给客户端文件内容大小$http_refererurl 跳转来源$http_user_agent用户终端浏览器等信息$ssl_protocolSSL协议版本$ssl_cipher交换数据中的算法$upstream_addr后台 upstream 的地址,即真正提供服务的主机地址$request_time整个请求的总时间$upstream_response_time请求过程中,upstream 响应时间http、server、location 之间的关系http:主要用于解决用户请求中的报文信息server:用于配置一个具体的网站响应操作location:用于匹配 uri由上至下是包含关系。更多其它参数server 中的参数配置项其实有很多,它们可以实现一些丰富的功能。上面只列举了最基础的几个参数,后面的章节会单独讲解如何配置来实现各种功能。
2024年04月03日
1 阅读
0 评论
0 点赞
2024-04-03
Nginx 设置开机自启
在生产环境中,如果我们的服务器意外重启,此时要是 Nginx 没有随服务器启动起来,我们的 Web 站点就会是无应答的状态,这会给我们带来不同程度损失。因此我们需要设置 Nginx 开机自启。Ubuntu 设置开机自启以下所有命令,如果你是 root 账户,直接执行即可,不是的话前面加 sudo 获取权限。在 Ubuntu 和 Debian 下,我们通过 update-rc.d 设置 Nginx 的开机启动。经实验,以下步骤适用于 Ubuntu 16.04、18.04、20.04 版本的系统。创建启动脚本在 Linux 系统的 /etc/init.d/ 目录下创建 nginx 文件:vim /etc/init.d/nginx往该文件内写入以下脚本内容(该脚本内容来自网络):#! /bin/sh # chkconfig: 2345 55 25 # Description: Startup script for nginx webserver on Debian. Place in /etc/init.d and # run 'update-rc.d -f nginx defaults', or use the appropriate command on your # distro. For CentOS/Redhat run: 'chkconfig --add nginx' ### BEGIN INIT INFO # Provides: nginx # Required-Start: $all # Required-Stop: $all # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: starts the nginx web server # Description: starts nginx using start-stop-daemon ### END INIT INFO # Author: licess # website: http://lnmp.org PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin NAME=nginx NGINX_BIN=/usr/local/nginx/sbin/$NAME CONFIGFILE=/usr/local/nginx/conf/$NAME.conf PIDFILE=/usr/local/nginx/logs/$NAME.pid case "$1" in start) echo -n "Starting $NAME... " if netstat -tnpl | grep -q nginx;then echo "$NAME (pid `pidof $NAME`) already running." exit 1 fi $NGINX_BIN -c $CONFIGFILE if [ "$?" != 0 ] ; then echo " failed" exit 1 else echo " done" fi ;; stop) echo -n "Stoping $NAME... " if ! netstat -tnpl | grep -q nginx; then echo "$NAME is not running." exit 1 fi $NGINX_BIN -s stop if [ "$?" != 0 ] ; then echo " failed. Use force-quit" exit 1 else echo " done" fi ;; status) if netstat -tnpl | grep -q nginx; then PID=`pidof nginx` echo "$NAME (pid $PID) is running..." else echo "$NAME is stopped" exit 0 fi ;; force-quit) echo -n "Terminating $NAME... " if ! netstat -tnpl | grep -q nginx; then echo "$NAME is not running." exit 1 fi kill `pidof $NAME` if [ "$?" != 0 ] ; then echo " failed" exit 1 else echo " done" fi ;; restart) $0 stop sleep 1 $0 start ;; reload) echo -n "Reload service $NAME... " if netstat -tnpl | grep -q nginx; then $NGINX_BIN -s reload echo " done" else echo "$NAME is not running, can't reload." exit 1 fi ;; configtest) echo -n "Test $NAME configure files... " $NGINX_BIN -t ;; *) echo "Usage: $0 {start|stop|force-quit|restart|reload|status|configtest}" exit 1 ;; esac修改部分参数如果你的 Nginx 是通过编译安装的,则需要根据实际安装时的设置,修改启动脚本中的几个参数(大约在第):# 如果是按照我方式编译安装的,则不用修改,默认参数值就是我的实际安装位置 NGINX_BIN=/usr/local/nginx/sbin/$NAME CONFIGFILE=/usr/local/nginx/conf/$NAME.conf PIDFILE=/usr/local/nginx/logs/$NAME.pid添加执行权限上述脚本保存为 /etc/init.d/nginx ,然后设置文件的执行权限:# 给所有用户给予可执行权限 chmod a+x /etc/init.d/nginx至此就可以通过下面指令控制 Nginx 的启动、停止和重新加载了:# 启动 /etc/init.d/nginx start # 停止 /etc/init.d/nginx stop # 重新加载配置 /etc/init.d/nginx reload添加至开机自启动现在将 Nginx 服务加入开机自启动:# 设置开机启动 sudo update-rc.d nginx defaults # 启动 Nginx sudo /etc/init.d/nginx start当然了,如果需要关闭开机启动的功能:# 取消开机启动 sudo update-rc.d -f nginx remove{lamp/}CentOS 6.x 设置开机自启以下所有命令,如果你是 root 账户,直接执行即可,不是的话前面加 sudo 获取权限。创建启动脚本在 Linux 系统的 /etc/init.d/ 目录下创建 nginx 文件:vim /etc/init.d/nginx往该文件内写入以下脚本内容(该脚本内容来自 自官方网站 - Red Hat NGINX Init Script ):#!/bin/sh # # nginx - this script starts and stops the nginx daemon # # chkconfig: - 85 15 # description: NGINX is an HTTP(S) server, HTTP(S) reverse \ # proxy and IMAP/POP3 proxy server # processname: nginx # config: /etc/nginx/nginx.conf # config: /etc/sysconfig/nginx # pidfile: /var/run/nginx.pid # Source function library. . /etc/rc.d/init.d/functions # Source networking configuration. . /etc/sysconfig/network # Check that networking is up. [ "$NETWORKING" = "no" ] && exit 0 nginx="/usr/sbin/nginx" prog=$(basename $nginx) NGINX_CONF_FILE="/etc/nginx/nginx.conf" [ -f /etc/sysconfig/nginx ] && . /etc/sysconfig/nginx lockfile=/var/lock/subsys/nginx make_dirs() { # make required directories user=`$nginx -V 2>&1 | grep "configure arguments:.*--user=" | sed 's/[^*]*--user=\([^ ]*\).*/\1/g' -` if [ -n "$user" ]; then if [ -z "`grep $user /etc/passwd`" ]; then useradd -M -s /bin/nologin $user fi options=`$nginx -V 2>&1 | grep 'configure arguments:'` for opt in $options; do if [ `echo $opt | grep '.*-temp-path'` ]; then value=`echo $opt | cut -d "=" -f 2` if [ ! -d "$value" ]; then # echo "creating" $value mkdir -p $value && chown -R $user $value fi fi done fi } start() { [ -x $nginx ] || exit 5 [ -f $NGINX_CONF_FILE ] || exit 6 make_dirs echo -n $"Starting $prog: " daemon $nginx -c $NGINX_CONF_FILE retval=$? echo [ $retval -eq 0 ] && touch $lockfile return $retval } stop() { echo -n $"Stopping $prog: " killproc $prog -QUIT retval=$? echo [ $retval -eq 0 ] && rm -f $lockfile return $retval } restart() { configtest || return $? stop sleep 1 start } reload() { configtest || return $? echo -n $"Reloading $prog: " killproc $prog -HUP retval=$? echo } force_reload() { restart } configtest() { $nginx -t -c $NGINX_CONF_FILE } rh_status() { status $prog } rh_status_q() { rh_status >/dev/null 2>&1 } case "$1" in start) rh_status_q && exit 0 $1 ;; stop) rh_status_q || exit 0 $1 ;; restart|configtest) $1 ;; reload) rh_status_q || exit 7 $1 ;; force-reload) force_reload ;; status) rh_status ;; condrestart|try-restart) rh_status_q || exit 0 ;; *) echo $"Usage: $0 {start|stop|status|restart|condrestart|try-restart|reload|force-reload|configtest}" exit 2 esac修改部分参数如果你的 Nginx 是通过编译安装的,则需要根据实际安装时的设置,修改启动脚本中的两个参数(大约在第 22 行和第 25 行):# 修改成 Nginx 执行程序的路径,例如我的一般是:/usr/local/nginx/sbin/nginx nginx="/usr/sbin/nginx" # 修改成配置文件的路径,例如我的一般是:/usr/local/nginx/conf/nginx.conf NGINX_CONF_FILE="/etc/nginx/nginx.conf"还需要修改 PID 文件路径,大约在启动脚本中的第 11 行可以看到被注释的默认路径,在下面加一行,手动指定成和 nginx.conf 文件中的 PID 路径一致即可:设置成和 nginx.conf 中一致。例如我的一般是:/usr/local/nginx/logs/nginx.pid # pidfile: /var/run/nginx.pid pidfile: /usr/local/nginx/logs/nginx.pid添加执行权限上述脚本保存为 /etc/init.d/nginx ,然后设置文件的执行权限:给所有用户给予可执行权限chmod a+x /etc/init.d/nginx至此就可以通过下面指令控制 Nginx 的启动、停止和重新加载了:# 启动 /etc/init.d/nginx start # 停止 /etc/init.d/nginx stop # 重新加载配置 /etc/init.d/nginx reload添加至开机自启动现在将 Nginx 服务加入 chkconfig 管理列表:# 添加 Nginx 启动脚本为 chkconfig 管理的一个服务 chkconfig --add /etc/init.d/nginx # 将 Nginx 加入开机自启 chkconfig /etc/init.d/nginx on当然了,如果需要关闭开机启动的功能:# 查看该服务进程状态 chkconfig --list nginx # 关闭 Nginx 开机自启 chkconfig /etc/init.d/nginx off # 删除 chkconfig 管理的的 Nginx 启动服务(如果确实不需要了) chkconfig --del /etc/init.d/nginx开机自启脚本提供的快捷命令通过 Nginx 开机自启脚本本身提供了一些 Nginx 常用操作的快捷命令,一旦我们通过这个脚本实现开机自启后,就可以通过这些快捷命令来操作 Nginx 了:# 启动 Nginx /etc/init.d/nginx start # 重新加载 Nginx 配置 /etc/init.d/nginx reload # 停止 Nginx /etc/init.d/nginx stop这些命令通过看脚本代码就能找到。{lamp/}CentOS 7.x 设置开机自启以下所有命令,如果你是 root 账户,直接执行即可,不是的话前面加 sudo 获取权限。在 CentOS 7.x 版本的系统开始,就不太好通过 chkconfig + Red Hat NGINX Init Script 的方式来设置 Nginx 的开机启动了。因为会留下了一个 bug:通过 /etc/init.d/nginx 脚本方式来控制 Nginx 的启动、停止时,start 一直卡着(实际端口是开启了,必须通过 Ctrl + C 强制关闭),stop 不生效(提示成功,但是端口没关闭)。那么对于 CentOS 7.x 系统,可以通过 systemd 来管理 Nginx。建立服务文件新建文件vim /usr/lib/systemd/system/nginx.service往该文件内写入以下内容(内容模版参考官网 NGINX systemd service file ):[Unit] Description=The NGINX HTTP and reverse proxy server After=syslog.target network-online.target remote-fs.target nss-lookup.target Wants=network-online.target [Service] Type=forking PIDFile=/run/nginx.pid ExecStartPre=/usr/sbin/nginx -t ExecStart=/usr/sbin/nginx ExecReload=/usr/sbin/nginx -s reload ExecStop=/bin/kill -s QUIT $MAINPID PrivateTmp=true [Install] WantedBy=multi-user.target文件内容解释:[Unit]:服务的说明 Description:描述服务 After:描述服务类别 [Service]服务运行参数的设置 Type=forking是后台运行的形式 ExecStart为服务的具体运行命令 ExecReload为重启命令 ExecStop为停止命令 PrivateTmp=True表示给服务分配独立的临时空间 注意:启动、重启、停止命令全部要求使用绝对路径 [Install]服务安装的相关设置,可设置为多用户修改部分参数如果你的 Nginx 是通过编译安装的,则需要根据实际安装时的设置,修改文件中的部分参数,修改后的示例如下:[Unit] Description=The NGINX HTTP and reverse proxy server After=syslog.target network-online.target remote-fs.target nss-lookup.target Wants=network-online.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=/usr/local/nginx/sbin/nginx -s reload ExecStop=/usr/local/nginx/sbin/nginx -s quit PrivateTmp=true [Install] WantedBy=multi-user.target添加执行权限给上述文件添加执行权限:chmod +x /usr/lib/systemd/system/nginx.service添加至开机自启动设置开机自启动:systemctl enable nginx.serviceNginx 服务管理此时可以使用一些快捷命令进行 Nginx 服务管理:# Nginx 启动 systemctl start nginx.service # 查看 Nginx 服务当前状态 systemctl status nginx.service # Nginx 重载 systemctl reload nginx.service # Nginx 停止 systemctl stop nginx.service # 重新启动 Nginx 服务 systemctl restart nginx.service # 停止 Nginx 的开机自启动 systemctl disable nginx.serviceNginx 启动日志查看:journalctl -f -u nginx.servicesystemd 提供的一些命令查看所有已启动的服务:systemctl list-units --type=service命令集合:# 查看所有开机启动项 systemctl list-unit-files --type=service | grep enabled # 查询服务是否开机启动 systemctl is-enabled servicename.service # 开机运行服务 systemctl enable *.service # 取消开机运行 systemctl disable *.service # 启动服务 systemctl start *.service # 停止服务 systemctl stop *.service # 重启服务 systemctl restart *.service # 重新加载服务配置文件 systemctl reload *.service # 查询服务运行状态 systemctl status *.service # 显示启动失败的服务 systemctl --failed注:* 代表某个服务的名字,如 http 的服务名为 httpd。
2024年04月03日
1 阅读
0 评论
0 点赞
2024-04-03
Nginx 常用命令
Nginx 操作的命令# 查看 Nginx 版本 /usr/local/nginx/sbin/nginx -v # 检查配置文件 ngnix.conf 的正确性 /usr/local/nginx/sbin/nginx -t # 启动 Nginx 服务 /usr/local/nginx/sbin/nginx # 启动 Nginx 服务,-c 指定配置文件的路径 /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf # 重新加载配置 /usr/local/nginx/sbin/nginx -s reload # 停止 Nginx 服务(快速关闭,不管有没有正在处理的请求) /usr/local/nginx/sbin/nginx -s stop # 安全退出 Nginx 服务(在退出前会完成已经接受的连接请求,比较优雅) /usr/local/nginx/sbin/nginx -s quitLinux 检查的命令# 查看 Nginx 进程 ps -ef | grep nginx # 检查 Nginx 启动的端口 netstat -lntup | grep nginx服务器防火墙相关命令如果 Nginx 启动成功后,从浏览器访问还是连接不上,按如下步骤排查:检查阿里云安全组是否开放端口(通过阿里云后台)检查腾讯云实例管理防火墙是否开放端口(通过腾讯云后台)服务器防火墙是否开放端口
2024年04月03日
4 阅读
0 评论
0 点赞
1
...
12
13
14
...
20