首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >拥有私有域名的Nginx返回503服务不可用

问拥有私有域名的Nginx返回503服务不可用
EN

Server Fault用户
提问于 2020-02-01 09:26:08
回答 1查看 1K关注 0票数 0

我是nginx的noobie,刚开始手动服务器安装.

我有一个简单的nginx服务器,当使用ip:port访问它的ok时,我试图为我的主机设置域名。

代码语言:javascript
复制
server {
        listen       80;
        listen [::]:80;
        server_name  farhadadeli2.ir www.farhadadeli2.ir;

        root   /xxx;
        index index.php index.html index.htm;

        location / {            
            try_files $uri $uri/ =404;
        }             

        location ~ \.php$ {
            root           html;
            fastcgi_pass   unix:/var/run/php-fpm/www56.sock;
            fastcgi_index  index.php;
            fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
            include        fastcgi_params;
        }


    }

farhadadeli2.ir不是已注册的域,因此我在本地系统的windows主机文件中设置了185.208.172.243 farhadadeli2.ir。

如果我在浏览器中打开http://farhadadeli2.ir/index.html,我就得到了503 Service Unavailable .奇怪的是,如果我使用代理服务器访问这个域,它就可以正常工作,并加载索引页!

我在我的centos7服务器中重新启动dns服务,并在我的本地windows系统(ipconfig /flushdns)中刷新dns,但是我仍然收到503 Service Unavailable消息!

我能做些什么来解决这个问题??

我需要在我的centos服务器中设置dns服务器吗?

EN

回答 1

Server Fault用户

发布于 2020-04-20 23:53:48

我知道这个问题有点老,但是一些关于为HTTP设置Centos 7的注意事项。

防火墙

Centos 7使用“火瓦尔德”而不是iptables。防火墙可以通过“防火墙-cmd”配置,该防火墙必须以提升用户的身份运行(sudo)。

默认情况下,除ssh之外,所有服务都被阻塞,因此必须显式允许http。添加服务时常见的错误是不将更改设置为永久性的。

使用以下命令永久打开http;

代码语言:javascript
复制
sudo firewall-cmd --add-service=http --add-service=https --zone=public --permanent

或

代码语言:javascript
复制
sudo firewall-cmd --add-port=80/tcp --add-port=443/tcp --zone=public --permanent

执行上述操作后,将为公共区域打开http & https,并将其保存为永久性的。

出于实验目的,您可以添加和删除端口和服务,而不需要--永久选项,如果出现问题,可以使用防火墙-cmd-重新加载进行恢复。

Apache / Nginx

安装Apache或Nginx,您可以选择。您可以使用任何您喜欢的http服务器。

代码语言:javascript
复制
sudo yum install apache

或

代码语言:javascript
复制
sudo yum install nginx

根据我的经验,Apache和Nginx都可以为页面提供服务,并且可以加载以进行测试。将所选服务器配置为每次重新启动后启动。

代码语言:javascript
复制
# For apache    
sudo systemctl enable httpd.service
sudo systemctl start httpd.service

# For Nginx
sudo systemctl enable nginx.service
sudo systemctl start nginx.service

Verify它正在本地工作

您应该能够通过安装链接工具加载您的空白网站。

代码语言:javascript
复制
sudo yum -y install links
links http://localhost

您的网站应该是可见的,并从本地主机服务,您现在应该做同样的对您的非本地主机IP,例如,‘链接http://192.168.0.10’并验证相同的结果。

Domain名称

如果您正在为自己创建一个开发环境,并且服务器与您在同一个网络上,那么您不需要域名。您应该能够使用URL (显然用服务器IP替换)通过浏览器加载您的服务器。如果你在服务器上只有一个网站,你也可以在路由器上转发端口80之后从互联网上访问它。外部访问网址将是http://your_公共的_ip地址_地址 (谷歌‘什么我的ip')。

然而,如果你要有多个网站,你应该得到一个域名,否则服务器无法区分它们。有许多免费域名提供商,如'noip.com‘和'dyn.com’。您可以将各种域名指向公共ip,并成功地运行开发环境。

以上是设置家庭web服务器的基础。要记住的事情是;

  1. 防火墙端口必须打开,
  2. Http服务器安装和测试
  3. 不,你的公共IP地址
  4. 转发的适当端口

一旦你做了所有这些和测试网站的工作,你应该重新启动和重新测试,并确保所有的服务启动,他们应该。

You已完成

我希望这能帮上忙。

票数 0
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/1001342

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档