Ubuntu手动安装Nginx 1.23.4后服务异常,求正确安装步骤
解决源码安装Nginx 1.23.4后的命令与服务问题及React部署步骤
一、解决nginx命令找不到的问题
从源码编译安装的Nginx默认路径为/usr/local/nginx,其执行文件在sbin目录下,系统默认PATH未包含该路径,导致无法直接调用nginx命令,可通过以下两种方式解决:
方式1:创建软链接到系统全局bin目录
sudo ln -s /usr/local/nginx/sbin/nginx /usr/bin/nginx执行后直接运行
nginx -v,应显示nginx version: nginx/1.23.4。方式2:将Nginx的sbin目录加入系统PATH
- 临时生效(仅当前会话):
export PATH=$PATH:/usr/local/nginx/sbin - 永久生效(重启后仍有效):
编辑~/.bashrc或/etc/profile文件,添加以下内容:
保存后执行export PATH=$PATH:/usr/local/nginx/sbinsource ~/.bashrc(针对当前用户)或source /etc/profile(针对所有用户)刷新配置。
- 临时生效(仅当前会话):
二、创建systemd服务文件,解决systemctl无法识别nginx.service的问题
源码安装的Nginx不会自动生成systemd服务配置,需手动创建:
- 创建服务文件:
sudo nano /etc/systemd/system/nginx.service - 将以下内容粘贴到文件中(注意确认PIDFile路径与实际安装路径一致,默认是
/usr/local/nginx/logs/nginx.pid):[Unit] Description=The NGINX HTTP and reverse proxy server After=syslog.target network.target remote-fs.target nss-lookup.target [Service] Type=forking PIDFile=/usr/local/nginx/logs/nginx.pid ExecStartPre=/usr/local/nginx/sbin/nginx -t ExecStart=/usr/local/nginx/sbin/nginx ExecReload=/usr/local/nginx/sbin/nginx -s reload ExecStop=/usr/local/nginx/sbin/nginx -s stop PrivateTmp=true [Install] WantedBy=multi-user.target - 保存并退出编辑器(nano按
Ctrl+O,回车,再按Ctrl+X)。 - 重新加载systemd配置:
sudo systemctl daemon-reload - 启动Nginx服务并设置开机自启:
sudo systemctl start nginx sudo systemctl enable nginx - 现在执行
sudo systemctl status nginx,应显示服务处于active (running)状态。
三、验证Nginx安装正确性
- 执行
nginx -v,确认版本为1.23.4 - 访问服务器IP或
localhost,应看到Nginx默认欢迎页面 - 用
sudo systemctl restart nginx测试服务启停正常
四、部署React应用
打包React项目:在React项目根目录执行
npm run build生成的
build目录即为可部署的静态文件。配置Nginx站点:
编辑Nginx主配置文件/usr/local/nginx/conf/nginx.conf,找到server块,修改如下:server { listen 80; server_name your_domain_or_ip; # 指定React打包后的静态文件路径 root /path/to/your/react/build; index index.html index.htm; # 支持React单页应用路由 location / { try_files $uri $uri/ /index.html; } }注意将
/path/to/your/react/build替换为实际的build目录绝对路径,your_domain_or_ip替换为你的域名或服务器IP。测试配置文件合法性:
sudo nginx -t重新加载Nginx使配置生效:
sudo systemctl reload nginx此时访问你的域名或服务器IP,即可看到React应用。
内容的提问来源于stack exchange,提问作者Hasini Wickramasooriya
相关产品推荐
相关产品推荐

