Permission denied: AH00072: make_sock: could not bind to addre...:8081

######※CentOS7にNginxとApacheでサイト構築際の書きメモです。
##NginxとApacheでのConf設定内容
####Nginx側の設定
```ruby:/etc/nginx/conf.d/mysite.conf
server {		
    listen 80;		
    server_name www.example.com;		
    return 301 https://www.example.com$request_uri;		
}server {		
    listen 443 ssl;		
    server_name www.example.com;
    location / {		
        proxy_pass http://192.168.11.4:8081;		
        proxy_redirect off;		
        proxy_set_header Host $host;		
        proxy_set_header X-Real-IP $remote_addr;		
        proxy_set_header X-Forwarded-Host $host;		
        proxy_set_header X-Forwarded-Server $host;		
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;		
        proxy_set_header X-Request-URI $request_uri;		
    }		
} 
```
####Apache側の設定

```ruby:/etc/httpd/conf.d/mysite.conf
NameVirtualHost *:8081			
<VirtualHost 192.168.11.4:8081>			
    DocumentRoot /var/www/example/public			
    ServerName www.example.com				
    <Directory /var/www/example/public>			
        Options FollowSymLinks Indexes			
        AllowOverride All			
        Require all granted			
    </Directory>	
</VirtualHost>			
```
####サーバ再起動

```ruby:
$ systemctl restart httpd
$ systemctl restart nginx
```
ブラウザURLに "https://www.example.com" を入力すると、下記エラーが発生した。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/373279/6fe57367-a87c-6df8-d285-9a4df4e4a290.png)
どうやらListen 8081を書き忘れたみたい。

```ruby:/etc/httpd/conf/httpd.conf
Listen 8081      #該当行を追加する
```
今回はhttpdを再起動すると、再びエラー発生…

```ruby:/etc/httpd/conf/httpd.conf
$ systemctl restart httpd
Job for httpd.service failed because the control process exited with error code. See "systemctl status httpd.service" and "journalctl -xe" for details.
$ systemctl status httpd
● httpd.service - The Apache HTTP Server
   Loaded: loaded (/usr/lib/systemd/system/httpd.service; enabled; vendor preset: disabled)
   Active: failed (Result: exit-code) since 日 2019-10-20 21:49:11 JST; 13s ago
     Docs: man:httpd(8)
           man:apachectl(8)
  Process: 12020 ExecStop=/bin/kill -WINCH ${MAINPID} (code=exited, status=1/FAILURE)
  Process: 12018 ExecStart=/usr/sbin/httpd $OPTIONS -DFOREGROUND (code=exited, status=1/FAILURE)
 Main PID: 12018 (code=exited, status=1/FAILURE)

10月 20 21:49:11 example.com httpd[12018]: (13)Permission denied: AH00072: make_sock: could not bind to addre...:8081
10月 20 21:49:11 example.com httpd[12018]: (13)Permission denied: AH00072: make_sock: could not bind to addre...:8081
10月 20 21:49:11 example.com httpd[12018]: no listening sockets available, shutting down
10月 20 21:49:11 example.com httpd[12018]: AH00015: Unable to open logs
10月 20 21:49:11 example.com systemd[1]: httpd.service: main process exited, code=exited, status=1/FAILURE
10月 20 21:49:11 example.com kill[12020]: kill: cannot find process ""
10月 20 21:49:11 example.com systemd[1]: httpd.service: control process exited, code=exited status=1
10月 20 21:49:11 example.com systemd[1]: Failed to start The Apache HTTP Server.
10月 20 21:49:11 example.com systemd[1]: Unit httpd.service entered failed state.
10月 20 21:49:11 example.com systemd[1]: httpd.service failed.
Hint: Some lines were ellipsized, use -l to show in full.
```
make_sock: could not bind to addre...:8081の原因でエラー発生したので、firewalldにポート8081を追加する

```ruby:
$semanage port -a -t http_port_t -p tcp 8081
ValueError: ポート tcp/8081 はすでに定義されています
```
"すでに定義されています"と怒られてしまった。以下のコマンドで検索したら、transproxy_port_tに使われている。

```ruby:
$ semanage port -l | grep 8081
transproxy_port_t              tcp      8081  
```
仕方ない、ポート8081を断念し、ポート8007に変更することにした。
エラー原因が分かったので、対応が簡単です。
まず、Firewallにポート8007を開く

```ruby:
$semanage port -a -t http_port_t -p tcp 8007
```
次はnginx, httpdのconfファイルにポート番号8081を全て8007に編集する。
再度ブラウザURLに "https://www.example.com" を入力する。今回が無事に表示できた。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/373279/238706b8-c843-3dfd-38d8-06b1eaa138d7.png)