当前位置: 首页 > news >正文

Linux安装Nginx并配置转发

一、安装依赖

sudo dnf install -y gcc gcc-c++ make \

    pcre pcre-devel zlib zlib-devel \

    openssl openssl-devel \

    wget tar

二、下载并解压 Nginx(如果尚未完成)

wget http://nginx.org/download/nginx-1.24.0.tar.gz

tar -zxvf nginx-1.24.0.tar.gz

cd nginx-1.24.0

三、编译安装

./configure \

  --prefix=/usr/local/nginx \

  --with-http_ssl_module \

  --with-http_gzip_static_module \

  --with-http_stub_status_module

make -j$(nproc)

sudo make install

四、添加系统服务(便于启动)

创建 systemd 服务文件:

sudo vi /usr/lib/systemd/system/nginx.service

内容如下:

[Unit]

Description=The NGINX HTTP and reverse proxy server

After=network.target

[Service]

Type=forking

ExecStart=/usr/local/nginx/sbin/nginx

ExecReload=/usr/local/nginx/sbin/nginx -s reload

ExecStop=/usr/local/nginx/sbin/nginx -s quit

PrivateTmp=true

[Install]

WantedBy=multi-user.target

保存并重载 systemd:

sudo systemctl daemon-reexec

sudo systemctl daemon-reload

1、注:(添加systemd服务)不是必须的,但

 推荐添加,尤其是在生产环境或你希望用 systemctl 命令统一管理服务时;

X 如果你只是临时测试,或者自己写脚本启动/停止 Nginx,可以不做这一步。

如果不加 systemd 服务,你的启动/停止操作方式如下:

启动 Nginx:

/usr/local/nginx/sbin/nginx

重载配置:

/usr/local/nginx/sbin/nginx -s reload

停止 Nginx:

/usr/local/nginx/sbin/nginx -s quit

如果加上 systemd 服务,你就可以:

sudo systemctl start nginx

sudo systemctl stop nginx

sudo systemctl restart nginx

sudo systemctl enable nginx     # 设置开机启动

并且可以通过:

sudo systemctl status nginx

查看运行状态,也更方便被监控工具接管(如 Prometheus node exporter、systemd 监控等)。

2、nginx.service的内容是固定写法吗

不是完全固定,但结构是有规范的,这是符合 systemd 单元文件格式的标准写法。

你可以根据实际安装路径、需求进行微调,但整体框架如下:

最小工作模板:

[Unit]

Description=NGINX Server

After=network.target

[Service]

Type=forking

ExecStart=/usr/local/nginx/sbin/nginx

ExecReload=/usr/local/nginx/sbin/nginx -s reload

ExecStop=/usr/local/nginx/sbin/nginx -s quit

PrivateTmp=true

[Install]

WantedBy=multi-user.target

3、关于ExecStart、ExecReload、ExecStop设置问题

这些路径必须是 完整绝对路径

也就是说,这些命令不能是:

ExecStart=nginx

这样 systemd 会找不到路径。

而应该是:

ExecStart=/usr/local/nginx/sbin/nginx

4、为什么必须用绝对路径

这是因为 systemd 在执行这些命令时不会继承你的 PATH 环境变量(不像你在终端里那样可以直接运行 nginx),所以必须写完整路径,否则会报:

ExecStart=nginx failed: No such file or directory

5、如何获取正确路径:

你可以用以下命令查看 nginx 实际安装在哪:

which nginx

或者

whereis nginx

五、启动并设置开机自启

sudo systemctl start nginx

sudo systemctl enable nginx

六、配置文件路径

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

七、防火墙设置(如启用 firewalld)

sudo firewall-cmd --permanent --add-port=80/tcp

sudo firewall-cmd --permanent --add-port=443/tcp

sudo firewall-cmd --reload

八、验证

curl -I http://127.0.0.1

或通过浏览器访问服务器公网 IP,看到 Welcome to nginx! 即说明部署成功。

九、请求转发配置

如果想将请求转发到本地目录下的文件并将这个内容返回出去,比如http://你的Nginx公网地址/home/test/1

vi /usr/local/nginx/conf/nginx.conf

进去后通过 /location 找到目标位置,并添加location,location可以添加多个,下面是针对这个请求的具体配置

location / { #这个是配置里自带的,不需要修改,直接在这个节点下面添加一个新的location即可
            root   html;
            index  index.html index.htm;
        }

location /home/test/ {

            alias /home/test/;

            autoindex on;  # 可选,允许目录浏览

            default_type application/octet-stream;

            add_header Access-Control-Allow-Origin *;  # 跨域支持(可选)

        }

 配置添加完需要重新加载Nginx才会生效

/usr/local/nginx/sbin/nginx -s reload

现在就能访问这个地址了: http://你的Nginx公网地址/home/test/1 

相关文章:

  • WPF性能优化之延迟加载(解决页面卡顿问题)
  • 园区/小区执法仪部署指南:ZeroNews低成本+高带宽方案”
  • 实时操作系统革命:实时Linux驱动的智能时代底层重构
  • EasyExcel使用
  • Git全流程操作指南
  • OS面试篇
  • SFP与Unsloth:大模型微调技术全解析
  • Lock锁
  • Java集合操作:如何避免并发修改异常
  • ASPICE认证 vs. 其他标准:汽车软件开发的最优选择
  • 互联网大厂Java求职面试:Spring Cloud微服务架构设计中的挑战与解决方案
  • 新能源汽车产业链图谱分析
  • 汽车免拆诊断案例 | 2020款奔驰E300L车发动机故障灯偶尔异常点亮
  • C 语言学习笔记(指针4)
  • MySQL 8.0 OCP 英文题库解析(八)
  • Oracle 的 ALTER DATABASE RECOVER MANAGED STANDBY DATABASE FINISH 命令
  • Ubuntu16.04 Qt的安装与卸载
  • 模型压缩,AWQ与GPTQ量化方法分析
  • AG32VH 系列应用指南
  • 基于 ARIMA 与贝叶斯回归的时间序列分析:结合趋势季节性与不确定性量化(附 PyTorch 变分贝叶斯实现)
  • 天元建设集团有限公司股份/郑州官网网站优化公司
  • 武汉专业建站网/微软bing搜索引擎
  • 昆明乐网网站建设/企业建站模板
  • 怎么授权小说做游戏网站/建站模板哪个好
  • 优化优化/苏州百度 seo
  • 做自己网站彩票/网站流量统计分析的维度包括